22from collective .cover .tests .base import TestTileMixin
33from collective .cover .tiles .calendar import CalendarTile
44from collective .cover .tiles .calendar import ICalendarTile
5+ from datetime import datetime
6+ from plone import api
57
68import unittest
79
@@ -10,10 +12,28 @@ class CalendarTileTestCase(TestTileMixin, unittest.TestCase):
1012
1113 def setUp (self ):
1214 super (CalendarTileTestCase , self ).setUp ()
15+
16+ # Pin calendar to month 08/2016
17+ self .request ['year' ] = 2016
18+ self .request ['month' ] = 8
19+
1320 self .tile = CalendarTile (self .cover , self .request )
1421 self .tile .__name__ = u'collective.cover.calendar'
1522 self .tile .id = u'test'
1623
24+ # Pin today as day 18
25+ self .tile .isToday = lambda day : day == 18
26+
27+ # create some events
28+ with api .env .adopt_roles (['Manager' ]):
29+ for i in [3 , 12 , 21 , 30 ]:
30+ start = datetime (2016 , 8 , i , 10 , 30 )
31+ end = datetime (2016 , 8 , i , 11 , 30 )
32+ obj = api .content .create (
33+ container = self .portal , type = 'Event' , id = 'e{0}' .format (i ),
34+ startDate = start , endDate = end , start = start , end = end )
35+ api .content .transition (obj , 'publish' )
36+
1737 @unittest .expectedFailure # FIXME: raises BrokenImplementation
1838 def test_interface (self ):
1939 self .interface = ICalendarTile
@@ -28,12 +48,79 @@ def test_default_configuration(self):
2848 def test_accepted_content_types (self ):
2949 self .assertEqual (self .tile .accepted_ct (), [])
3050
51+ def test_getEventsForCalendar (self ):
52+ self .assertEqual (self .tile .getEventsForCalendar (), EXPECTED_CALENDAR )
53+
54+ def test_getYearAndMonthToDisplay (self ):
55+ self .assertEqual (self .tile .getYearAndMonthToDisplay (), (2016 , 8 ))
56+
57+ def test_getWeekdays (self ):
58+ expected = [
59+ u'weekday_mon_short' , u'weekday_tue_short' , u'weekday_wed_short' ,
60+ u'weekday_thu_short' , u'weekday_fri_short' , u'weekday_sat_short' ,
61+ u'weekday_sun_short' ]
62+ self .assertEqual (self .tile .getWeekdays (), expected )
63+
64+ def test_getReviewStateString (self ):
65+ self .assertEqual (self .tile .getReviewStateString (), 'review_state=published&' )
66+
67+ def test_getEventTypes (self ):
68+ self .assertEqual (self .tile .getEventTypes (), 'Type=Event&' )
3169
32- # load tests only in Plone < 5
33- def test_suite ():
34- # FIXME: https://github.com/collective/collective.cover/issues/633
35- from collective .cover .config import IS_PLONE_5
36- if IS_PLONE_5 :
37- return unittest .TestSuite ()
3870
39- return unittest .defaultTestLoader .loadTestsFromName (__name__ )
71+ EXPECTED_CALENDAR = [
72+ [{'day' : 1 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
73+ {'day' : 2 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
74+ {'date_string' : '2016-8-3' ,
75+ 'day' : 3 ,
76+ 'event' : 1 ,
77+ 'eventslist' : [{'end' : '11:30:00' , 'start' : '10:30:00' , 'title' : 'e3' }],
78+ 'eventstring' : u'Aug 03, 2016\n 10:30-11:30 e3' ,
79+ 'is_today' : False },
80+ {'day' : 4 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
81+ {'day' : 5 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
82+ {'day' : 6 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
83+ {'day' : 7 , 'event' : 0 , 'eventslist' : [], 'is_today' : False }],
84+ [{'day' : 8 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
85+ {'day' : 9 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
86+ {'day' : 10 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
87+ {'day' : 11 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
88+ {'date_string' : '2016-8-12' ,
89+ 'day' : 12 ,
90+ 'event' : 1 ,
91+ 'eventslist' : [{'end' : '11:30:00' , 'start' : '10:30:00' , 'title' : 'e12' }],
92+ 'eventstring' : u'Aug 12, 2016\n 10:30-11:30 e12' ,
93+ 'is_today' : False },
94+ {'day' : 13 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
95+ {'day' : 14 , 'event' : 0 , 'eventslist' : [], 'is_today' : False }],
96+ [{'day' : 15 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
97+ {'day' : 16 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
98+ {'day' : 17 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
99+ {'day' : 18 , 'event' : 0 , 'eventslist' : [], 'is_today' : True },
100+ {'day' : 19 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
101+ {'day' : 20 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
102+ {'date_string' : '2016-8-21' ,
103+ 'day' : 21 ,
104+ 'event' : 1 ,
105+ 'eventslist' : [{'end' : '11:30:00' , 'start' : '10:30:00' , 'title' : 'e21' }],
106+ 'eventstring' : u'Aug 21, 2016\n 10:30-11:30 e21' ,
107+ 'is_today' : False }],
108+ [{'day' : 22 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
109+ {'day' : 23 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
110+ {'day' : 24 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
111+ {'day' : 25 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
112+ {'day' : 26 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
113+ {'day' : 27 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
114+ {'day' : 28 , 'event' : 0 , 'eventslist' : [], 'is_today' : False }],
115+ [{'day' : 29 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
116+ {'date_string' : '2016-8-30' ,
117+ 'day' : 30 ,
118+ 'event' : 1 ,
119+ 'eventslist' : [{'end' : '11:30:00' , 'start' : '10:30:00' , 'title' : 'e30' }],
120+ 'eventstring' : u'Aug 30, 2016\n 10:30-11:30 e30' ,
121+ 'is_today' : False },
122+ {'day' : 31 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
123+ {'day' : 0 , 'event' : 0 , 'eventslist' : []},
124+ {'day' : 0 , 'event' : 0 , 'eventslist' : []},
125+ {'day' : 0 , 'event' : 0 , 'eventslist' : []},
126+ {'day' : 0 , 'event' : 0 , 'eventslist' : []}]]
0 commit comments