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