# HG changeset patch # User Sandro Knauß # Date 1329143909 -3600 # Node ID 0b265608b6cee53b8c80e66cedae75ffb3ec5321 # Parent 7d0c1fa97123f4f1f54d780d42040db9c8f256d1 using inlineCallbacks diff -r 7d0c1fa97123 -r 0b265608b6ce iro/controller/task.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) diff -r 7d0c1fa97123 -r 0b265608b6ce tests/job.py --- 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)