Skip to content

Commit e2d918e

Browse files
committed
Handle invalid ranges correctly
This fixes #114
1 parent fa83d7c commit e2d918e

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/croniter/croniter.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,11 @@ def expand(cls, expr_format):
511511
"[{0}] is not acceptable".format(expr_format))
512512

513513
low, high, step = map(int, [low, high, step])
514-
rng = range(low, high + 1, step)
514+
try:
515+
rng = range(low, high + 1, step)
516+
except ValueError as exc:
517+
raise CroniterBadCronError(
518+
'invalid range: {0}'.format(exc))
515519
e_list += (["{0}#{1}".format(item, nth) for item in rng]
516520
if i == 4 and nth else rng)
517521
else:

src/croniter/tests/test_croniter.py

+3
Original file line numberDiff line numberDiff line change
@@ -832,6 +832,9 @@ def test_milliseconds(self):
832832
ts = "{0}".format(datetime.utcfromtimestamp(c.get_prev()))
833833
self.assertEqual(ts, '2018-01-01 10:00:00')
834834

835+
def test_invalid_zerorepeat(self):
836+
self.assertFalse(croniter.is_valid('*/0 * * * *'))
837+
835838

836839
if __name__ == '__main__':
837840
unittest.main()

0 commit comments

Comments
 (0)