--- a/iro/tests/task.py Wed Mar 21 19:40:06 2012 +0100
+++ b/iro/tests/task.py Wed Mar 21 19:41:55 2012 +0100
@@ -14,7 +14,7 @@
from iro.offer import Offer, Provider
-from iro.error import NoRouteForTask
+from iro.error import NoRouteForTask,RejectRecipient
from iro.telnumber import Telnumber
from ..test_helpers.dbtestcase import DBTestCase
@@ -86,6 +86,32 @@
d.addCallback(c)
return d
+ def testNoRoute2(self):
+ with self.session() as session:
+ u = User(name='test',apikey='abcdef123456789')
+ session.add(u)
+ o=DBOffer(name="test", provider="bla", route="basic", typ="sms")
+ u.rights.append(Userright(o))
+ o=DBOffer(name="test2", provider="bla", route="basic2", typ="sms")
+ u.rights.append(Userright(o))
+
+ p=Provider(name="p", typs={"sms":["basic","basic2"]})
+ def send(typ,route,recipient,message):
+ raise RejectRecipient(recipient)
+ p.send=send
+ offers["test"] = Offer("test",provider=p, route="basic", typ="sms")
+ offers["test2"] = Offer("test2",provider=p, route="basic2", typ="sms")
+
+ def c(exjob):
+ task = Task(Telnumber('123456789'), exjob)
+ task.d = Deferred()
+ task._run()
+ self.assertFailure(task.d, NoRouteForTask)
+ return task.d
+
+ d = exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test','test2'])
+ d.addCallback(c)
+ return d
def testSetStatus(self):
task=Task(Telnumber('123456789'), None)