iro/tests/task.py
branchdevel
changeset 234 08fcc2b6df99
parent 231 3929338fd17f
child 239 4cf5e664c847
equal deleted inserted replaced
233:34435357dc8a 234:08fcc2b6df99
     1 from twisted.internet import reactor
     1 from twisted.internet import reactor
     2 from twisted.internet.defer import inlineCallbacks
     2 from twisted.internet.defer import inlineCallbacks, Deferred
     3 
     3 
     4 from Queue import deque
     4 from Queue import deque
     5 
     5 
     6 from iro.model.schema import User, Offer as DBOffer, Userright
     6 from iro.model.schema import User, Offer as DBOffer, Userright
     7 from iro.model.message import SMS
     7 from iro.model.message import SMS
    61         offers["test"] = Offer("test",provider=p, route="test", typ="sms")
    61         offers["test"] = Offer("test",provider=p, route="test", typ="sms")
    62 
    62 
    63         exjob = yield exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test'])
    63         exjob = yield exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test'])
    64         
    64         
    65         task=Task(Telnumber('123456789'), exjob)
    65         task=Task(Telnumber('123456789'), exjob)
    66         ret = yield task._run()
    66         task.d=Deferred()
       
    67         task._run()
       
    68         ret = yield task.d
    67         self.assertIsInstance(ret, Status)
    69         self.assertIsInstance(ret, Status)
    68         self.assertEqual(ret.provider, p)
    70         self.assertEqual(ret.provider, p)
    69         self.assertEqual(ret.route, "test")
    71         self.assertEqual(ret.route, "test")
    70 
    72 
    71     @inlineCallbacks
       
    72     def testNoRoute(self):
    73     def testNoRoute(self):
    73         with self.session() as session:
    74         with self.session() as session:
    74             u = User(name='test',apikey='abcdef123456789')
    75             u = User(name='test',apikey='abcdef123456789')
    75             session.add(u)
    76             session.add(u)
       
    77         
       
    78         def c(exjob):
       
    79             task = Task(Telnumber('123456789'), exjob)
       
    80             task.d = Deferred()
       
    81             task._run()
       
    82             self.assertFailure(task.d, NoRouteForTask)
       
    83             return task.d
    76 
    84 
    77         exjob = yield exJobs.create(u, [Telnumber('123456789')], SMS('test'), [])
    85         d = exJobs.create(u, [Telnumber('123456789')], SMS('test'), [])
       
    86         d.addCallback(c)
       
    87         return d
    78         
    88         
    79         task=Task(Telnumber('123456789'), exjob)
       
    80         d = task._run()
       
    81         self.assertFailure(d, NoRouteForTask)
       
    82 
    89 
    83     def testSetStatus(self):
    90     def testSetStatus(self):
    84         task=Task(Telnumber('123456789'), None)
    91         task=Task(Telnumber('123456789'), None)
    85         self.assertEqual(task.status,None)
    92         self.assertEqual(task.status,None)
    86         self.assertEqual(task.error,False)
    93         self.assertEqual(task.error,False)