iro/tests/task.py
branchdevel
changeset 243 b348d8f15b0a
parent 239 4cf5e664c847
child 294 0e75bd39767d
equal deleted inserted replaced
242:745d829d1e02 243:b348d8f15b0a
   111 
   111 
   112         d = exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test','test2'])
   112         d = exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test','test2'])
   113         d.addCallback(c)
   113         d.addCallback(c)
   114         return d
   114         return d
   115 
   115 
       
   116     def testChaining(self):
       
   117         with self.session() as session:
       
   118             u = User(name='test',apikey='abcdef123456789')
       
   119             session.add(u)
       
   120             o=DBOffer(name="test", provider="bla", route="basic", typ="sms")
       
   121             u.rights.append(Userright(o)) 
       
   122             o=DBOffer(name="test2", provider="bla", route="basic2", typ="sms")
       
   123             u.rights.append(Userright(o)) 
       
   124 
       
   125         p=Provider(name="p", typs={"sms":["basic","basic2"]})
       
   126         def send(typ,route,recipient,message):
       
   127             if route=="basic":
       
   128                 raise Exception("oh my god an exception")
       
   129             return Status(p,route)
       
   130         p.send=send
       
   131         offers["test"] = Offer("test",provider=p, route="basic", typ="sms")
       
   132         offers["test2"] = Offer("test2",provider=p, route="basic2", typ="sms")
       
   133 
       
   134         def c(exjob):
       
   135             task = Task(Telnumber('123456789'), exjob)
       
   136             task.d = Deferred()
       
   137             task.d.addCallback(stat, task)
       
   138             task._run()
       
   139             return task.d
       
   140        
       
   141         def stat(status, task): 
       
   142             errors = self.flushLoggedErrors(Exception)
       
   143             self.assertEqual(len(errors), 1)
       
   144             self.assertEqual(self.log.e[1]['why'], "Job(%s): Send to '0049123456789' failed via 'test'"% task.job.dbjob)
       
   145             self.assertIsInstance(status, Status)
       
   146             self.assertEqual(status.provider, p)
       
   147             self.assertEqual(status.route, "basic2")
       
   148 
       
   149         d = exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test','test2'])
       
   150         d.addCallback(c)
       
   151         return d
       
   152 
       
   153 
       
   154 
   116     def testSetStatus(self):
   155     def testSetStatus(self):
   117         task=Task(Telnumber('123456789'), None)
   156         task=Task(Telnumber('123456789'), None)
   118         self.assertEqual(task.status,None)
   157         self.assertEqual(task.status,None)
   119         self.assertEqual(task.error,False)
   158         self.assertEqual(task.error,False)
   120 
   159