Esempio n. 1
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))])
Esempio n. 2
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))])
Esempio n. 3
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))
            ])
Esempio n. 4
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)
Esempio n. 5
0
 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), [])
Esempio n. 6
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))
            ])
Esempio n. 7
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')])
Esempio n. 8
0
 def test_start_none(self):
     schedule = Schedule(slot=Slot())
     self.assertIsNone(schedule.start)
Esempio n. 9
0
 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))
Esempio n. 10
0
 def test_runtime_not_set(self):
     schedule = Schedule(slot=Slot())
     self.assertIsNone(schedule.runtime)
Esempio n. 11
0
 def test_end_none(self):
     schedule = Schedule(slot=Slot())
     self.assertIsNone(schedule.end)