@@ -2181,57 +2181,70 @@ def test_cleanup_allocations(client):
2181
2181
2182
2182
2183
2183
def test_view_occurrences (client ):
2184
+ client .login_admin ()
2185
+ settings = client .get ('/settings' )
2186
+ settings .form ['event_locations' ] = [
2187
+ "Gemeindesaal" , "Sportanlage" , "Turnhalle"
2188
+ ]
2189
+ settings .form .submit ()
2190
+ client .logout ()
2184
2191
2185
2192
def events (query = '' ):
2186
2193
page = client .get (f'/events/?{ query } ' )
2187
2194
return [event .text for event in page .pyquery ('h3 a' )]
2188
2195
2189
2196
def dates (query = '' ):
2190
2197
page = client .get (f'/events/?{ query } ' )
2191
- return [datetime .strptime (div .text , '%d.%m.%Y' ).date () for div
2192
- in page .pyquery ('.occurrence-date' )]
2198
+ return [
2199
+ datetime .strptime (div .text , '%d.%m.%Y' ).date ()
2200
+ for div in page .pyquery ('.occurrence-date' )
2201
+ ]
2193
2202
2194
2203
def tags (query = '' ):
2195
2204
page = client .get (f'/events/?{ query } ' )
2196
- tags = [tag .text .strip () for tag in page .pyquery ('.blank-label ' )]
2197
- return list (set ([ tag for tag in tags if tag ] ))
2205
+ tags = [s .text .strip () for s in page .pyquery ('.occurrence-tags span ' )]
2206
+ return list (set (tags ))
2198
2207
2199
2208
def as_json (query = '' ):
2200
2209
return client .get (f'/events/json?{ query } ' ).json
2201
2210
2202
2211
assert len (events ()) == 10
2203
2212
assert len (events ('page=1' )) == 2
2204
2213
assert dates () == sorted (dates ())
2205
- assert len (as_json ()) == 12
2206
- assert len (as_json ('max=3' )) == 3
2207
2214
2215
+ # Test tags
2208
2216
query = 'tags=Party'
2209
2217
assert tags (query ) == ["Party" ]
2210
2218
assert events (query ) == ["150 Jahre Govikon" ]
2211
- assert len (as_json ('cat1=Party' )) == 1
2212
- assert len (as_json ('cat1=Party&cat2=Sportanlage' )) == 1
2213
2219
2214
2220
query = 'tags=Politics'
2215
2221
assert tags (query ) == ["Politik" ]
2216
2222
assert events (query ) == ["Generalversammlung" ]
2217
- assert len (as_json ('cat1=Politics' )) == 1
2218
- assert len (as_json ('cat2=Saal' )) == 1
2219
2223
2220
2224
query = 'tags=Sports'
2221
2225
assert tags (query ) == ["Sport" ]
2222
2226
assert len (events (query )) == 10
2223
2227
assert set (events (query )) == set (["Gemeinsames Turnen" , "Fussballturnier" ])
2224
- assert len (as_json ('cat1=Sports' )) == 10
2225
- assert len (as_json ('cat2=Turnhalle&cat2=Sportanlage' )) == 11
2226
2228
2227
2229
query = 'tags=Politics&tags=Party'
2228
2230
assert sorted (tags (query )) == ["Party" , "Politik" ]
2229
2231
assert len (events (query )) == 2
2230
2232
assert set (events (query )) == set (["150 Jahre Govikon" ,
2231
2233
"Generalversammlung" ])
2232
- assert len (as_json ('cat1=Politics&cat1=Party' )) == 2
2233
- assert len (as_json ('max=1&cat1=Politics&cat1=Party' )) == 1
2234
2234
2235
+ # Test locations
2236
+ query = 'locations=Sportanlage'
2237
+ assert sorted (events (query )) == ["150 Jahre Govikon" , "Fussballturnier" ]
2238
+
2239
+ query = 'locations=Gemeindesaal&locations=Turnhalle'
2240
+ assert sorted (set (events (query ))) == [
2241
+ "Gemeinsames Turnen" , "Generalversammlung"
2242
+ ]
2243
+
2244
+ query = 'locations=halle'
2245
+ assert events (query ) == []
2246
+
2247
+ # Test dates
2235
2248
unique_dates = sorted (set (dates ()))
2236
2249
2237
2250
query = 'start={}' .format (unique_dates [1 ].isoformat ())
@@ -2265,6 +2278,20 @@ def as_json(query=''):
2265
2278
query = 'range=weekend&start={}' .format (unique_dates [- 2 ].isoformat ())
2266
2279
assert len (events (query )) == 1
2267
2280
2281
+ # Test JSON
2282
+ assert len (as_json ()) == 12
2283
+ assert len (as_json ('max=3' )) == 3
2284
+ assert len (as_json ('cat1=Party' )) == 1
2285
+ assert len (as_json ('cat1=Party&cat2=Sportanlage' )) == 1
2286
+ assert len (as_json ('cat1=Politics' )) == 1
2287
+ assert len (as_json ('cat2=Gemeindesaal' )) == 1
2288
+ assert len (as_json ('cat2=saal' )) == 0
2289
+ assert len (as_json ('cat1=Sports' )) == 10
2290
+ assert len (as_json ('cat2=Turnhalle&cat2=Sportanlage' )) == 11
2291
+ assert len (as_json ('cat1=Politics&cat1=Party' )) == 2
2292
+ assert len (as_json ('max=1&cat1=Politics&cat1=Party' )) == 1
2293
+
2294
+ # Test iCal
2268
2295
assert client .get ('/events/' ).click ('Diese Termine exportieren' ).\
2269
2296
text .startswith ('BEGIN:VCALENDAR' )
2270
2297
0 commit comments