diff -r 90c95fdd1e33 -r 7d0c1fa97123 tests/job.py --- a/tests/job.py Thu Feb 09 18:27:58 2012 +0100 +++ b/tests/job.py Fri Feb 10 20:47:57 2012 +0100 @@ -1,11 +1,12 @@ from twisted.internet import reactor +from twisted.internet.defer import inlineCallbacks from Queue import deque from iro.controller.task import createJob, Task from iro.controller.pool import taskPool, dbPool -from iro.model.job import exJobs, ExJob +from iro.model.job import exJobs, ExJob, Status from iro.model.pool import data @@ -14,6 +15,7 @@ from iro.telnumber import Telnumber from iro.validate import vInteger +from iro.error import NoRoute from .dbtestcase import DBTestCase @@ -84,7 +86,7 @@ def testUnknownExJob(self): self.assertRaises(KeyError,exJobs.__getitem__,'a1234567890') -class JobTest(DBTestCase): +class TestTasks(DBTestCase): def setUp(self): DBTestCase.setUp(self) @@ -107,10 +109,18 @@ self.assertEqual(taskPool.pool.q.qsize(),1) return result d.addCallback(poolsize) + def keys(result): self.assertEqual(result.tasks.keys(),[Telnumber('0123325456')]) return result d.addCallback(keys) + return d + @inlineCallbacks + def testRun(self): + with self.session() as session: + u = User(name='test',apikey='abcdef123456789') + session.add(u) + def tasktest(result): self.assertIsInstance(result.tasks[Telnumber('0123325456')], Task) return result @@ -118,7 +128,27 @@ - return d + exjob = yield exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test']) + + task=Task(Telnumber('123456789'), exjob) + ret = yield task._run() + self.assertIsInstance(ret, Status) + self.assertEqual(ret.offer,"test") + self.assertEqual(ret.status, Status.error) + self.assertEqual(ret.errtext,"Error: Test") + + @inlineCallbacks + def testNoRoute(self): + with self.session() as session: + u = User(name='test',apikey='abcdef123456789') + session.add(u) + + exjob = yield exJobs.create(u, [Telnumber('123456789')], SMS('test'), []) + + task=Task(Telnumber('123456789'), exjob) + d = task._run() + self.assertFailure(d, NoRoute) + #def testCreateFax(self): # with self.session() as session: