summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkiorky <kiorky@cryptelium.net>2023-04-12 18:06:59 +0200
committerGitHub <noreply@github.com>2023-04-12 18:06:59 +0200
commit0e757e1f86ab6b58184d88766e2c62d253a27d1a (patch)
tree74b19773d9ec946e092046f034d8489a35e41866
parent2294c159ce022c8cc49573498899d424c68afeb0 (diff)
parentd76a8a4a13a1077fb26445c203d56bdc0c481847 (diff)
downloadcroniter-0e757e1f86ab6b58184d88766e2c62d253a27d1a.tar.gz
Merge pull request #39 from sg3-141-592/adding-range-begin-end-check
Adding check for range begin end
-rw-r--r--src/croniter/croniter.py4
-rw-r--r--src/croniter/tests/test_croniter_hash.py10
2 files changed, 14 insertions, 0 deletions
diff --git a/src/croniter/croniter.py b/src/croniter/croniter.py
index 8c1880e..a7dff11 100644
--- a/src/croniter/croniter.py
+++ b/src/croniter/croniter.py
@@ -909,6 +909,10 @@ class HashExpander:
if m['hash_type'] == 'h' and hash_id is None:
raise CroniterBadCronError('Hashed definitions must include hash_id')
+
+ if m['range_begin'] and m['range_end']:
+ if int(m['range_begin']) >= int(m['range_end']):
+ raise CroniterBadCronError('Range end must be greater than range begin')
if m['range_begin'] and m['range_end']:
if int(m['range_begin']) >= int(m['range_end']):
diff --git a/src/croniter/tests/test_croniter_hash.py b/src/croniter/tests/test_croniter_hash.py
index b8a4e7b..cd1e365 100644
--- a/src/croniter/tests/test_croniter_hash.py
+++ b/src/croniter/tests/test_croniter_hash.py
@@ -98,6 +98,16 @@ class CroniterHashTest(CroniterHashBase):
self._test_iter(
'H(30-59)/10 H * * *', datetime(2020, 1, 1, 11, 31), timedelta(minutes=10)
)
+
+ def test_hash_invalid_range(self):
+ """Test validation logic for range_begin and range_end values"""
+ try:
+ self._test_iter(
+ 'H(11-10) H * * *', datetime(2020, 1, 1, 11, 31), timedelta(minutes=10)
+ )
+ except (CroniterBadCronError) as ex:
+ self.assertEqual("{0}".format(ex),
+ 'Range end must be greater than range begin')
def test_hash_invalid_range(self):
"""Test validation logic for range_begin and range_end values"""