def test_get_dates_document_recurrence_exdate_bug(self): """Document a bug(-fix) where exdates for recurrences were not applied correctly. """ recurrence = u"RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=20140402T000000" u"\r\nEXDATE:20140304T000000" data = {"start_time": time(13, 0), "recurrence": recurrence, "end_time": time(16, 30), "day": date(2014, 2, 18)} dates = utils.get_dates(data) self.assertEqual(3, len(dates)) expected = [ (datetime(2014, 2, 18, 13), datetime(2014, 2, 18, 16, 30)), (datetime(2014, 3, 18, 13), datetime(2014, 3, 18, 16, 30)), (datetime(2014, 4, 1, 13), datetime(2014, 4, 1, 16, 30)), ] self.assertListEqual(expected, dates)
def allocate(self, data): self._validate_recurrence_options(data) dates = utils.get_dates(data) def allocate(): self.scheduler.allocate( dates, raster=data['raster'], quota=data['quota'], partly_available=data['partly_available'], grouped=not data['separately'], approve_manually=data['approve_manually'], reservation_quota_limit=data['reservation_quota_limit'], whole_day=data['whole_day'], rrule=data['recurrence'], ) self.flash(_(u'Allocation added')) utils.handle_action(action=allocate, success=self.redirect_to_context)
def reserve(self, data): allocation = self.allocation(data['id']) approve_manually = allocation.approve_manually self.inject_missing_data(data, allocation) dates = utils.get_dates(data, is_whole_day=allocation.whole_day) quota = int(data.get('quota', 1)) description = data.get('description') def reserve(): self.run_reserve( data=data, approve_manually=approve_manually, dates=dates, quota=quota, rrule=data['recurrence'], description=description, ) utils.handle_action( action=reserve, success=self.redirect_to_your_reservations )
def test_get_dates_document_recurrence_exdate_bug(self): """Document a bug(-fix) where exdates for recurrences were not applied correctly. """ recurrence = u'RRULE:FREQ=WEEKLY;INTERVAL=2;UNTIL=20140402T000000'\ u'\r\nEXDATE:20140304T000000' data = { 'start_time': time(13, 0), 'recurrence': recurrence, 'end_time': time(16, 30), 'day': date(2014, 2, 18) } dates = utils.get_dates(data) self.assertEqual(3, len(dates)) expected = [(datetime(2014, 2, 18, 13), datetime(2014, 2, 18, 16, 30)), (datetime(2014, 3, 18, 13), datetime(2014, 3, 18, 16, 30)), (datetime(2014, 4, 1, 13), datetime(2014, 4, 1, 16, 30))] self.assertListEqual(expected, dates)