summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliuchao12 <liuchao12@meituan.com>2015-11-26 17:57:16 +0800
committerliuchao12 <liuchao12@meituan.com>2015-11-26 17:57:16 +0800
commit3ad8b54350a109ade9f062b0468d3f12d423c734 (patch)
treec691a6949035e2657b12bf5012e70c104513d7f8
parent225b49d12771dc76a21d1f7e2836c13e84a4868e (diff)
downloadapscheduler-3ad8b54350a109ade9f062b0468d3f12d423c734.tar.gz
add some CronTrigger tests
-rw-r--r--apscheduler/triggers/cron/__init__.py2
-rw-r--r--tests/test_triggers.py15
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')>"