summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author田口信元 <shingen.taguchi@brainpad.co.jp>2020-06-08 20:45:22 +0900
committer田口信元 <shingen.taguchi@brainpad.co.jp>2020-06-08 20:45:22 +0900
commit09f52b26ddea0e0141548281f285c5915dd8e56d (patch)
tree4e49369d5a2945454b43f559178ec5bc15473fcb
parentbc676d0191c61e93bd00d0d8ba818c110e710ecd (diff)
downloadcroniter-devs.tar.gz
feat: Support for day-or in matchdevs
-rw-r--r--src/croniter/croniter.py4
-rwxr-xr-xsrc/croniter/tests/test_croniter.py30
2 files changed, 32 insertions, 2 deletions
diff --git a/src/croniter/croniter.py b/src/croniter/croniter.py
index 395279c..33e79c5 100644
--- a/src/croniter/croniter.py
+++ b/src/croniter/croniter.py
@@ -586,8 +586,8 @@ class croniter(object):
return True
@classmethod
- def match(cls, cron_expression, testdate):
- cron = cls(cron_expression, testdate, ret_type=datetime.datetime)
+ def match(cls, cron_expression, testdate, day_or=True):
+ cron = cls(cron_expression, testdate, ret_type=datetime.datetime, day_or=day_or)
td, ms1 = cron.get_current(datetime.datetime), relativedelta(microseconds=1)
cron.set_current(td + ms1)
tdp, tdt = cron.get_current(), cron.get_prev()
diff --git a/src/croniter/tests/test_croniter.py b/src/croniter/tests/test_croniter.py
index d0b435d..afaacde 100755
--- a/src/croniter/tests/test_croniter.py
+++ b/src/croniter/tests/test_croniter.py
@@ -970,6 +970,36 @@ class CroniterTest(base.TestCase):
"31 * * * *",
datetime(2019, 1, 14, 1, 31, 0, 0)
))
+ self.assertTrue(croniter.match(
+ "0 0 10 * wed",
+ datetime(2020, 6, 10, 0, 0, 0, 0),
+ day_or=True
+ ))
+ self.assertTrue(croniter.match(
+ "0 0 10 * fri",
+ datetime(2020, 6, 10, 0, 0, 0, 0),
+ day_or=True
+ ))
+ self.assertTrue(croniter.match(
+ "0 0 10 * fri",
+ datetime(2020, 6, 12, 0, 0, 0, 0),
+ day_or=True
+ ))
+ self.assertTrue(croniter.match(
+ "0 0 10 * wed",
+ datetime(2020, 6, 10, 0, 0, 0, 0),
+ day_or=False
+ ))
+ self.assertFalse(croniter.match(
+ "0 0 10 * fri",
+ datetime(2020, 6, 10, 0, 0, 0, 0),
+ day_or=False
+ ))
+ self.assertFalse(croniter.match(
+ "0 0 10 * fri",
+ datetime(2020, 6, 12, 0, 0, 0, 0),
+ day_or=False
+ ))
def test_dst_issue90_st31ny(self):