using inlineCallbacks devel
authorSandro Knauß <knauss@netzguerilla.net>
Mon, 13 Feb 2012 15:38:29 +0100
branchdevel
changeset 143 0b265608b6ce
parent 142 7d0c1fa97123
child 144 1cc164bbb068
using inlineCallbacks
iro/controller/task.py
tests/job.py
--- a/iro/controller/task.py	Fri Feb 10 20:47:57 2012 +0100
+++ b/iro/controller/task.py	Mon Feb 13 15:38:29 2012 +0100
@@ -1,5 +1,5 @@
 from functools import partial
-from twisted.internet import defer
+
 from twisted.internet.defer import inlineCallbacks, returnValue 
 
 from ..error import NoRoute, RejectRecipient
@@ -27,7 +27,7 @@
     def _run(self):
         for offer in self.job.offers:
             try:
-                ret = yield (offers[offer].send(self.recipient,self.job.message))
+                ret = yield offers[offer].send(self.recipient,self.job.message)
                 returnValue(ret)
             except RejectRecipient:
                 continue
@@ -35,13 +35,11 @@
             raise NoRoute()
 
 
+@inlineCallbacks
 def createJob(user,recipients, msg, offers, info=None):
-    d = defer.maybeDeferred(exJobs.create,user, recipients, msg, offers, info)
-    def _(job):
-        for r in recipients:
-            task = Task(r,job)
-            job.addTask(task)
-            task.start()
-        return job
-    d.addCallback(_)
-    return d
+    job = yield exJobs.create(user, recipients, msg, offers, info)
+    for r in recipients:
+        task = Task(r,job)
+        job.addTask(task)
+        task.start()
+    returnValue(job)
--- a/tests/job.py	Fri Feb 10 20:47:57 2012 +0100
+++ b/tests/job.py	Mon Feb 13 15:38:29 2012 +0100
@@ -98,36 +98,25 @@
         taskPool.pool.q.queue = deque()
         DBTestCase.tearDown(self)
     
+    @inlineCallbacks
     def testCreateSMS(self):
         with self.session() as session:
             u = User(name='test',apikey='abcdef123456789')
             session.add(u)
         
-        d = createJob(u,[Telnumber('0123325456')],SMS('sms'),[])
+        job = yield createJob(u,[Telnumber('0123325456')],SMS('sms'),[])
+        
+        self.assertEqual(taskPool.pool.q.qsize(),1)
         
-        def poolsize(result):
-            self.assertEqual(taskPool.pool.q.qsize(),1)
-            return result
-        d.addCallback(poolsize)
+        self.assertEqual(job.tasks.keys(),[Telnumber('0123325456')])
+        self.assertIsInstance(job.tasks[Telnumber('0123325456')], Task)
 
-        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
-        d.addCallback(tasktest)
-
-
-
         exjob = yield exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test'])
         
         task=Task(Telnumber('123456789'), exjob)