summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAlex Grönholm <alex.gronholm@nextday.fi>2014-03-16 16:01:32 +0200
committerAlex Grönholm <alex.gronholm@nextday.fi>2014-03-16 16:01:32 +0200
commitd564658d2df03628999e8e26871e6fbf4a588b0b (patch)
treeff123e174a1767ffc1f33468ecc87f4aa78ab672 /tests
parentb4fc212f1255a59b7354e1bc9756fd722f7d0131 (diff)
downloadapscheduler-d564658d2df03628999e8e26871e6fbf4a588b0b.tar.gz
Wake up the scheduler if the job's next run time is changed by modify_job()
Diffstat (limited to 'tests')
-rw-r--r--tests/test_jobstores.py1
-rw-r--r--tests/test_schedulers.py17
2 files changed, 15 insertions, 3 deletions
diff --git a/tests/test_jobstores.py b/tests/test_jobstores.py
index 60a0476..2401b06 100644
--- a/tests/test_jobstores.py
+++ b/tests/test_jobstores.py
@@ -6,7 +6,6 @@ import pytest
from apscheduler.jobstores.memory import MemoryJobStore
from apscheduler.jobstores.base import JobLookupError, ConflictingIdError, TransientJobError
-from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.triggers.date import DateTrigger
from apscheduler.job import Job
diff --git a/tests/test_schedulers.py b/tests/test_schedulers.py
index 2a09804..3e3edc1 100644
--- a/tests/test_schedulers.py
+++ b/tests/test_schedulers.py
@@ -20,6 +20,11 @@ from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.threadpool import ThreadPool
from tests.conftest import minpython
+try:
+ from unittest.mock import MagicMock
+except ImportError:
+ from mock import MagicMock
+
dummy_tz = tzoffset('DUMMYTZ', 3600)
dummy_datetime = datetime(2011, 4, 3, 18, 40, tzinfo=dummy_tz)
@@ -88,7 +93,7 @@ class TestOfflineScheduler(object):
job = scheduler.add_job('copy:copy', 'date', [datetime(2200, 7, 24)], args=[()])
assert job.func == 'copy:copy'
- def test_modify_job_offline(self, scheduler):
+ def test_modify_job(self, scheduler):
scheduler.add_job(lambda: None, 'interval', {'seconds': 1}, id='foo')
scheduler.modify_job('foo', max_runs=3456)
job = scheduler.get_jobs()[0]
@@ -241,7 +246,7 @@ class TestRunningScheduler(object):
assert len(jobs) == 1
assert jobs[0].name == 'dummyjob'
- def test_modify_job_online(self, scheduler):
+ def test_modify_job(self, scheduler):
events = []
scheduler.add_listener(events.append, EVENT_JOBSTORE_JOB_MODIFIED)
scheduler.add_job(lambda: None, 'interval', {'seconds': 1}, id='foo')
@@ -251,6 +256,14 @@ class TestRunningScheduler(object):
job = scheduler.get_jobs()[0]
assert job.max_runs == 3456
+ def test_modify_job_next_run_time(self, scheduler):
+ """Tests that modifying a job's next_run_time will cause the scheduler to be woken up."""
+
+ scheduler.add_job(lambda: None, 'interval', {'seconds': 1}, id='foo')
+ scheduler._wakeup = MagicMock()
+ scheduler.modify_job('foo', next_run_time=3456)
+ scheduler._wakeup.assert_called_once_with()
+
def test_remove_job(self, scheduler):
vals = [0]
events = []