12 from iro.controller.task import createJob, Task |
12 from iro.controller.task import createJob, Task |
13 from iro.controller.pool import taskPool, dbPool |
13 from iro.controller.pool import taskPool, dbPool |
14 |
14 |
15 from iro.offer import Offer, Provider |
15 from iro.offer import Offer, Provider |
16 |
16 |
17 from iro.error import NoRouteForTask |
17 from iro.error import NoRouteForTask,RejectRecipient |
18 from iro.telnumber import Telnumber |
18 from iro.telnumber import Telnumber |
19 |
19 |
20 from ..test_helpers.dbtestcase import DBTestCase |
20 from ..test_helpers.dbtestcase import DBTestCase |
21 |
21 |
22 class TaskTestCase(DBTestCase): |
22 class TaskTestCase(DBTestCase): |
84 |
84 |
85 d = exJobs.create(u, [Telnumber('123456789')], SMS('test'), []) |
85 d = exJobs.create(u, [Telnumber('123456789')], SMS('test'), []) |
86 d.addCallback(c) |
86 d.addCallback(c) |
87 return d |
87 return d |
88 |
88 |
|
89 def testNoRoute2(self): |
|
90 with self.session() as session: |
|
91 u = User(name='test',apikey='abcdef123456789') |
|
92 session.add(u) |
|
93 o=DBOffer(name="test", provider="bla", route="basic", typ="sms") |
|
94 u.rights.append(Userright(o)) |
|
95 o=DBOffer(name="test2", provider="bla", route="basic2", typ="sms") |
|
96 u.rights.append(Userright(o)) |
|
97 |
|
98 p=Provider(name="p", typs={"sms":["basic","basic2"]}) |
|
99 def send(typ,route,recipient,message): |
|
100 raise RejectRecipient(recipient) |
|
101 p.send=send |
|
102 offers["test"] = Offer("test",provider=p, route="basic", typ="sms") |
|
103 offers["test2"] = Offer("test2",provider=p, route="basic2", typ="sms") |
|
104 |
|
105 def c(exjob): |
|
106 task = Task(Telnumber('123456789'), exjob) |
|
107 task.d = Deferred() |
|
108 task._run() |
|
109 self.assertFailure(task.d, NoRouteForTask) |
|
110 return task.d |
|
111 |
|
112 d = exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test','test2']) |
|
113 d.addCallback(c) |
|
114 return d |
89 |
115 |
90 def testSetStatus(self): |
116 def testSetStatus(self): |
91 task=Task(Telnumber('123456789'), None) |
117 task=Task(Telnumber('123456789'), None) |
92 self.assertEqual(task.status,None) |
118 self.assertEqual(task.status,None) |
93 self.assertEqual(task.error,False) |
119 self.assertEqual(task.error,False) |