task now saves own status devel
authorSandro Knauß <knauss@netzguerilla.net>
Mon, 05 Mar 2012 23:51:56 +0100
branchdevel
changeset 217 d755b2e0cc0b
parent 216 ab8e2f26718e
child 218 91f87ad13540
task now saves own status
iro/controller/task.py
tests/task.py
--- a/iro/controller/task.py	Mon Mar 05 21:37:44 2012 +0100
+++ b/iro/controller/task.py	Mon Mar 05 23:51:56 2012 +0100
@@ -16,10 +16,23 @@
     def __init__(self, recipient, job):
         self.recipient = recipient
         self.job = job
+        self.status = None
+        self.error = False
+
+    def setStatus(self,status):
+        self.status = status
+        return status
+
+    def setError(self,error):
+        self.status = error
+        self.error = True
+        return error
 
     def start(self):
         self.d = taskPool.run(self._run)
+        self.d.addCallback(self.setStatus)
         self.d.addCallback(partial(self.job.setStatus,self))
+        self.d.addErrback(self.setError)
         self.d.addErrback(partial(self.job.setError,self))
         return self.d
 
--- a/tests/task.py	Mon Mar 05 21:37:44 2012 +0100
+++ b/tests/task.py	Mon Mar 05 23:51:56 2012 +0100
@@ -80,30 +80,16 @@
         d = task._run()
         self.assertFailure(d, NoRouteForTask)
 
-
-class CompletetaskTests(TaskTestCase):
-    def setUp(self):
-        TaskTestCase.setUp(self)
-        taskPool.start(reactor)
-
-    def tearDown(self):
-        taskPool.pool.stop()
-        TaskTestCase.tearDown(self)
-
-#    def testStart(self):
-#        pass
-
+    def testSetStatus(self):
+        task=Task(Telnumber('123456789'), None)
+        self.assertEqual(task.status,None)
+        self.assertEqual(task.error,False)
 
-    #def testCreateFax(self):
-    #    with self.session() as session:
-    #        u = User(name='test',apikey='abcdef123456789')
-    #        session.add(u)
-    #    job = createJob(u,[Telnumber('0123325456')],Fax('header','fax',[]),[])
+        self.assertEqual(task.setStatus("fooja"),"fooja")
+        self.assertEqual(task.status,"fooja")
 
-    #    self.assertEqual(taskPool.pool.q.qsize(),1)
-
-    #def testCreateMail(self):
-    #    with self.session() as session:
-    #        u = User(name='test',apikey='abcdef123456789')
-    #        session.add(u)
-    #    job = createJob(u,[],Mail('sub','body','t@t.de'),[])
+    def testSetError(self):
+        task=Task(Telnumber('123456789'), None)
+        self.assertEqual(task.setError("fooja"),"fooja")
+        self.assertEqual(task.status,"fooja")
+        self.assertEqual(task.error,True)