From 09f52b26ddea0e0141548281f285c5915dd8e56d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=94=B0=E5=8F=A3=E4=BF=A1=E5=85=83?= Date: Mon, 8 Jun 2020 20:45:22 +0900 Subject: feat: Support for day-or in match --- src/croniter/croniter.py | 4 ++-- src/croniter/tests/test_croniter.py | 30 ++++++++++++++++++++++++++++++ 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): -- cgit v1.2.1