diff options
author | liuchao12 <liuchao12@meituan.com> | 2015-11-26 17:57:16 +0800 |
---|---|---|
committer | liuchao12 <liuchao12@meituan.com> | 2015-11-26 17:57:16 +0800 |
commit | 3ad8b54350a109ade9f062b0468d3f12d423c734 (patch) | |
tree | c691a6949035e2657b12bf5012e70c104513d7f8 | |
parent | 225b49d12771dc76a21d1f7e2836c13e84a4868e (diff) | |
download | apscheduler-3ad8b54350a109ade9f062b0468d3f12d423c734.tar.gz |
add some CronTrigger tests
-rw-r--r-- | apscheduler/triggers/cron/__init__.py | 2 | ||||
-rw-r--r-- | tests/test_triggers.py | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/apscheduler/triggers/cron/__init__.py b/apscheduler/triggers/cron/__init__.py index 249d38c..ebc28f7 100644 --- a/apscheduler/triggers/cron/__init__.py +++ b/apscheduler/triggers/cron/__init__.py @@ -135,7 +135,7 @@ class CronTrigger(BaseTrigger): if previous_fire_time: start_date = min(now, previous_fire_time + timedelta(microseconds=1)) else: - start_date = min(now, self.start_date) if self.start_date else now + start_date = max(now, self.start_date) if self.start_date else now fieldnum = 0 next_date = datetime_ceil(start_date).astimezone(self.timezone) diff --git a/tests/test_triggers.py b/tests/test_triggers.py index 0ab8fe8..b1ed15b 100644 --- a/tests/test_triggers.py +++ b/tests/test_triggers.py @@ -58,6 +58,21 @@ class TestCronTrigger(object): correct_next_date = timezone.localize(datetime(2009, 2, 4, 8)) assert trigger.get_next_fire_time(None, start_date) == correct_next_date + def test_previous_fire_time_1(self, timezone): + """Test for previous_fire_time arg in get_next_fire_time()""" + trigger = CronTrigger(day="*", timezone=timezone) + previous_fire_time = timezone.localize(datetime(2015, 11, 23)) + now = timezone.localize(datetime(2015, 11, 26)) + correct_next_date = timezone.localize(datetime(2015, 11, 24)) + assert trigger.get_next_fire_time(previous_fire_time, now) == correct_next_date + + def test_previous_fire_time_2(self, timezone): + trigger = CronTrigger(day="*", timezone=timezone) + previous_fire_time = timezone.localize(datetime(2015, 11, 23)) + now = timezone.localize(datetime(2015, 11, 22)) + correct_next_date = timezone.localize(datetime(2015, 11, 22)) + assert trigger.get_next_fire_time(previous_fire_time, now) == correct_next_date + def test_cron_weekday_overlap(self, timezone): trigger = CronTrigger(year=2009, month=1, day='6-10', day_of_week='2-4', timezone=timezone) assert repr(trigger) == "<CronTrigger (year='2009', month='1', day='6-10', day_of_week='2-4')>" |