def test_parse_steps(self): self.assertEquals(crontab_parser(8).parse('*/2'), set([0, 2, 4, 6])) self.assertEquals(crontab_parser().parse('*/2'), set(i * 2 for i in xrange(30))) self.assertEquals(crontab_parser().parse('*/3'), set(i * 3 for i in xrange(20)))
def test_parse_range(self): self.assertEquals(crontab_parser(60).parse('1-10'), set(range(1, 10 + 1))) self.assertEquals(crontab_parser(24).parse('0-20'), set(range(0, 20 + 1))) self.assertEquals(crontab_parser().parse('2-10'), set(range(2, 10 + 1)))
def test_parse_range(self): self.assertEquals( crontab_parser(60).parse('1-10'), set(range(1, 10 + 1))) self.assertEquals( crontab_parser(24).parse('0-20'), set(range(0, 20 + 1))) self.assertEquals(crontab_parser().parse('2-10'), set(range(2, 10 + 1)))
def test_parse_composite(self): self.assertEquals(crontab_parser(8).parse('*/2'), set([0, 2, 4, 6])) self.assertEquals(crontab_parser().parse('2-9/5'), set([5])) self.assertEquals(crontab_parser().parse('2-10/5'), set([5, 10])) self.assertEquals(crontab_parser().parse('2-11/5,3'), set([3, 5, 10])) self.assertEquals(crontab_parser().parse('2-4/3,*/5,0-21/4'), set([0, 3, 4, 5, 8, 10, 12, 15, 16, 20, 25, 30, 35, 40, 45, 50, 55]))
def test_parse_composite(self): self.assertEquals(crontab_parser(8).parse('*/2'), set([0, 2, 4, 6])) self.assertEquals(crontab_parser().parse('2-9/5'), set([5])) self.assertEquals(crontab_parser().parse('2-10/5'), set([5, 10])) self.assertEquals(crontab_parser().parse('2-11/5,3'), set([3, 5, 10])) self.assertEquals( crontab_parser().parse('2-4/3,*/5,0-21/4'), set([ 0, 3, 4, 5, 8, 10, 12, 15, 16, 20, 25, 30, 35, 40, 45, 50, 55 ]))
def test_parse_errors_on_negative_number(self): self.assertRaises(ParseException, crontab_parser(60).parse, '-20')
def test_parse_errors_on_empty_steps(self): self.assertRaises(ParseException, crontab_parser(60).parse, '*/')
def test_parse_errors_on_empty_group(self): self.assertRaises(ParseException, crontab_parser(60).parse, '1,,2')
def test_parse_groups(self): self.assertEquals(crontab_parser().parse('1,2,3,4'), set([1, 2, 3, 4])) self.assertEquals(crontab_parser().parse('0,15,30,45'), set([0, 15, 30, 45]))
def test_parse_star(self): self.assertEquals(crontab_parser(24).parse('*'), set(range(24))) self.assertEquals(crontab_parser(60).parse('*'), set(range(60))) self.assertEquals(crontab_parser(7).parse('*'), set(range(7)))