summaryrefslogtreecommitdiff
path: root/tests/test_schedulers.py
diff options
context:
space:
mode:
authorAlex Grönholm <alex.gronholm@nextday.fi>2016-01-07 03:09:59 +0200
committerAlex Grönholm <alex.gronholm@nextday.fi>2016-01-07 03:09:59 +0200
commit5dd1b0e76c3c44641b7fe906fa8b79048eecd713 (patch)
tree0497770798a59c5c85183bde6294cc6f4d555844 /tests/test_schedulers.py
parent9739ab7040b57d4023c49bb596737b72dcdaa150 (diff)
downloadapscheduler-5dd1b0e76c3c44641b7fe906fa8b79048eecd713.tar.gz
Replaced custom log capture fixture with pytest-catchlog
Diffstat (limited to 'tests/test_schedulers.py')
-rw-r--r--tests/test_schedulers.py39
1 files changed, 17 insertions, 22 deletions
diff --git a/tests/test_schedulers.py b/tests/test_schedulers.py
index 1c1e6b3..4806fb2 100644
--- a/tests/test_schedulers.py
+++ b/tests/test_schedulers.py
@@ -1,6 +1,6 @@
-from logging import StreamHandler, getLogger, INFO
from datetime import datetime, timedelta
from threading import Thread
+import logging
from pytz import utc
import pytest
@@ -112,17 +112,6 @@ def scheduler(monkeypatch, timezone):
return DummyScheduler()
-@pytest.fixture
-def logstream(request):
- stream = StringIO()
- loghandler = StreamHandler(stream)
- loghandler.setLevel(INFO)
- logger = getLogger('apscheduler')
- logger.addHandler(loghandler)
- request.addfinalizer(lambda: logger.removeHandler(loghandler))
- return stream
-
-
class TestBaseScheduler(object):
def test_constructor(self):
with patch('%s.DummyScheduler.configure' % __name__) as configure:
@@ -803,35 +792,41 @@ class TestProcessJobs(object):
scheduler._executors['default'] = executor
return executor
- def test_nonexistent_executor(self, scheduler, jobstore, logstream):
+ def test_nonexistent_executor(self, scheduler, jobstore, caplog):
"""
Tests that an error is logged and the job is removed from its job store if its executor is
not found.
"""
+ caplog.set_level(logging.ERROR)
assert scheduler._process_jobs() is None
jobstore.remove_job.assert_called_once_with(999)
- assert logstream.getvalue() == \
+ assert len(caplog.records) == 1
+ assert caplog.records[0].message == \
'Executor lookup ("default") failed for job "job 999" -- removing it from the job ' \
- 'store\n'
+ 'store'
- def test_max_instances_reached(self, scheduler, job, jobstore, executor, logstream):
+ def test_max_instances_reached(self, scheduler, job, jobstore, executor, caplog):
"""Tests that a warning is logged when the maximum instances of a job is reached."""
+ caplog.set_level(logging.WARNING)
executor.submit_job = MagicMock(side_effect=MaxInstancesReachedError(job))
assert scheduler._process_jobs() is None
- assert logstream.getvalue() == \
- 'Execution of job "job 999" skipped: maximum number of running instances reached (1)\n'
+ assert len(caplog.records) == 1
+ assert caplog.records[0].message == \
+ 'Execution of job "job 999" skipped: maximum number of running instances reached (1)'
- def test_executor_error(self, scheduler, job, jobstore, executor, logstream):
+ def test_executor_error(self, scheduler, job, jobstore, executor, caplog):
"""Tests that if any exception is raised in executor.submit(), it is logged."""
+ caplog.set_level(logging.ERROR)
executor.submit_job = MagicMock(side_effect=Exception('test message'))
assert scheduler._process_jobs() is None
- assert 'test message' in logstream.getvalue()
- assert 'Error submitting job "job 999" to executor "default"' in logstream.getvalue()
+ assert len(caplog.records) == 1
+ assert 'test message' in caplog.records[0].exc_text
+ assert 'Error submitting job "job 999" to executor "default"' in caplog.records[0].message
- def test_job_update(self, scheduler, job, jobstore, executor, logstream, freeze_time):
+ def test_job_update(self, scheduler, job, jobstore, executor, freeze_time):
"""
Tests that the job is updated in its job store with the next run time from the trigger.