diff options
author | Alex Grönholm <alex.gronholm@nextday.fi> | 2014-07-01 03:35:41 +0300 |
---|---|---|
committer | Alex Grönholm <alex.gronholm@nextday.fi> | 2014-07-01 03:35:41 +0300 |
commit | 2d794e22b335d45863ffe148a5b4afc6f3999e9e (patch) | |
tree | 019dcdec164972b35e21606513110d7684f33b42 | |
parent | e210cee397d475edf643813e375d8f55e13a5330 (diff) | |
download | apscheduler-2d794e22b335d45863ffe148a5b4afc6f3999e9e.tar.gz |
Fixed falsely passing tests and the bugs they uncovered in BaseScheduler
-rw-r--r-- | apscheduler/schedulers/base.py | 9 | ||||
-rw-r--r-- | tests/test_job.py | 10 | ||||
-rw-r--r-- | tests/test_schedulers.py | 30 |
3 files changed, 25 insertions, 24 deletions
diff --git a/apscheduler/schedulers/base.py b/apscheduler/schedulers/base.py index fba9dee..cdc0bf0 100644 --- a/apscheduler/schedulers/base.py +++ b/apscheduler/schedulers/base.py @@ -74,14 +74,15 @@ class BaseScheduler(six.with_metaclass(ABCMeta)): if self.running: raise SchedulerAlreadyRunningError - # If a non-empty prefix was given, + # If a non-empty prefix was given, strip it from the keys in the global configuration dict if prefix: - gconfig = dict((key[11:], value) for key, value in six.iteritems(gconfig) if key.startswith(prefix)) + prefixlen = len(prefix) + gconfig = dict((key[prefixlen:], value) for key, value in six.iteritems(gconfig) if key.startswith(prefix)) # Create a structure from the dotted options (e.g. "a.b.c = d" -> {'a': {'b': {'c': 'd'}}}) config = {} for key, value in six.iteritems(gconfig): - parts = key.split('.', 1) + parts = key.split('.') parent = config key = parts.pop(0) while parts: @@ -119,7 +120,7 @@ class BaseScheduler(six.with_metaclass(ABCMeta)): self.add_jobstore(self._create_default_jobstore(), 'default') # Start all the job stores - for alias, store in six.iteritems(self._executors): + for alias, store in six.iteritems(self._jobstores): store.start(self, alias) # Schedule all pending jobs diff --git a/tests/test_job.py b/tests/test_job.py index dac4509..8518352 100644 --- a/tests/test_job.py +++ b/tests/test_job.py @@ -41,27 +41,27 @@ def test_constructor(job_id): def test_modify(job): job.modify(bah=1, foo='x') - assert job._scheduler.modify_job.called_once_with(job.id, bah=1, foo='x') + job._scheduler.modify_job.assert_called_once_with(job.id, None, bah=1, foo='x') def test_reschedule(job): job.reschedule('trigger', bah=1, foo='x') - assert job._scheduler.reschedule_job.called_once_with(job.id, 'trigger', bah=1, foo='x') + job._scheduler.reschedule_job.assert_called_once_with(job.id, None, 'trigger', bah=1, foo='x') def test_pause(job): job.pause() - assert job._scheduler.pause_job.called_once_with(job.id) + job._scheduler.pause_job.assert_called_once_with(job.id, None) def test_resume(job): job.resume() - assert job._scheduler.resume_job.called_once_with(job.id) + job._scheduler.resume_job.assert_called_once_with(job.id, None) def test_remove(job): job.remove() - assert job._scheduler.remove_job.called_once_with(job.id) + job._scheduler.remove_job.assert_called_once_with(job.id, None) def test_pending(job): diff --git a/tests/test_schedulers.py b/tests/test_schedulers.py index 0013231..8f4b40e 100644 --- a/tests/test_schedulers.py +++ b/tests/test_schedulers.py @@ -128,7 +128,7 @@ class TestBaseScheduler(object): options = {'bar': 'baz', 'xyz': 123} DummyScheduler(gconfig, **options) - assert configure.called_once_with(gconfig, **options) + configure.assert_called_once_with(gconfig, **options) @pytest.mark.parametrize('gconfig', [ { @@ -150,17 +150,17 @@ class TestBaseScheduler(object): { 'apscheduler.timezone': 'UTC', 'apscheduler.job_defaults': { - 'apscheduler.misfire_grace_time': 5, - 'apscheduler.coalesce': False, - 'apscheduler.max_instances': '9', + 'misfire_grace_time': '5', + 'coalesce': 'false', + 'max_instances': '9', }, 'apscheduler.executors': { - 'apscheduler.default': {'class': '%s:DummyExecutor' % __name__, 'arg1': '3', 'arg2': 'a'}, - 'apscheduler.alter': {'class': '%s:DummyExecutor' % __name__, 'arg': 'true'} + 'default': {'class': '%s:DummyExecutor' % __name__, 'arg1': '3', 'arg2': 'a'}, + 'alter': {'class': '%s:DummyExecutor' % __name__, 'arg': 'true'} }, 'apscheduler.jobstores': { - 'apscheduler.default': {'class': '%s:DummyJobStore' % __name__, 'arg1': '3', 'arg2': 'a'}, - 'apscheduler.bar': {'class': '%s:DummyJobStore' % __name__, 'arg': 'false'} + 'default': {'class': '%s:DummyJobStore' % __name__, 'arg1': '3', 'arg2': 'a'}, + 'bar': {'class': '%s:DummyJobStore' % __name__, 'arg': 'false'} } } ], ids=['ini-style', 'yaml-style']) @@ -168,11 +168,11 @@ class TestBaseScheduler(object): scheduler._configure = MagicMock() scheduler.configure(gconfig, timezone='Other timezone') - assert scheduler._configure.called_once_with({ + scheduler._configure.assert_called_once_with({ 'timezone': 'Other timezone', 'job_defaults': { - 'misfire_grace_time': 5, - 'coalesce': False, + 'misfire_grace_time': '5', + 'coalesce': 'false', 'max_instances': '9', }, 'executors': { @@ -198,10 +198,10 @@ class TestBaseScheduler(object): scheduler._dispatch_event = MagicMock() scheduler.start() - assert scheduler._executors['exec1'].start.called_once_with(scheduler, 'exec1') - assert scheduler._executors['exec2'].start.called_once_with(scheduler, 'exec2') - assert scheduler._jobstores['store1'].start.called_once_with(scheduler, 'store1') - assert scheduler._jobstores['store2'].start.called_once_with(scheduler, 'store2') + scheduler._executors['exec1'].start.assert_called_once_with(scheduler, 'exec1') + scheduler._executors['exec2'].start.assert_called_once_with(scheduler, 'exec2') + scheduler._jobstores['store1'].start.assert_called_once_with(scheduler, 'store1') + scheduler._jobstores['store2'].start.assert_called_once_with(scheduler, 'store2') assert len(scheduler._executors) == 3 assert len(scheduler._jobstores) == 3 assert 'default' in scheduler._executors |