--- 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: