summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoragronholm <devnull@localhost>2011-02-07 03:45:28 +0200
committeragronholm <devnull@localhost>2011-02-07 03:45:28 +0200
commit1230f652d5766809cc3bb64ac756c1b0ef0a8e77 (patch)
treee6726330f8355119a4ba26b4c0b54bbb82d94631
parent1dd2369f6c6786d1aaa5490b422f70edc3b84b05 (diff)
downloadapscheduler-1230f652d5766809cc3bb64ac756c1b0ef0a8e77.tar.gz
Ensure that errors in jobs are properly logged
-rw-r--r--tests/apschedulertests/testscheduler.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/tests/apschedulertests/testscheduler.py b/tests/apschedulertests/testscheduler.py
index 53023e0..c2d320f 100644
--- a/tests/apschedulertests/testscheduler.py
+++ b/tests/apschedulertests/testscheduler.py
@@ -1,4 +1,5 @@
from datetime import datetime, timedelta
+from logging import StreamHandler, ERROR
from copy import copy
import os
@@ -7,6 +8,7 @@ from nose.tools import eq_, raises
from apscheduler.jobstores.ram_store import RAMJobStore
from apscheduler.scheduler import Scheduler, SchedulerAlreadyRunningError
from apscheduler.job import STATUS_OK, STATUS_ERROR, JobStatus
+from apscheduler import scheduler
try:
from StringIO import StringIO
@@ -86,12 +88,20 @@ class DummyException(Exception):
class TestJobExecution(object):
- def setUp(self):
+ def setup(self):
self.scheduler = Scheduler(threadpool=FakeThreadPool())
self.scheduler.add_jobstore(RAMJobStore(), 'default')
# Make the scheduler think it's running
self.scheduler._thread = FakeThread()
+
+ self.logstream = StringIO()
+ self.loghandler = StreamHandler(self.logstream)
+ self.loghandler.setLevel(ERROR)
+ scheduler.logger.addHandler(self.loghandler)
+
+ def teardown(self):
+ scheduler.logger.removeHandler(self.loghandler)
@raises(TypeError)
def test_noncallable(self):
@@ -144,14 +154,13 @@ class TestJobExecution(object):
eq_(vals, [1])
assert job not in self.scheduler.get_jobs()
- @raises(DummyException)
def test_job_exception(self):
def failure():
raise DummyException
- start_date = datetime(9999, 1, 1)
- job = self.scheduler.add_date_job(failure, start_date)
- job.func()
+ job = self.scheduler.add_date_job(failure, datetime(9999, 9, 9))
+ self.scheduler._process_jobs(job.next_run_time)
+ assert 'DummyException' in self.logstream.getvalue()
def test_interval(self):
def increment(amount):