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,73 @@ 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 )
3163
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 ()
3864
39- return unittest .defaultTestLoader .loadTestsFromName (__name__ )
65+ EXPECTED_CALENDAR = [
66+ [{'day' : 1 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
67+ {'day' : 2 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
68+ {'date_string' : '2016-8-3' ,
69+ 'day' : 3 ,
70+ 'event' : 1 ,
71+ 'eventslist' : [{'end' : '11:30:00' , 'start' : '10:30:00' , 'title' : 'e3' }],
72+ 'eventstring' : u'Aug 03, 2016\n 10:30-11:30 e3' ,
73+ 'is_today' : False },
74+ {'day' : 4 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
75+ {'day' : 5 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
76+ {'day' : 6 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
77+ {'day' : 7 , 'event' : 0 , 'eventslist' : [], 'is_today' : False }],
78+ [{'day' : 8 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
79+ {'day' : 9 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
80+ {'day' : 10 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
81+ {'day' : 11 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
82+ {'date_string' : '2016-8-12' ,
83+ 'day' : 12 ,
84+ 'event' : 1 ,
85+ 'eventslist' : [{'end' : '11:30:00' , 'start' : '10:30:00' , 'title' : 'e12' }],
86+ 'eventstring' : u'Aug 12, 2016\n 10:30-11:30 e12' ,
87+ 'is_today' : False },
88+ {'day' : 13 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
89+ {'day' : 14 , 'event' : 0 , 'eventslist' : [], 'is_today' : False }],
90+ [{'day' : 15 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
91+ {'day' : 16 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
92+ {'day' : 17 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
93+ {'day' : 18 , 'event' : 0 , 'eventslist' : [], 'is_today' : True },
94+ {'day' : 19 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
95+ {'day' : 20 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
96+ {'date_string' : '2016-8-21' ,
97+ 'day' : 21 ,
98+ 'event' : 1 ,
99+ 'eventslist' : [{'end' : '11:30:00' , 'start' : '10:30:00' , 'title' : 'e21' }],
100+ 'eventstring' : u'Aug 21, 2016\n 10:30-11:30 e21' ,
101+ 'is_today' : False }],
102+ [{'day' : 22 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
103+ {'day' : 23 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
104+ {'day' : 24 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
105+ {'day' : 25 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
106+ {'day' : 26 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
107+ {'day' : 27 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
108+ {'day' : 28 , 'event' : 0 , 'eventslist' : [], 'is_today' : False }],
109+ [{'day' : 29 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
110+ {'date_string' : '2016-8-30' ,
111+ 'day' : 30 ,
112+ 'event' : 1 ,
113+ 'eventslist' : [{'end' : '11:30:00' , 'start' : '10:30:00' , 'title' : 'e30' }],
114+ 'eventstring' : u'Aug 30, 2016\n 10:30-11:30 e30' ,
115+ 'is_today' : False },
116+ {'day' : 31 , 'event' : 0 , 'eventslist' : [], 'is_today' : False },
117+ {'day' : 0 , 'event' : 0 , 'eventslist' : []},
118+ {'day' : 0 , 'event' : 0 , 'eventslist' : []},
119+ {'day' : 0 , 'event' : 0 , 'eventslist' : []},
120+ {'day' : 0 , 'event' : 0 , 'eventslist' : []}]]
0 commit comments