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) |