def test_dow(self): t = cron.CronTab('* * * * 7') self.assertTrue(t.is_now(datetime(2019, 1, 6))) self.assertTrue(t.is_now(datetime(2019, 1, 27))) self.assertFalse(t.is_now(datetime(2019, 2, 6))) self.assertFalse(t.is_now(datetime(2019, 2, 27))) t = cron.CronTab('* * * * 0') self.assertTrue(t.is_now(datetime(2019, 1, 6))) self.assertTrue(t.is_now(datetime(2019, 1, 27))) self.assertFalse(t.is_now(datetime(2019, 2, 6))) self.assertFalse(t.is_now(datetime(2019, 2, 27)))
def test_dow_range(self): t = cron.CronTab('* * * * 0-2') self.assertTrue(t.is_now(datetime(2019, 1, 6))) self.assertTrue(t.is_now(datetime(2019, 1, 7))) self.assertTrue(t.is_now(datetime(2019, 1, 8))) self.assertFalse(t.is_now(datetime(2019, 1, 9))) self.assertFalse(t.is_now(datetime(2019, 1, 10))) t = cron.CronTab('* * * * 5-7') self.assertTrue(t.is_now(datetime(2019, 1, 4))) self.assertTrue(t.is_now(datetime(2019, 1, 5))) self.assertTrue(t.is_now(datetime(2019, 1, 6))) self.assertFalse(t.is_now(datetime(2019, 1, 7))) self.assertFalse(t.is_now(datetime(2019, 1, 8)))
def test_every_day(self): t = cron.CronTab('7 */3 */4 * *') self.assertTrue(t.is_now(now().replace(minute=7, hour=6, day=1))) self.assertFalse(t.is_now(now().replace(minute=7, hour=6, day=2))) self.assertFalse(t.is_now(now().replace(minute=7, hour=6, day=3))) self.assertFalse(t.is_now(now().replace(minute=7, hour=6, day=4))) self.assertTrue(t.is_now(now().replace(minute=7, hour=6, day=5)))
def test_every_range(self): t = cron.CronTab('15-20/2 * * * *') self.assertFalse(t.is_now(now().replace(minute=13))) self.assertFalse(t.is_now(now().replace(minute=14))) self.assertTrue(t.is_now(now().replace(minute=15))) self.assertFalse(t.is_now(now().replace(minute=16))) self.assertTrue(t.is_now(now().replace(minute=17))) self.assertFalse(t.is_now(now().replace(minute=20))) self.assertFalse(t.is_now(now().replace(minute=21)))
def test_invalid_replacement(self): with self.assertRaises(ValueError): cron.CronTab('* * * jana *') with self.assertRaises(ValueError): cron.CronTab('* * * * sund')
def test_construct(self): cron.CronTab('4,*/3 */1 * * *')
def test_invalid_range(self): with self.assertRaises(ValueError): t = cron.CronTab('61 * * * *') with self.assertRaises(ValueError): t = cron.CronTab('0 5 * 34 *')
def test_every_hour(self): t = cron.CronTab('7-22 */3 * * *') self.assertTrue(t.is_now(now().replace(minute=7, hour=0))) self.assertFalse(t.is_now(now().replace(minute=14, hour=1))) self.assertFalse(t.is_now(now().replace(minute=21, hour=2))) self.assertTrue(t.is_now(now().replace(minute=22, hour=3)))
def test_every_minute(self): t = cron.CronTab('*/3 * * * *') self.assertTrue(t.is_now(now().replace(minute=0))) self.assertFalse(t.is_now(now().replace(minute=1))) self.assertFalse(t.is_now(now().replace(minute=2))) self.assertTrue(t.is_now(now().replace(minute=3)))
def test_now(self): t = cron.CronTab('* * * * *') self.assertTrue(t.is_now())
def test_replacement2(self): t = cron.CronTab('* * * * thu') self.assertTrue(t.is_now(datetime(2019, 1, 3))) self.assertTrue(t.is_now(datetime(2019, 1, 24))) self.assertFalse(t.is_now(datetime(2019, 2, 3))) self.assertFalse(t.is_now(datetime(2019, 2, 24)))
def test_replacement(self): t = cron.CronTab('* * * jan *') self.assertTrue(t.is_now(datetime(2019, 1, 1))) self.assertFalse(t.is_now(datetime(2019, 2, 2))) self.assertFalse(t.is_now(datetime(2019, 5, 2)))