6
6
from django .test import TestCase
7
7
from django .utils import timezone
8
8
9
- from ..models import Calendar , Event , EventCategory , EventLocation , RecurringRule
9
+ from ..models import Calendar , Event , EventCategory , EventLocation , RecurringRule , OccurringRule
10
10
from ..templatetags .events import get_events_upcoming
11
11
from users .factories import UserFactory
12
12
@@ -18,6 +18,11 @@ def setUpTestData(cls):
18
18
cls .calendar = Calendar .objects .create (creator = cls .user , slug = "test-calendar" )
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
+ cls .event_single_day = Event .objects .create (title = "Single Day Event" , creator = cls .user , calendar = cls .calendar )
22
+ cls .event_future_start_following_year = Event .objects .create (title = 'Event Starts Following Year' ,
23
+ creator = cls .user , calendar = cls .calendar )
24
+ cls .event_future_end_following_year = Event .objects .create (title = 'Event Ends Following Year' ,
25
+ creator = cls .user , calendar = cls .calendar )
21
26
22
27
cls .now = timezone .now ()
23
28
@@ -34,12 +39,27 @@ def setUpTestData(cls):
34
39
begin = cls .now - datetime .timedelta (days = 2 ),
35
40
finish = cls .now - datetime .timedelta (days = 1 ),
36
41
)
37
-
42
+ cls .rule_single_day = OccurringRule .objects .create (
43
+ event = cls .event_single_day ,
44
+ dt_start = recurring_time_dtstart ,
45
+ dt_end = recurring_time_dtstart
46
+ )
47
+ cls .rule_future_start_year = OccurringRule .objects .create (
48
+ event = cls .event_future_start_following_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_future_end_following_year ,
54
+ dt_start = recurring_time_dtstart ,
55
+ dt_end = recurring_time_dtend + datetime .timedelta (weeks = 52 )
56
+ )
38
57
def test_events_homepage (self ):
39
58
url = reverse ('events:events' )
40
59
response = self .client .get (url )
41
60
self .assertEqual (response .status_code , 200 )
42
- self .assertEqual (len (response .context ['object_list' ]), 1 )
61
+ self .assertEqual (len (response .context ['object_list' ]), 4 )
62
+ self .assertIn (Event .objects .last ().title , response .content .decode ())
43
63
44
64
def test_calendar_list (self ):
45
65
calendars_count = Calendar .objects .count ()
@@ -54,7 +74,7 @@ def test_event_list(self):
54
74
response = self .client .get (url )
55
75
56
76
self .assertEqual (response .status_code , 200 )
57
- self .assertEqual (len (response .context ['object_list' ]), 1 )
77
+ self .assertEqual (len (response .context ['object_list' ]), 4 )
58
78
59
79
url = reverse ('events:event_list_past' , kwargs = {"calendar_slug" : 'unexisting' })
60
80
response = self .client .get (url )
@@ -114,7 +134,7 @@ def test_event_list_date(self):
114
134
response = self .client .get (url )
115
135
self .assertEqual (response .status_code , 200 )
116
136
self .assertEqual (response .context ['object' ], dt .date ())
117
- self .assertEqual (len (response .context ['object_list' ]), 2 )
137
+ self .assertEqual (len (response .context ['object_list' ]), 5 )
118
138
119
139
def test_eventlocation_list (self ):
120
140
venue = EventLocation .objects .create (
@@ -150,12 +170,12 @@ def test_event_detail(self):
150
170
self .assertEqual (self .event , response .context ['object' ])
151
171
152
172
def test_upcoming_tag (self ):
153
- self .assertEqual (len (get_events_upcoming ()), 1 )
173
+ self .assertEqual (len (get_events_upcoming ()), 4 )
154
174
self .assertEqual (len (get_events_upcoming (only_featured = True )), 0 )
155
175
self .rule .begin = self .now - datetime .timedelta (days = 3 )
156
176
self .rule .finish = self .now - datetime .timedelta (days = 2 )
157
177
self .rule .save ()
158
- self .assertEqual (len (get_events_upcoming ()), 0 )
178
+ self .assertEqual (len (get_events_upcoming ()), 3 )
159
179
160
180
161
181
class EventSubmitTests (TestCase ):
0 commit comments