@@ -19,6 +19,10 @@ def setUpTestData(cls):
1919 cls .event = Event .objects .create (creator = cls .user , calendar = cls .calendar )
2020 cls .event_past = Event .objects .create (title = 'Past Event' , creator = cls .user , calendar = cls .calendar )
2121 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 )
2226
2327 cls .now = timezone .now ()
2428
@@ -40,12 +44,26 @@ def setUpTestData(cls):
4044 dt_start = recurring_time_dtstart ,
4145 dt_end = recurring_time_dtstart
4246 )
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 ()
4361
4462 def test_events_homepage (self ):
4563 url = reverse ('events:events' )
4664 response = self .client .get (url )
4765 self .assertEqual (response .status_code , 200 )
48- self .assertEqual (len (response .context ['object_list' ]), 2 )
66+ self .assertEqual (len (response .context ['object_list' ]), 4 )
4967 self .assertIn (Event .objects .last ().title , response .content .decode ())
5068
5169 def test_calendar_list (self ):
@@ -61,7 +79,7 @@ def test_event_list(self):
6179 response = self .client .get (url )
6280
6381 self .assertEqual (response .status_code , 200 )
64- self .assertEqual (len (response .context ['object_list' ]), 2 )
82+ self .assertEqual (len (response .context ['object_list' ]), 4 )
6583
6684 url = reverse ('events:event_list_past' , kwargs = {"calendar_slug" : 'unexisting' })
6785 response = self .client .get (url )
@@ -121,7 +139,7 @@ def test_event_list_date(self):
121139 response = self .client .get (url )
122140 self .assertEqual (response .status_code , 200 )
123141 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 )
125143
126144 def test_eventlocation_list (self ):
127145 venue = EventLocation .objects .create (
@@ -157,13 +175,39 @@ def test_event_detail(self):
157175 self .assertEqual (self .event , response .context ['object' ])
158176
159177 def test_upcoming_tag (self ):
160- self .assertEqual (len (get_events_upcoming ()), 2 )
178+ self .assertEqual (len (get_events_upcoming ()), 4 )
161179 self .assertEqual (len (get_events_upcoming (only_featured = True )), 0 )
162180 self .rule .begin = self .now - datetime .timedelta (days = 3 )
163181 self .rule .finish = self .now - datetime .timedelta (days = 2 )
164182 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+ )
166193
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+ )
167211
168212class EventSubmitTests (TestCase ):
169213 event_submit_url = reverse_lazy ('events:event_submit' )
0 commit comments