| author | Sandro Knauß <knauss@netzguerilla.net> |
| Thu, 09 Feb 2012 18:27:58 +0100 | |
| branch | devel |
| changeset 141 | 90c95fdd1e33 |
| parent 140 | 75d0eaaa871d |
| child 142 | 7d0c1fa97123 |
| permissions | -rw-r--r-- |
|
141
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
1 |
from twisted.internet import reactor |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
2 |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
3 |
from Queue import deque |
| 135 | 4 |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
5 |
from iro.controller.task import createJob, Task |
|
141
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
6 |
from iro.controller.pool import taskPool, dbPool |
| 135 | 7 |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
8 |
from iro.model.job import exJobs, ExJob |
| 135 | 9 |
|
10 |
from iro.model.pool import data |
|
11 |
||
12 |
from iro.model.message import SMS, Fax, Mail |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
13 |
from iro.model.schema import Job, User |
| 135 | 14 |
from iro.telnumber import Telnumber |
15 |
||
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
16 |
from iro.validate import vInteger |
| 135 | 17 |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
18 |
from .dbtestcase import DBTestCase |
| 135 | 19 |
|
20 |
class DumpPool(): |
|
21 |
def run(self, f,*a,**k): |
|
22 |
return f(*a,**k) |
|
23 |
||
24 |
||
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
25 |
class exJobsTest(DBTestCase): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
26 |
'''tests for exJobs''' |
| 135 | 27 |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
28 |
def setUp(self): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
29 |
DBTestCase.setUp(self) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
30 |
self.pool = data.pool |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
31 |
data.pool = DumpPool() |
| 135 | 32 |
|
33 |
def tearDown(self): |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
34 |
exJobs.clear() |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
35 |
data.pool = self.pool |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
36 |
self.pool = None |
| 135 | 37 |
DBTestCase.tearDown(self) |
38 |
||
39 |
def testCreate(self): |
|
40 |
with self.session() as session: |
|
41 |
u = User(name='test',apikey='abcdef123456789') |
|
42 |
session.add(u) |
|
43 |
||
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
44 |
job = exJobs.create(u, [Telnumber('123456789')], SMS('test'), ['test']) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
45 |
self.assertIsInstance(job, ExJob) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
46 |
self.assertTrue(vInteger(job.dbjob, None, minv=0 )) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
47 |
self.assertEqual(job.message, SMS('test')) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
48 |
self.assertEqual(job.recipients, [Telnumber('123456789')]) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
49 |
self.assertEqual(job.offers,['test']) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
50 |
self.assertEqual(job.tasks,{}) |
| 135 | 51 |
|
52 |
with self.session() as session: |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
53 |
j = session.query(Job.id).all() |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
54 |
self.assertEqual(j,[(job.dbjob,)]) |
| 135 | 55 |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
56 |
self.assertEqual(exJobs[job.dbjob],job) |
| 135 | 57 |
|
58 |
def testGet(self): |
|
59 |
with self.session() as session: |
|
60 |
u = User(name='test',apikey='abcdef123456789') |
|
61 |
session.add(u) |
|
62 |
||
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
63 |
job = ExJob(None, [Telnumber('123456789')], SMS('test'), ['test']) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
64 |
exJobs[1] = job |
| 135 | 65 |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
66 |
self.assertEqual(len(exJobs), 1) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
67 |
self.assertEqual(job, exJobs[1]) |
| 135 | 68 |
|
69 |
def testGetFromDB(self): |
|
70 |
with self.session() as session: |
|
71 |
u = User(name='test',apikey='abcdef123456789') |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
72 |
job = Job( info="info", status="started") |
| 135 | 73 |
u.jobs.append(job) |
74 |
session.add(u) |
|
75 |
||
76 |
with self.session() as session: |
|
77 |
job = session.merge(job) |
|
78 |
u = session.merge(u) |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
79 |
ejob= ExJob(job.id, [Telnumber('123456789')], SMS('test'), ['test']) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
80 |
exJobs[job.id]=ejob |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
81 |
self.assertEqual(job.extend, ejob) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
82 |
self.assertEqual(u.jobs[0].extend,ejob) |
| 135 | 83 |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
84 |
def testUnknownExJob(self): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
85 |
self.assertRaises(KeyError,exJobs.__getitem__,'a1234567890') |
| 135 | 86 |
|
87 |
class JobTest(DBTestCase): |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
88 |
|
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
89 |
def setUp(self): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
90 |
DBTestCase.setUp(self) |
|
141
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
91 |
dbPool.start(reactor) |
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
92 |
|
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
93 |
def tearDown(self): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
94 |
exJobs.clear() |
|
141
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
95 |
dbPool.pool.stop() |
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
96 |
taskPool.pool.q.queue = deque() |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
97 |
DBTestCase.tearDown(self) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
98 |
|
| 135 | 99 |
def testCreateSMS(self): |
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
100 |
with self.session() as session: |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
101 |
u = User(name='test',apikey='abcdef123456789') |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
102 |
session.add(u) |
|
141
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
103 |
|
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
104 |
d = createJob(u,[Telnumber('0123325456')],SMS('sms'),[]) |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
105 |
|
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
106 |
def poolsize(result): |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
107 |
self.assertEqual(taskPool.pool.q.qsize(),1) |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
108 |
return result |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
109 |
d.addCallback(poolsize) |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
110 |
def keys(result): |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
111 |
self.assertEqual(result.tasks.keys(),[Telnumber('0123325456')]) |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
112 |
return result |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
113 |
d.addCallback(keys) |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
114 |
def tasktest(result): |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
115 |
self.assertIsInstance(result.tasks[Telnumber('0123325456')], Task) |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
116 |
return result |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
117 |
d.addCallback(tasktest) |
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
118 |
|
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
119 |
|
| 135 | 120 |
|
|
141
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
121 |
return d |
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
122 |
|
|
141
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
123 |
#def testCreateFax(self): |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
124 |
# with self.session() as session: |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
125 |
# u = User(name='test',apikey='abcdef123456789') |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
126 |
# session.add(u) |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
127 |
# job = createJob(u,[Telnumber('0123325456')],Fax('header','fax',[]),[]) |
| 135 | 128 |
|
|
141
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
129 |
# self.assertEqual(taskPool.pool.q.qsize(),1) |
| 135 | 130 |
|
|
141
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
131 |
#def testCreateMail(self): |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
132 |
# with self.session() as session: |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
133 |
# u = User(name='test',apikey='abcdef123456789') |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
134 |
# session.add(u) |
|
90c95fdd1e33
first defer test in job management
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
135 |
# job = createJob(u,[],Mail('sub','body','t@t.de'),[]) |