def test_match(): now = datetime.datetime.utcnow() sunday = datetime.datetime(2012, 4, 29) monday = datetime.datetime(2012, 4, 30) # Now spec = ctab.parse_spec(ctab.resolve_names('* * * * *')) eq_(ctab.match(spec, now), True) # Day of week spec = ctab.parse_spec(ctab.resolve_names('* * * * 0')) eq_(ctab.match(spec, sunday), True) eq_(ctab.match(spec, monday), False) spec = ctab.parse_spec(ctab.resolve_names('* * * * 7')) eq_(ctab.match(spec, sunday), True) eq_(ctab.match(spec, monday), False) # Ranges spec = ctab.parse_spec(ctab.resolve_names('*/7 * * * *')) eq_(ctab.match(spec, datetime.datetime(2012, 10, 10, 0, 7)), True) eq_(ctab.match(spec, datetime.datetime(2012, 10, 10, 0, 8)), False)
def test_cron_iter(): spec = ctab.parse_spec(ctab.resolve_names('*/7 * * * *')) sunday = datetime.datetime(2012, 4, 29) eq_(zip(ctab.cron_iter(spec, sunday), range(10)), [(datetime.datetime(2012, 4, 29, 0, 0), 0), (datetime.datetime(2012, 4, 29, 0, 7), 1), (datetime.datetime(2012, 4, 29, 0, 14), 2), (datetime.datetime(2012, 4, 29, 0, 21), 3), (datetime.datetime(2012, 4, 29, 0, 28), 4), (datetime.datetime(2012, 4, 29, 0, 35), 5), (datetime.datetime(2012, 4, 29, 0, 42), 6), (datetime.datetime(2012, 4, 29, 0, 49), 7), (datetime.datetime(2012, 4, 29, 0, 56), 8), (datetime.datetime(2012, 4, 29, 1, 0), 9)] )
def test_resolve_names(): eq_(ctab.resolve_names('* * * * *'), '0-59 0-23 1-31 1-12 0-7') eq_(ctab.resolve_names('* * * Oct suN'), '0-59 0-23 1-31 10 7')