def test_dates_between_exdate(self): schedule = Schedule( slot=Slot(runtime=datetime.timedelta(minutes=60)), recurrences=recurrence.Recurrence( dtstart=datetime.datetime(2014, 1, 2, 14, 0, 0), rrules=[recurrence.Rule(recurrence.DAILY)], exdates=[datetime.datetime(2014, 1, 5, 0, 0, 0)])) self.assertListEqual( list(schedule.dates_between(datetime.datetime(2014, 1, 4), datetime.datetime(2014, 1, 7))), [timezone.make_aware(datetime.datetime(2014, 1, 4, 14, 0)), timezone.make_aware(datetime.datetime(2014, 1, 6, 14, 0))])
def test_dates_between_complex_ruleset(self): schedule = Schedule( slot=Slot(runtime=datetime.timedelta(minutes=60)), recurrences=recurrence.Recurrence( dtstart=datetime.datetime(2014, 1, 2, 14, 0, 0), rrules=[recurrence.Rule(recurrence.DAILY, interval=2)], exrules=[recurrence.Rule( recurrence.WEEKLY, byday=[recurrence.MO, recurrence.TU])])) self.assertListEqual( list(schedule.dates_between(datetime.datetime(2014, 1, 1), datetime.datetime(2014, 1, 9))), [timezone.make_aware(datetime.datetime(2014, 1, 2, 14, 0)), timezone.make_aware(datetime.datetime(2014, 1, 4, 14, 0)), timezone.make_aware(datetime.datetime(2014, 1, 8, 14, 0))])
def test_dates_between_exdate(self): schedule = Schedule( slot=Slot(runtime=datetime.timedelta(minutes=60)), recurrences=recurrence.Recurrence( dtstart=datetime.datetime(2014, 1, 2, 14, 0, 0), rrules=[recurrence.Rule(recurrence.DAILY)], exdates=[datetime.datetime(2014, 1, 5, 0, 0, 0)])) self.assertListEqual( list( schedule.dates_between(datetime.datetime(2014, 1, 4), datetime.datetime(2014, 1, 7))), [ timezone.make_aware(datetime.datetime(2014, 1, 4, 14, 0)), timezone.make_aware(datetime.datetime(2014, 1, 6, 14, 0)) ])
def test_get_or_create_repetition_episode(self): transmission = Transmission( Schedule(slot=self.slot, type='R', recurrences=recurrence.Recurrence( dtstart=datetime.datetime(2015, 1, 1, 14, 30))), timezone.make_aware(datetime.datetime(2015, 1, 1, 14, 30))) self.assertEqual(transmission._get_or_create_episode(), self.episode)
def test_between_time_change_skip(self): schedule = Schedule(slot=self.slot, recurrences=recurrence.Recurrence( dtstart=datetime.datetime( 2018, 3, 24, 2, 30, 0), rrules=[recurrence.Rule(recurrence.DAILY)])) between = Transmission.between(datetime.datetime(2018, 3, 25, 0, 0, 0), datetime.datetime(2018, 3, 25, 5, 0, 0), schedules=[schedule]) self.assertEqual(list(between), [])
def test_dates_between_complex_ruleset(self): schedule = Schedule( slot=Slot(runtime=datetime.timedelta(minutes=60)), recurrences=recurrence.Recurrence( dtstart=datetime.datetime(2014, 1, 2, 14, 0, 0), rrules=[recurrence.Rule(recurrence.DAILY, interval=2)], exrules=[ recurrence.Rule(recurrence.WEEKLY, byday=[recurrence.MO, recurrence.TU]) ])) self.assertListEqual( list( schedule.dates_between(datetime.datetime(2014, 1, 1), datetime.datetime(2014, 1, 9))), [ timezone.make_aware(datetime.datetime(2014, 1, 2, 14, 0)), timezone.make_aware(datetime.datetime(2014, 1, 4, 14, 0)), timezone.make_aware(datetime.datetime(2014, 1, 8, 14, 0)) ])
def test_between_time_change_stable(self): schedule = Schedule(slot=self.slot, recurrences=recurrence.Recurrence( dtstart=datetime.datetime( 2018, 3, 24, 2, 30, 0), rrules=[recurrence.Rule(recurrence.DAILY)])) between = Transmission.between( timezone.make_aware(datetime.datetime(2018, 3, 24, 0, 0, 0)), timezone.make_aware(datetime.datetime(2018, 3, 26, 5, 0, 0)), schedules=[schedule]) self.assertListEqual([(timezone.make_naive(t.start), t.start.tzname()) for t in between], [(datetime.datetime(2018, 3, 24, 2, 30), 'CET'), (datetime.datetime(2018, 3, 26, 2, 30), 'CEST')])
def test_start_none(self): schedule = Schedule(slot=Slot()) self.assertIsNone(schedule.start)
def test_start_date_schedule_board_none(self): schedule = Schedule(recurrences=self.recurrences, slot=Slot()) self.assertEqual(schedule.start, datetime.datetime(2014, 1, 6, 14, 0))
def test_runtime_not_set(self): schedule = Schedule(slot=Slot()) self.assertIsNone(schedule.runtime)
def test_end_none(self): schedule = Schedule(slot=Slot()) self.assertIsNone(schedule.end)