def test_multi_exception(self):
     s = CronTabSchedule(MULTI_SCHEDULE)
     with self.assertRaises(CronTabScheduleException):
         [
             slot for slot in s.schedule_iter(start=datetime(2015, 1, 1),
                                              multi=False)
         ]
 def test_schedule_iter_dynamic(self):
     s = CronTabSchedule(SCHEDULE)
     slots = [
         slot for slot in s.schedule_iter(start=datetime(2015, 1, 1),
                                          multi=False)
     ]
     self.assertEqual(slots, DYNAMIC_EXPECTED)
 def test_init(self):
     s = CronTabSchedule(SCHEDULE)
     self.assertEqual(len(s.entries), 5)
     self.assertEqual(s.entries[2][1], '300')
     # The rest is thrown in here for code coverage.
     s.next_minute()
     s.next_minute(now=datetime.now())
Esempio n. 4
0
 def test_schedule_iter_gap(self):
     s = CronTabSchedule(GAP_SCHEDULE)
     slots = [
         slot for slot in s.schedule_iter(start=datetime(2015, 1, 1),
                                          end=datetime(2015, 1, 1, 12, 1))
     ]
     self.assertEqual(slots, GAP_EXPECTED)
 def test_schedule_iter_fixed(self):
     s = CronTabSchedule(SCHEDULE)
     slots = [slot for slot in s.schedule_iter(
         start=datetime(2015, 1, 1),
         end=datetime(2015, 1, 8),
         multi=False)]
     self.assertEqual(slots, FIXED_EXPECTED)
     # Code coverage.
     next(s.schedule_iter())
 def test_schedule_iter_fixed(self):
     s = CronTabSchedule(SCHEDULE)
     slots = [
         slot for slot in s.schedule_iter(start=datetime(2015, 1, 1),
                                          end=datetime(2015, 1, 8),
                                          multi=False)
     ]
     self.assertEqual(slots, FIXED_EXPECTED)
     # Code coverage.
     next(s.schedule_iter())
Esempio n. 7
0
 def test_soonest_no_now(self):
     s = CronTabSchedule('* * * * * foo\n* * * * * bar')
     now = datetime.now()
     if not now.second:
         time.sleep(1)
         now = datetime.now()
     nxt = s.soonest()
     self.assertEqual(
         nxt, now +
         timedelta(seconds=60 - now.second - now.microsecond / 1000000))
 def test_delimiter(self):
     # Paranoia: Make sure we're actually testing what we think
     # we're testing, by ensuring that the original schedule had
     # newlines in it and the one we're using doesn't.
     self.assertNotEqual(SCHEDULE.find('\n'), -1)
     with_semis = SCHEDULE.replace('\n', ';')
     self.assertEqual(with_semis.find('\n'), -1)
     s = CronTabSchedule(with_semis, delimiter=';')
     slots = [slot for slot in s.schedule_iter(
         start=datetime(2015, 1, 1),
         multi=False)]
     self.assertEqual(slots, DYNAMIC_EXPECTED)
 def test_delimiter(self):
     # Paranoia: Make sure we're actually testing what we think
     # we're testing, by ensuring that the original schedule had
     # newlines in it and the one we're using doesn't.
     self.assertNotEqual(SCHEDULE.find('\n'), -1)
     with_semis = SCHEDULE.replace('\n', ';')
     self.assertEqual(with_semis.find('\n'), -1)
     s = CronTabSchedule(with_semis, delimiter=';')
     slots = [
         slot for slot in s.schedule_iter(start=datetime(2015, 1, 1),
                                          multi=False)
     ]
     self.assertEqual(slots, DYNAMIC_EXPECTED)
 def test_init(self):
     s = CronTabSchedule(SCHEDULE)
     self.assertEqual(len(s.entries), 5)
     self.assertEqual(s.entries[2][1], '300')
     # The rest is thrown in here for code coverage.
     s.next_minute()
     s.next_minute(now=datetime.now())
Esempio n. 11
0
 def test_schedule_iter_end_endless(self):
     s = CronTabSchedule(SCHEDULE)
     with self.assertRaises(ValueError):
         next(s.schedule_iter(end=datetime.now(), endless=True))
 def test_next_active_no_schedule(self):
     s = CronTabSchedule('')
     with self.assertRaises(CronTabScheduleException):
         s.next_active()
Esempio n. 13
0
 def test_no_schedule(self):
     s = CronTabSchedule('')
     with self.assertRaises(CronTabScheduleException):
         s.soonest()
 def test_multi_exception(self):
     s = CronTabSchedule(MULTI_SCHEDULE)
     with self.assertRaises(CronTabScheduleException):
         [slot for slot in s.schedule_iter(
             start=datetime(2015, 1, 1),
             multi=False)]
 def test_next_active(self):
     s = CronTabSchedule(SCHEDULE)
     s.next_active()
Esempio n. 16
0
 def test_soonest_with_seconds(self):
     s = CronTabSchedule('* * * * * foo')
     now = datetime(2015, 1, 1, 1, 1, 1, 1)
     nxt = s.soonest(now=now)
     self.assertEqual(nxt, datetime(2015, 1, 1, 1, 2))
 def test_multi_ok(self):
     s = CronTabSchedule(MULTI_SCHEDULE)
     slots = [slot for slot in s.schedule_iter(start=datetime(2015, 1, 1))]
     self.assertEqual(slots, MULTI_EXPECTED)
Esempio n. 18
0
 def test_soonest_backtrack_needed(self):
     s = CronTabSchedule('* * * * * foo')
     now = datetime(2015, 1, 1)
     nxt = s.soonest(now=now)
     self.assertEqual(now, nxt)
 def test_add_entry_invalid(self):
     with self.assertRaises(CronTabScheduleException):
         CronTabSchedule('* * *')
 def test_schedule_iter_dynamic(self):
     s = CronTabSchedule(SCHEDULE)
     slots = [slot for slot in s.schedule_iter(
         start=datetime(2015, 1, 1),
         multi=False)]
     self.assertEqual(slots, DYNAMIC_EXPECTED)
 def test_next_active_no_schedule(self):
     s = CronTabSchedule('')
     with self.assertRaises(CronTabScheduleException):
         s.next_active()
 def test_next_active(self):
     s = CronTabSchedule(SCHEDULE)
     s.next_active()
 def test_multi_ok(self):
     s = CronTabSchedule(MULTI_SCHEDULE)
     slots = [slot for slot in s.schedule_iter(
         start=datetime(2015, 1, 1))]
     self.assertEqual(slots, MULTI_EXPECTED)
Esempio n. 24
0
 def test_next_active(self):
     s = CronTabSchedule(SCHEDULE)
     s.next_active(datetime.now().replace(second=25))
     s.next_active(datetime.now().replace(second=0, microsecond=0))