tests/job.py
author Sandro Knauß <knauss@netzguerilla.net>
Sat, 10 Mar 2012 19:00:12 +0100
branchdevel
changeset 219 4e9d79c35088
parent 216 ab8e2f26718e
permissions -rw-r--r--
iro.model.schema.__tables__ is available under Base.metadata.sorted_tables
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: 170
diff changeset
     1
from datetime import datetime
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
     2
from decimal import Decimal
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
     3
from mock import patch
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     4
159
fbd7364b252d implementing Provider.loadConig started
Sandro Knauß <knauss@netzguerilla.net>
parents: 152
diff changeset
     5
from iro.model.job import exJobs, ExJob
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
     6
from iro.model.pool import data
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
     7
from iro.model.message import SMS
159
fbd7364b252d implementing Provider.loadConig started
Sandro Knauß <knauss@netzguerilla.net>
parents: 152
diff changeset
     8
from iro.model.status import Status
152
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
     9
from iro.model.schema import Job, User, Offer as DBOffer, Userright
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    10
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    11
from iro.controller.task import Task
145
b58ce5bb96cc now offers are empty from start
Sandro Knauß <knauss@netzguerilla.net>
parents: 143
diff changeset
    12
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    13
from iro.offer.provider import Provider
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    14
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    15
from iro.telnumber import Telnumber
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    16
from iro.validate import vInteger
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    17
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    18
from .dbtestcase import DBTestCase
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    19
152
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    20
class DummyPool():
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    21
    def run(self, f,*a,**k):
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    22
        return f(*a,**k)
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    23
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    24
from twisted.python import log
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    25
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    26
class DummyObserver(object):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    27
    def __init__(self):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    28
        self.e=[]    
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    29
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    30
    def start(self):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    31
        log.addObserver(self.emit)
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    32
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    33
    def stop(self):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    34
        log.removeObserver(self.emit)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    35
    
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    36
    def emit(self, eventDict):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    37
        self.e.append(eventDict)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    38
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    39
class JobTestCase(DBTestCase):
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    40
    def setUp(self):
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    41
        DBTestCase.setUp(self)
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    42
        self.pool = data.pool
152
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    43
        data.pool = DummyPool()
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    44
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    45
    def tearDown(self):
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    46
        exJobs.clear()
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    47
        data.pool = self.pool
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    48
        self.pool = None
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    49
        DBTestCase.tearDown(self)
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    50
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    51
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    52
class exJobsTest(JobTestCase):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    53
    '''tests for exJobs'''
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
    54
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    55
    def testCreate(self):
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    56
        with self.session() as session:
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    57
            u = User(name='test',apikey='abcdef123456789')
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    58
            session.add(u)
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    59
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    60
        job = exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test'])
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    61
        self.assertIsInstance(job, ExJob)
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    62
        self.assertTrue(vInteger(job.dbjob, None, minv=0 ))
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    63
        self.assertEqual(job.message, SMS('test'))
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    64
        self.assertEqual(job.recipients,  [Telnumber('123456789')])
152
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    65
        self.assertEqual(job.offers,[])
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    66
        self.assertEqual(job.tasks,{})
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    67
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    68
        with self.session() as session:
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    69
            j = session.query(Job.id).all()
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    70
            self.assertEqual(j,[(job.dbjob,)])
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    71
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    72
        self.assertEqual(exJobs[job.dbjob],job)
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    73
152
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    74
    def testCreate2(self):
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    75
        with self.session() as session:
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    76
            u = User(name='test',apikey='abcdef123456789')
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    77
            session.add(u)
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    78
            o=DBOffer(name="test", provider="bla", route="basic", typ="sms")
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    79
            u.rights.append(Userright(o)) 
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    80
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    81
        job = exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test'])
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    82
        self.assertEqual(job.offers,['test'])
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    83
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    84
    def testGet(self):
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    85
        with self.session() as session:
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    86
            u = User(name='test',apikey='abcdef123456789')
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    87
            session.add(u)
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    88
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    89
        job = ExJob(None, [Telnumber('123456789')], SMS('test'), ['test'])
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    90
        exJobs[1] = job
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    91
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    92
        self.assertEqual(len(exJobs), 1)
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    93
        self.assertEqual(job, exJobs[1])
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    94
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    95
    def testGetFromDB(self):
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    96
        with self.session() as session:
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    97
            u = User(name='test',apikey='abcdef123456789')
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    98
            job = Job( info="info", status="started")
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    99
            u.jobs.append(job)
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   100
            session.add(u)
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   101
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   102
        with self.session() as session:
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   103
            job = session.merge(job)
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   104
            u = session.merge(u)
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
   105
            ejob= ExJob(job.id, [Telnumber('123456789')], SMS('test'), ['test'])
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
   106
            exJobs[job.id]=ejob
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
   107
            self.assertEqual(job.extend, ejob)
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
   108
            self.assertEqual(u.jobs[0].extend,ejob)
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   109
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
   110
    def testUnknownExJob(self):
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
   111
        self.assertRaises(KeyError,exJobs.__getitem__,'a1234567890')
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   112
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
   113
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   114
class StatiTest(JobTestCase):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   115
    def setUp(self):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   116
        JobTestCase.setUp(self)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   117
        self.log = DummyObserver()
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   118
        self.log.start()
142
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 141
diff changeset
   119
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 141
diff changeset
   120
        with self.session() as session:
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 141
diff changeset
   121
            u = User(name='test',apikey='abcdef123456789')
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 141
diff changeset
   122
            session.add(u)
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   123
            o=DBOffer(name="test", provider="bla", route="a", typ="sms")
152
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
   124
            u.rights.append(Userright(o)) 
142
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 141
diff changeset
   125
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   126
        self.user = u
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   127
        self.offer = o
142
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 141
diff changeset
   128
        
186
b381eaa774ab refactoring ifo.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 175
diff changeset
   129
        self.provider=Provider("bla", {"sms":["a","b","c"]})
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   130
        self.job = exJobs.create(u, [Telnumber('123456789')], SMS('test'), [])
142
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 141
diff changeset
   131
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   132
    def tearDown(self):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   133
        self.log.stop()
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   134
        JobTestCase.tearDown(self)
142
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 141
diff changeset
   135
140
75d0eaaa871d start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
   136
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   137
    def testSetError(self):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   138
        self.job.setError(Task(Telnumber('123456789'),self),Exception("muhaha"))
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   139
        errors = self.flushLoggedErrors(Exception)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   140
        self.assertEqual(len(errors), 1)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   141
        self.assertEqual(self.log.e[0]['why'], "Error: Job(%s) to '0049123456789' failed."%self.job.dbjob)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   142
        
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   143
        with self.session() as session:
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   144
            u = session.merge(self.user)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   145
            job = u.job(self.job.dbjob)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   146
            self.assertEqual(job.status,"error")
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   147
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   148
    def testSetStatus(self):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   149
        task = Task(Telnumber('123456789'),self.job)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   150
        status = Status(self.provider,"a")
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   151
        self.job.setStatus(task, status)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   152
        
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   153
        self.assertEqual(self.log.e[0]['message'], ("Job(%s) to '0049123456789' ended sucecessfully via bla:a."%self.job.dbjob,))
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   154
        
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   155
        with self.session() as session:
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   156
            u = session.merge(self.user)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   157
            job = u.job(self.job.dbjob)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   158
            self.assertEqual(job.status,"sended")
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   159
            self.assertEqual(len(job.messages),0)
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   160
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   161
    def testMultipleRecipients(self):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   162
        self.job.recipients.append(Telnumber("01234567890"))
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   163
        task = Task(Telnumber('123456789'),self.job)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   164
        status = Status(self.provider,"a")
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   165
        self.job.setStatus(task, status)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   166
        
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   167
        with self.session() as session:
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   168
            u = session.merge(self.user)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   169
            job = u.job(self.job.dbjob)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   170
            self.assertEqual(job.status,"sending")
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   171
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   172
    @patch("iro.model.job.datetime")
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   173
    def testCosts(self,p_dt):
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   174
        p_dt.today.return_value = datetime(2000, 1, 2, 3, 4, 5)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   175
        task = Task(Telnumber('123456789'),self.job)
216
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   176
        status = Status(self.provider,"a",costs=0.055,exID="12345678",count=1)
175
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   177
        
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   178
        self.job.setStatus(task, status)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   179
        
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   180
        with self.session() as session:
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   181
            u = session.merge(self.user)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   182
            o = session.merge(self.offer)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   183
            job = u.job(self.job.dbjob)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   184
            self.assertEqual(job.status,"sended")
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   185
            self.assertEqual(len(job.messages),1)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   186
            
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   187
            msg = job.messages[0]
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   188
            self.assertEqual(msg.price,Decimal('0.0550'))
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   189
            self.assertEqual(msg.isBilled,False)
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   190
            self.assertEqual(msg.recipient,str(Telnumber('123456789')))
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   191
            self.assertEqual(msg.date,datetime(2000, 1, 2, 3, 4, 5))
c29acd5fb841 splitting tests.job -> test.job, tests.tasks
Sandro Knauß <knauss@netzguerilla.net>
parents: 170
diff changeset
   192
            self.assertEqual(msg.offer,o)
216
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   193
            self.assertEqual(msg.exID,"12345678")
ab8e2f26718e tests for Task.start -> ExJob->setError/setStatus
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   194
            self.assertEqual(msg.count,1)