diff options
author | Alex Grönholm <alex.gronholm@nextday.fi> | 2016-11-05 22:55:19 +0200 |
---|---|---|
committer | Alex Grönholm <alex.gronholm@nextday.fi> | 2016-11-05 22:59:08 +0200 |
commit | 87c77c1d077bd107f6a1199d27246127b423d778 (patch) | |
tree | 9ee2b611ab2d44b1308f61a703721a4ec98b166f /tests | |
parent | 02b05e070a8a2c40f7482f2b69c6811df481ddc5 (diff) | |
download | apscheduler-87c77c1d077bd107f6a1199d27246127b423d778.tar.gz |
Fixed passing start_time and/or end_time to CronTrigger and IntervalTrigger as strings (fixes #164)
This previously raised an AttributeError because the __init__() did not check if they were datetimes before trying to access the tzinfo attribute.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_triggers.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/test_triggers.py b/tests/test_triggers.py index 4c15cf9..c22136e 100644 --- a/tests/test_triggers.py +++ b/tests/test_triggers.py @@ -8,6 +8,11 @@ from apscheduler.triggers.cron import CronTrigger from apscheduler.triggers.date import DateTrigger from apscheduler.triggers.interval import IntervalTrigger +try: + from unittest.mock import Mock +except ImportError: + from mock import Mock + class TestCronTrigger(object): def test_cron_trigger_1(self, timezone): @@ -41,6 +46,12 @@ class TestCronTrigger(object): correct_next_date = timezone.localize(datetime(2012, 2, 29)) assert trigger.get_next_fire_time(None, start_date) == correct_next_date + def test_start_end_times_string(self, timezone, monkeypatch): + monkeypatch.setattr('apscheduler.triggers.cron.get_localzone', Mock(return_value=timezone)) + trigger = CronTrigger(start_date='2016-11-05 05:06:53', end_date='2017-11-05 05:11:32') + assert trigger.start_date == timezone.localize(datetime(2016, 11, 5, 5, 6, 53)) + assert trigger.end_date == timezone.localize(datetime(2017, 11, 5, 5, 11, 32)) + def test_cron_zero_value(self, timezone): trigger = CronTrigger(year=2009, month=2, hour=0, timezone=timezone) assert repr(trigger) == ("<CronTrigger (year='2009', month='2', hour='0', " @@ -301,6 +312,13 @@ class TestIntervalTrigger(object): def test_invalid_interval(self, timezone): pytest.raises(TypeError, IntervalTrigger, '1-6', timezone=timezone) + def test_start_end_times_string(self, timezone, monkeypatch): + monkeypatch.setattr('apscheduler.triggers.interval.get_localzone', + Mock(return_value=timezone)) + trigger = IntervalTrigger(start_date='2016-11-05 05:06:53', end_date='2017-11-05 05:11:32') + assert trigger.start_date == timezone.localize(datetime(2016, 11, 5, 5, 6, 53)) + assert trigger.end_date == timezone.localize(datetime(2017, 11, 5, 5, 11, 32)) + def test_before(self, trigger, timezone): """Tests that if "start_date" is later than "now", it will return start_date.""" now = trigger.start_date - timedelta(seconds=2) |