diff options
author | Alex Grönholm <alex.gronholm@nextday.fi> | 2014-06-18 00:10:43 +0300 |
---|---|---|
committer | Alex Grönholm <alex.gronholm@nextday.fi> | 2014-06-18 01:17:07 +0300 |
commit | ff683c62d937e0522441c7f52090be60c91b4ba0 (patch) | |
tree | 4b590e02debe36861c249481ed9be3d961a3deec /tests | |
parent | d0179ce94b3c69921aac8f45bcf440d88c5921a3 (diff) | |
download | apscheduler-ff683c62d937e0522441c7f52090be60c91b4ba0.tar.gz |
Defer replacing undefined options with defaults until the job is really scheduled
Allow specifying an explicit next_run_time when adding a job
Diffstat (limited to 'tests')
-rw-r--r-- | tests/conftest.py | 1 | ||||
-rw-r--r-- | tests/test_executors.py | 2 | ||||
-rw-r--r-- | tests/test_job.py | 2 | ||||
-rw-r--r-- | tests/test_schedulers.py | 19 |
4 files changed, 15 insertions, 9 deletions
diff --git a/tests/conftest.py b/tests/conftest.py index 4dd00cf..669ddc7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -86,5 +86,6 @@ def create_job(job_defaults): job_kwargs.update(kwargs) job_kwargs['trigger'] = BlockingScheduler()._create_trigger(job_kwargs.pop('trigger'), job_kwargs.pop('trigger_args')) + job_kwargs.setdefault('next_run_time', None) return Job(**job_kwargs) return create diff --git a/tests/test_executors.py b/tests/test_executors.py index 207a728..cd686f6 100644 --- a/tests/test_executors.py +++ b/tests/test_executors.py @@ -57,7 +57,7 @@ def test_max_instances(mock_scheduler, executor, create_job, freeze_time): events = [] mock_scheduler._dispatch_event = lambda event: events.append(event) - job = create_job(func=wait_event, max_instances=2) + job = create_job(func=wait_event, max_instances=2, next_run_time=None) executor.submit_job(job, [freeze_time.current]) executor.submit_job(job, [freeze_time.current]) diff --git a/tests/test_job.py b/tests/test_job.py index 9457269..62b615f 100644 --- a/tests/test_job.py +++ b/tests/test_job.py @@ -33,8 +33,6 @@ def test_constructor(job_id): assert job._jobstore_alias is None modify_kwargs = _modify.call_args[1] - assert modify_kwargs['next_run_time'] is None - if job_id is None: assert len(modify_kwargs['id']) == 32 else: diff --git a/tests/test_schedulers.py b/tests/test_schedulers.py index 87c97c2..2149606 100644 --- a/tests/test_schedulers.py +++ b/tests/test_schedulers.py @@ -344,14 +344,13 @@ class TestBaseScheduler(object): func = lambda x, y: None scheduler._stopped = stopped scheduler._real_add_job = MagicMock() - scheduler._job_defaults = {'misfire_grace_time': 3, 'coalesce': False, 'max_instances': 6} job = scheduler.add_job(func, 'date', [1], {'y': 2}, 'my-id', 'dummy', run_date='2014-06-01 08:41:00') assert isinstance(job, Job) assert job.id == 'my-id' - assert job.misfire_grace_time == 3 - assert job.coalesce is False - assert job.max_instances == 6 + assert not hasattr(job, 'misfire_grace_time') + assert not hasattr(job, 'coalesce') + assert not hasattr(job, 'max_instances') assert len(scheduler._pending_jobs) == (1 if stopped else 0) assert scheduler._real_add_job.call_count == (0 if stopped else 1) @@ -362,7 +361,8 @@ class TestBaseScheduler(object): decorator(func) scheduler.add_job.assert_called_once_with(func, 'date', [1], {'y': 2}, 'my-id', 'dummy', undefined, undefined, - undefined, 'default', 'default', True, run_date='2014-06-01 08:41:00') + undefined, undefined, 'default', 'default', True, + run_date='2014-06-01 08:41:00') @pytest.mark.parametrize('pending', [True, False], ids=['pending job', 'scheduled job']) def test_modify_job(self, scheduler, pending): @@ -664,10 +664,11 @@ Jobstore baz: @pytest.mark.parametrize('replace_existing', [True, False], ids=['replace', 'no replace']) @pytest.mark.parametrize('wakeup', [True, False], ids=['wakeup', 'no wakeup']) def test_real_add_job(self, scheduler, job_exists, replace_existing, wakeup): - job = MagicMock(Job, id='foo') + job = Job(scheduler, id='foo', func=lambda: None, args=(), kwargs={}, next_run_time=None) jobstore = MagicMock(BaseJobStore, _alias='bar', add_job=MagicMock(side_effect=ConflictingIdError('foo') if job_exists else None)) scheduler.wakeup = MagicMock() + scheduler._job_defaults = {'misfire_grace_time': 3, 'coalesce': False, 'max_instances': 6} scheduler._dispatch_event = MagicMock() scheduler._jobstores = {'bar': jobstore} @@ -678,6 +679,12 @@ Jobstore baz: scheduler._real_add_job(job, 'bar', replace_existing, wakeup) + # Check that the undefined values were replaced with scheduler defaults + assert job.misfire_grace_time == 3 + assert job.coalesce is False + assert job.max_instances == 6 + assert job.next_run_time is None + if job_exists: jobstore.update_job.assert_called_once_with(job) else: |