def test_event_summary_occurrences_next_upcoming(self): event = IEventAccessor(self.portal['daily']) date = patched_now() with mock.patch('plone.app.event.dx.behaviors.localized_now', return_value=date): view = zope.component.getMultiAdapter( (self.portal['daily'], self.request), name='event_summary') # altogether 4 occurrences, start occurrence is included self.assertEqual(4, len(view.next_occurrences)) self.assertEqual(event.start, date) self.assertEqual(event.end, date + datetime.timedelta(hours=1)) IAnnotations(self.request).clear() # clear cache next_date = patched_now() + datetime.timedelta(hours=24) with mock.patch('plone.app.event.dx.behaviors.localized_now', return_value=next_date): view = zope.component.getMultiAdapter( (self.portal['daily'], self.request), name='event_summary') # 3 occurrences remaining self.assertEqual(3, len(view.next_occurrences)) self.assertEqual(event.start, next_date) next_end_date = next_date + datetime.timedelta(hours=1) self.assertEqual(event.end, next_end_date) IAnnotations(self.request).clear() # clear cache next_date = patched_now() + datetime.timedelta(days=10) with mock.patch('plone.app.event.dx.behaviors.localized_now', return_value=next_date): view = zope.component.getMultiAdapter( (self.portal['daily'], self.request), name='event_summary') # no occurrences remaining, show all original 4 self.assertEqual(4, len(view.next_occurrences)) self.assertEqual(event.start, date) self.assertEqual(event.end, date + datetime.timedelta(hours=1))
def test_event_summary_occurrences_whole_day(self): self.portal['daily'].whole_day = True date = patched_now() with mock.patch('plone.app.event.dx.behaviors.localized_now', return_value=date): view = zope.component.getMultiAdapter( (self.portal['daily'], self.request), name='event_summary') # altogether 4 occurrences, start occurrence is included self.assertEqual(4, len(view.next_occurrences)) for occurrence in view.next_occurrences: event_occ = IEventAccessor(occurrence) self.assertEqual(event_occ.start.hour, 0) self.assertEqual(event_occ.end.hour, 23) self.assertEqual(event_occ.start.day, event_occ.end.day) IAnnotations(self.request).clear() # clear cache next_date = patched_now() + datetime.timedelta(hours=24) with mock.patch('plone.app.event.dx.behaviors.localized_now', return_value=next_date): view = zope.component.getMultiAdapter( (self.portal['daily'], self.request), name='event_summary') # 3 occurrences remaining self.assertEqual(3, len(view.next_occurrences)) for occurrence in view.next_occurrences: event_occ = IEventAccessor(occurrence) self.assertEqual(event_occ.start.hour, 0) self.assertEqual(event_occ.end.hour, 23) self.assertEqual(event_occ.start.day, event_occ.end.day) IAnnotations(self.request).clear() # clear cache next_date = patched_now() + datetime.timedelta(days=10) with mock.patch('plone.app.event.dx.behaviors.localized_now', return_value=next_date): view = zope.component.getMultiAdapter( (self.portal['daily'], self.request), name='event_summary') # no occurrences remaining, show all original 4 self.assertEqual(4, len(view.next_occurrences)) for occurrence in view.next_occurrences: event_occ = IEventAccessor(occurrence) self.assertEqual(event_occ.start.hour, 0) self.assertEqual(event_occ.end.hour, 23) self.assertEqual(event_occ.start.day, event_occ.end.day)
def setUp(self): self.portal = self.layer['portal'] self.request = self.layer['request'] set_browserlayer(self.request) reg = zope.component.getUtility(IRegistry) settings = reg.forInterface(IEventSettings, prefix="plone.app.event") settings.portal_timezone = TZNAME now = patched_now() yesterday = now - datetime.timedelta(days=1) setRoles(self.portal, TEST_USER_ID, ['Manager']) self.portal.invokeFactory( 'Event', 'daily', title=u'Daily Event', start=now, end=now + datetime.timedelta(hours=1), location=u'Vienna', recurrence='RRULE:FREQ=DAILY;COUNT=4', timezone=TZNAME) self.portal.invokeFactory( 'Event', 'interval', title=u'Interval Event', start=yesterday, end=yesterday + datetime.timedelta(hours=1), location=u'Halle', recurrence='RRULE:FREQ=DAILY;INTERVAL=2;COUNT=5', timezone=TZNAME) self.now = now self.yesterday = yesterday self.daily = self.portal['daily'] self.interval = self.portal['interval']
def setUp(self): self.portal = self.layer['portal'] self.request = self.layer['request'] set_browserlayer(self.request) set_env_timezone(TZNAME) set_timezone(TZNAME) now = patched_now() yesterday = now - datetime.timedelta(days=1) setRoles(self.portal, TEST_USER_ID, ['Manager']) self.daily = createContentInContainer( self.portal, 'plone.app.event.dx.event', id='daily', title=u'Daily Event', start=now, end=now + datetime.timedelta(hours=1), location=u'Vienna', recurrence='RRULE:FREQ=DAILY;COUNT=4', ) self.interval = createContentInContainer( self.portal, 'plone.app.event.dx.event', id='interval', title=u'Interval Event', start=yesterday, end=yesterday + datetime.timedelta(hours=1), location=u'Halle', recurrence='RRULE:FREQ=DAILY;INTERVAL=2;COUNT=5', ) self.now = now self.yesterday = yesterday