@@ -19,6 +19,10 @@ def setUpTestData(cls):
19
19
cls .event = Event .objects .create (creator = cls .user ,calendar = cls .calendar )
20
20
cls .event_past = Event .objects .create (title = 'Past Event' ,creator = cls .user ,calendar = cls .calendar )
21
21
cls .event_single_day = Event .objects .create (title = "Single Day Event" ,creator = cls .user ,calendar = cls .calendar )
22
+ cls .event_starts_at_future_year = Event .objects .create (title = 'Event Starts Following Year' ,
23
+ creator = cls .user ,calendar = cls .calendar )
24
+ cls .event_ends_at_future_year = Event .objects .create (title = 'Event Ends Following Year' ,
25
+ creator = cls .user ,calendar = cls .calendar )
22
26
23
27
cls .now = timezone .now ()
24
28
@@ -40,12 +44,26 @@ def setUpTestData(cls):
40
44
dt_start = recurring_time_dtstart ,
41
45
dt_end = recurring_time_dtstart
42
46
)
47
+ cls .rule_future_start_year = OccurringRule .objects .create (
48
+ event = cls .event_starts_at_future_year ,
49
+ dt_start = recurring_time_dtstart + datetime .timedelta (weeks = 52 ),
50
+ dt_end = recurring_time_dtstart + datetime .timedelta (weeks = 53 ),
51
+ )
52
+ cls .rule_future_end_year = OccurringRule .objects .create (
53
+ event = cls .event_ends_at_future_year ,
54
+ dt_start = recurring_time_dtstart ,
55
+ dt_end = recurring_time_dtend + datetime .timedelta (weeks = 52 )
56
+ )
57
+
58
+ def tearDown (self )-> None :
59
+ from django .core .cache import cache
60
+ cache .clear ()
43
61
44
62
def test_events_homepage (self ):
45
63
url = reverse ('events:events' )
46
64
response = self .client .get (url )
47
65
self .assertEqual (response .status_code ,200 )
48
- self .assertEqual (len (response .context ['object_list' ]),2 )
66
+ self .assertEqual (len (response .context ['object_list' ]),4 )
49
67
self .assertIn (Event .objects .last ().title ,response .content .decode ())
50
68
51
69
def test_calendar_list (self ):
@@ -61,7 +79,7 @@ def test_event_list(self):
61
79
response = self .client .get (url )
62
80
63
81
self .assertEqual (response .status_code ,200 )
64
- self .assertEqual (len (response .context ['object_list' ]),2 )
82
+ self .assertEqual (len (response .context ['object_list' ]),4 )
65
83
66
84
url = reverse ('events:event_list_past' ,kwargs = {"calendar_slug" :'unexisting' })
67
85
response = self .client .get (url )
@@ -121,7 +139,7 @@ def test_event_list_date(self):
121
139
response = self .client .get (url )
122
140
self .assertEqual (response .status_code ,200 )
123
141
self .assertEqual (response .context ['object' ],dt .date ())
124
- self .assertEqual (len (response .context ['object_list' ]),3 )
142
+ self .assertEqual (len (response .context ['object_list' ]),5 )
125
143
126
144
def test_eventlocation_list (self ):
127
145
venue = EventLocation .objects .create (
@@ -157,13 +175,39 @@ def test_event_detail(self):
157
175
self .assertEqual (self .event ,response .context ['object' ])
158
176
159
177
def test_upcoming_tag (self ):
160
- self .assertEqual (len (get_events_upcoming ()),2 )
178
+ self .assertEqual (len (get_events_upcoming ()),4 )
161
179
self .assertEqual (len (get_events_upcoming (only_featured = True )),0 )
162
180
self .rule .begin = self .now - datetime .timedelta (days = 3 )
163
181
self .rule .finish = self .now - datetime .timedelta (days = 2 )
164
182
self .rule .save ()
165
- self .assertEqual (len (get_events_upcoming ()),1 )
183
+ self .assertEqual (len (get_events_upcoming ()),3 )
184
+
185
+ def test_event_starting_future_year_displays_relevant_year (self ):
186
+ event = self .event_starts_at_future_year
187
+ url = reverse ('events:events' )
188
+ response = self .client .get (url )
189
+ self .assertIn (
190
+ f'<span id="start-{ event .id } ">' ,
191
+ response .content .decode ()
192
+ )
166
193
194
+ def test_event_ending_future_year_displays_relevant_year (self ):
195
+ event = self .event_ends_at_future_year
196
+ url = reverse ('events:events' )
197
+ response = self .client .get (url )
198
+ self .assertIn (
199
+ f'<span id="end-{ event .id } ">' ,
200
+ response .content .decode ()
201
+ )
202
+
203
+ def test_events_scheduled_current_year_does_not_display_current_year (self ):
204
+ event = self .event_single_day
205
+ url = reverse ('events:events' )
206
+ response = self .client .get (url )
207
+ self .assertIn (# start date
208
+ f'<span id="start-{ event .id } " class="say-no-more">' ,
209
+ response .content .decode ()
210
+ )
167
211
168
212
class EventSubmitTests (TestCase ):
169
213
event_submit_url = reverse_lazy ('events:event_submit' )