tests/job.py
branchdevel
changeset 142 7d0c1fa97123
parent 141 90c95fdd1e33
child 143 0b265608b6ce
--- 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: