iro/tests/task.py
author Sandro Knauß <knauss@netzguerilla.net>
Fri, 23 Mar 2012 16:21:22 +0100
branchdevel
changeset 243 b348d8f15b0a
parent 239 4cf5e664c847
child 294 0e75bd39767d
permissions -rw-r--r--
tests for OfferChaning added OfferChaning: First Offers fail, and another sucseed.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     1
from twisted.internet import reactor
234
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
     2
from twisted.internet.defer import inlineCallbacks, Deferred
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     3
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     4
from Queue import deque
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     5
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     6
from iro.model.schema import User, Offer as DBOffer, Userright
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     7
from iro.model.message import SMS
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     8
from iro.model.status import Status
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     9
from iro.model.offer import offers
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    10
from iro.model.job import exJobs
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    11
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    12
from iro.controller.task import createJob, Task
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    13
from iro.controller.pool  import taskPool, dbPool
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    14
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    15
from iro.offer import Offer, Provider
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    16
239
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
    17
from iro.error import NoRouteForTask,RejectRecipient
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    18
from iro.telnumber import Telnumber
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    19
231
3929338fd17f moving tests -> iro.tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 217
diff changeset
    20
from ..test_helpers.dbtestcase import DBTestCase
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    21
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    22
class TaskTestCase(DBTestCase):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    23
    def setUp(self):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    24
        DBTestCase.setUp(self)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    25
        dbPool.start(reactor)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    26
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    27
    def tearDown(self):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    28
        exJobs.clear()
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    29
        offers.clear()
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    30
        dbPool.pool.stop()
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    31
        taskPool.pool.q.queue = deque()
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    32
        DBTestCase.tearDown(self)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    33
 
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    34
class TestTasks(TaskTestCase):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    35
   
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    36
    @inlineCallbacks
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    37
    def testCreateSMS(self):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    38
        with self.session() as session:
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    39
            u = User(name='test',apikey='abcdef123456789')
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    40
            session.add(u)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    41
        
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    42
        job = yield createJob(u,[Telnumber('0123325456')],SMS('sms'),[])
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    43
        
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    44
        self.assertEqual(taskPool.pool.q.qsize(),1)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    45
        
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    46
        self.assertEqual(job.tasks.keys(),[Telnumber('0123325456')])
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    47
        self.assertIsInstance(job.tasks[Telnumber('0123325456')], Task)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    48
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    49
    @inlineCallbacks
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    50
    def testRun(self):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    51
        with self.session() as session:
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    52
            u = User(name='test',apikey='abcdef123456789')
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    53
            session.add(u)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    54
            o=DBOffer(name="test", provider="bla", route="basic", typ="sms")
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    55
            u.rights.append(Userright(o)) 
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    56
        
186
b381eaa774ab refactoring ifo.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 175
diff changeset
    57
        p=Provider(name="p", typs={"sms":["test",]})
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    58
        def send(typ,route,recipient,message):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    59
            return Status(provider=p, route=route)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    60
        p.send=send
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    61
        offers["test"] = Offer("test",provider=p, route="test", typ="sms")
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    62
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    63
        exjob = yield exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test'])
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    64
        
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    65
        task=Task(Telnumber('123456789'), exjob)
234
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    66
        task.d=Deferred()
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    67
        task._run()
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    68
        ret = yield task.d
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    69
        self.assertIsInstance(ret, Status)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    70
        self.assertEqual(ret.provider, p)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    71
        self.assertEqual(ret.route, "test")
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    72
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    73
    def testNoRoute(self):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    74
        with self.session() as session:
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    75
            u = User(name='test',apikey='abcdef123456789')
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    76
            session.add(u)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    77
        
234
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    78
        def c(exjob):
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    79
            task = Task(Telnumber('123456789'), exjob)
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    80
            task.d = Deferred()
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    81
            task._run()
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    82
            self.assertFailure(task.d, NoRouteForTask)
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    83
            return task.d
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    84
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    85
        d = exJobs.create(u, [Telnumber('123456789')], SMS('test'), [])
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    86
        d.addCallback(c)
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    87
        return d
08fcc2b6df99 refactoring task._run
Sandro Knauß <knauss@netzguerilla.net>
parents: 231
diff changeset
    88
        
239
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
    89
    def testNoRoute2(self):
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
    90
        with self.session() as session:
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
    91
            u = User(name='test',apikey='abcdef123456789')
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
    92
            session.add(u)
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
    93
            o=DBOffer(name="test", provider="bla", route="basic", typ="sms")
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
    94
            u.rights.append(Userright(o)) 
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
    95
            o=DBOffer(name="test2", provider="bla", route="basic2", typ="sms")
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
    96
            u.rights.append(Userright(o)) 
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
    97
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
    98
        p=Provider(name="p", typs={"sms":["basic","basic2"]})
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
    99
        def send(typ,route,recipient,message):
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   100
            raise RejectRecipient(recipient)
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   101
        p.send=send
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   102
        offers["test"] = Offer("test",provider=p, route="basic", typ="sms")
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   103
        offers["test2"] = Offer("test2",provider=p, route="basic2", typ="sms")
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   104
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   105
        def c(exjob):
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   106
            task = Task(Telnumber('123456789'), exjob)
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   107
            task.d = Deferred()
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   108
            task._run()
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   109
            self.assertFailure(task.d, NoRouteForTask)
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   110
            return task.d
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   111
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   112
        d = exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test','test2'])
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   113
        d.addCallback(c)
4cf5e664c847 adding tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 234
diff changeset
   114
        return d
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   115
243
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   116
    def testChaining(self):
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   117
        with self.session() as session:
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   118
            u = User(name='test',apikey='abcdef123456789')
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   119
            session.add(u)
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   120
            o=DBOffer(name="test", provider="bla", route="basic", typ="sms")
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   121
            u.rights.append(Userright(o)) 
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   122
            o=DBOffer(name="test2", provider="bla", route="basic2", typ="sms")
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   123
            u.rights.append(Userright(o)) 
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   124
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   125
        p=Provider(name="p", typs={"sms":["basic","basic2"]})
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   126
        def send(typ,route,recipient,message):
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   127
            if route=="basic":
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   128
                raise Exception("oh my god an exception")
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   129
            return Status(p,route)
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   130
        p.send=send
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   131
        offers["test"] = Offer("test",provider=p, route="basic", typ="sms")
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   132
        offers["test2"] = Offer("test2",provider=p, route="basic2", typ="sms")
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   133
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   134
        def c(exjob):
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   135
            task = Task(Telnumber('123456789'), exjob)
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   136
            task.d = Deferred()
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   137
            task.d.addCallback(stat, task)
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   138
            task._run()
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   139
            return task.d
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   140
       
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   141
        def stat(status, task): 
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   142
            errors = self.flushLoggedErrors(Exception)
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   143
            self.assertEqual(len(errors), 1)
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   144
            self.assertEqual(self.log.e[1]['why'], "Job(%s): Send to '0049123456789' failed via 'test'"% task.job.dbjob)
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   145
            self.assertIsInstance(status, Status)
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   146
            self.assertEqual(status.provider, p)
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   147
            self.assertEqual(status.route, "basic2")
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   148
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   149
        d = exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test','test2'])
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   150
        d.addCallback(c)
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   151
        return d
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   152
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   153
b348d8f15b0a tests for OfferChaning added
Sandro Knauß <knauss@netzguerilla.net>
parents: 239
diff changeset
   154
217
d755b2e0cc0b task now saves own status
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   155
    def testSetStatus(self):
d755b2e0cc0b task now saves own status
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   156
        task=Task(Telnumber('123456789'), None)
d755b2e0cc0b task now saves own status
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   157
        self.assertEqual(task.status,None)
d755b2e0cc0b task now saves own status
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   158
        self.assertEqual(task.error,False)
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   159
217
d755b2e0cc0b task now saves own status
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   160
        self.assertEqual(task.setStatus("fooja"),"fooja")
d755b2e0cc0b task now saves own status
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   161
        self.assertEqual(task.status,"fooja")
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   162
217
d755b2e0cc0b task now saves own status
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   163
    def testSetError(self):
d755b2e0cc0b task now saves own status
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   164
        task=Task(Telnumber('123456789'), None)
d755b2e0cc0b task now saves own status
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   165
        self.assertEqual(task.setError("fooja"),"fooja")
d755b2e0cc0b task now saves own status
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   166
        self.assertEqual(task.status,"fooja")
d755b2e0cc0b task now saves own status
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   167
        self.assertEqual(task.error,True)