summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Grönholm <alex.gronholm@nextday.fi>2014-07-01 03:35:41 +0300
committerAlex Grönholm <alex.gronholm@nextday.fi>2014-07-01 03:35:41 +0300
commit2d794e22b335d45863ffe148a5b4afc6f3999e9e (patch)
tree019dcdec164972b35e21606513110d7684f33b42
parente210cee397d475edf643813e375d8f55e13a5330 (diff)
downloadapscheduler-2d794e22b335d45863ffe148a5b4afc6f3999e9e.tar.gz
Fixed falsely passing tests and the bugs they uncovered in BaseScheduler
-rw-r--r--apscheduler/schedulers/base.py9
-rw-r--r--tests/test_job.py10
-rw-r--r--tests/test_schedulers.py30
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