diff options
author | Alex Grönholm <alex.gronholm@nextday.fi> | 2016-01-07 03:09:59 +0200 |
---|---|---|
committer | Alex Grönholm <alex.gronholm@nextday.fi> | 2016-01-07 03:09:59 +0200 |
commit | 5dd1b0e76c3c44641b7fe906fa8b79048eecd713 (patch) | |
tree | 0497770798a59c5c85183bde6294cc6f4d555844 /tests/test_schedulers.py | |
parent | 9739ab7040b57d4023c49bb596737b72dcdaa150 (diff) | |
download | apscheduler-5dd1b0e76c3c44641b7fe906fa8b79048eecd713.tar.gz |
Replaced custom log capture fixture with pytest-catchlog
Diffstat (limited to 'tests/test_schedulers.py')
-rw-r--r-- | tests/test_schedulers.py | 39 |
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. |