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 ):