Skip to content

Commit e0fdf7c

Browse files
committed
Functional Test For Displaying Year Of Event For Future Events Now Implemented With Unit Tests
1 parent 178742b commit e0fdf7c

File tree

3 files changed

+57
-13
lines changed

3 files changed

+57
-13
lines changed

events/tests/test_events_functional_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ def tearDown(self) -> None:
5454
def test_event_starting_and_ending_future_year_displays_year(self):
5555
event = self.event_future_start_following_year
5656
self.browser.get(self.live_server_url + '/events/')
57-
future_event_span_value = self.browser.find_element_by_id(str(event.id))
57+
future_event_span_value = self.browser.find_element_by_id("start-"+str(event.id))
5858
self.assertIn(str(event.next_time.dt_start.year), future_event_span_value.text)
5959

6060
event_2 = Event.objects.get(title="Event Ends Following Year")
61-
future_event_span_value = self.browser.find_element_by_id(str(event_2.id))
61+
future_event_span_value = self.browser.find_element_by_id("end-"+str(event_2.id))
6262
self.assertIn(str(event_2.next_time.dt_end.year), future_event_span_value.text)

events/tests/test_views.py

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

168212
class EventSubmitTests(TestCase):
169213
event_submit_url = reverse_lazy('events:event_submit')

templates/events/includes/time_tag.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{% if next_time.single_day %}
2-
<time id="{{ object.id }}" datetime="{{ next_time.dt_start|date:'c' }}">{{ next_time.dt_start|date:"d N" }}
3-
<span {% if scheduled_start_this_year %}class="say-no-more"{% endif %}>
2+
<time datetime="{{ next_time.dt_start|date:'c' }}">{{ next_time.dt_start|date:"d N" }}
3+
<span id="start-{{ object.id }}"{% if scheduled_start_this_year %} class="say-no-more"{% endif %}>
44
{{ next_time.dt_start|date:"Y" }}
55
</span>
66

7-
<span {% if scheduled_end_this_year %}class="say-no-more"{% endif %}>
7+
<span id="start-{{ object.id }}"{% if scheduled_end_this_year %} class="say-no-more"{% endif %}>
88
{{ next_time.dt_start|date:"Y" }}
99
</span>
1010

@@ -16,16 +16,16 @@
1616
{% endif %}
1717
</time>
1818
{% else %}
19-
<time id="{{ object.id }}" datetime="{{ next_time.dt_start|date:'c' }}">{{ next_time.dt_start|date:"d N" }}
20-
<span {% if scheduled_start_this_year %}class="say-no-more"{% endif %}>
19+
<time datetime="{{ next_time.dt_start|date:'c' }}">{{ next_time.dt_start|date:"d N" }}
20+
<span id="start-{{ object.id }}"{% if scheduled_start_this_year %} class="say-no-more"{% endif %}>
2121
{{ next_time.dt_start|date:"Y" }}
2222
</span>
2323

2424
{% if next_time.valid_dt_end %} &ndash;
2525
{{ next_time.dt_end|date:"d N" }}
2626
{% endif %}
2727

28-
<span {% if scheduled_end_this_year %}class="say-no-more"{% endif %}>
28+
<span id="end-{{ object.id }}"{% if scheduled_end_this_year %} class="say-no-more"{% endif %}>
2929
{{ next_time.dt_end|date:"Y" }}
3030
</span>
3131
</time>

0 commit comments

Comments
 (0)