| author | Sandro Knauß <knauss@netzguerilla.net> |
| Mon, 30 Jan 2012 21:02:03 +0100 | |
| branch | devel |
| changeset 127 | 79966b937274 |
| parent 126 | 1ac2439a68b5 |
| child 128 | 1a3ebdd3bdaf |
| permissions | -rw-r--r-- |
|
105
48f2b8adc7da
eigenständiger client datei für den xmlrpc test
Sandro Knauß <knauss@netzguerilla.net>
parents:
102
diff
changeset
|
1 |
from multiprocessing import Process |
|
107
f11520354165
controller.database -> model.utils
Sandro Knauß <knauss@netzguerilla.net>
parents:
106
diff
changeset
|
2 |
from sqlalchemy import create_engine, pool |
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
3 |
import unittest |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
4 |
|
|
95
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
5 |
from tempfile import mkdtemp |
|
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
6 |
import shutil |
| 92 | 7 |
|
|
127
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
8 |
from datetime import datetime |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
9 |
|
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
10 |
import time |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
11 |
|
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
12 |
from xmlrpclib import Server as xServer, ServerProxy, Fault |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
13 |
|
| 117 | 14 |
from iro.model.utils import WithSession |
15 |
from iro.model import POOL_SIZE as DB_POOL_SIZE |
|
|
95
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
16 |
|
|
127
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
17 |
from iro.model.schema import User, Base, Offer, Userright, Job, Message |
| 117 | 18 |
import iro.model.schema as schema |
|
95
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
19 |
|
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
20 |
from iro.main import runReactor |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
21 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
22 |
import iro.error as IroError |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
23 |
|
|
127
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
24 |
from ngdatabase.mysql import Server, createConfig, Database |
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
25 |
|
|
95
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
26 |
class SampleDatabase(Database): |
|
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
27 |
def createPassword(self): |
|
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
28 |
self.password="test" |
|
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
29 |
return self.password |
| 92 | 30 |
|
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
31 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
32 |
#activates all logging we can get. |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
33 |
|
|
105
48f2b8adc7da
eigenständiger client datei für den xmlrpc test
Sandro Knauß <knauss@netzguerilla.net>
parents:
102
diff
changeset
|
34 |
from twisted.python import log |
| 92 | 35 |
import logging |
|
107
f11520354165
controller.database -> model.utils
Sandro Knauß <knauss@netzguerilla.net>
parents:
106
diff
changeset
|
36 |
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)s(%(processName)s)-%(levelname)s: %(message)s') |
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
37 |
observer = log.PythonLoggingObserver() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
38 |
observer.start() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
39 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
40 |
class XMLRPCTest(unittest.TestCase): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
41 |
"""tests for the xmlrpc interface""" |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
42 |
def setUp(self): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
43 |
self.s = Process(target=startReactor, args=(md.engine,)) |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
44 |
self.s.start() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
45 |
#the new process needs time to get stated, so this process has to sleep |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
46 |
time.sleep(.2) |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
47 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
48 |
def tearDown(self): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
49 |
self.__debug().stop() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
50 |
time.sleep(.2) |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
51 |
self.s.join() |
| 117 | 52 |
self.__cleanDB() |
53 |
||
54 |
def __cleanDB(self): |
|
55 |
with WithSession(md.engine, autocommit=True) as session: |
|
56 |
for table in schema.__tables__: |
|
57 |
session.query(getattr(schema,table)).delete() |
|
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
58 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
59 |
def __debug(self): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
60 |
return xServer('http://localhost:7080/debug') |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
61 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
62 |
def __rpc2(self): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
63 |
return ServerProxy('http://localhost:7080/RPC2') |
|
114
1ed072cc6793
reconstructing validate decorator
Sandro Knauß <knauss@netzguerilla.net>
parents:
113
diff
changeset
|
64 |
|
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
65 |
def testDebugHello(self): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
66 |
'''simple test for the connection to xmlrpc server''' |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
67 |
ret=self.__debug().hello() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
68 |
self.failUnlessEqual(ret,'hello') |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
69 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
70 |
def testListMethods(self): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
71 |
'''list of all offical Methods, that can be executed''' |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
72 |
ret=self.__rpc2().listMethods() |
|
127
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
73 |
self.failUnlessEqual(ret, ['listMethods', 'status', 'stop', 'sms', 'fax', 'mail', 'routes', 'defaultRoute', 'bill', 'telnumber','email']) |
|
95
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
74 |
|
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
75 |
def testStatus(self): |
| 117 | 76 |
''' test the status function''' |
77 |
with WithSession(md.engine, autocommit=True) as session: |
|
|
125
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
78 |
u = User(name='test',apikey='abcdef123456789') |
| 117 | 79 |
session.add(User(name='test',apikey='abcdef123456789')) |
|
125
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
80 |
self.failUnlessEqual(self.__rpc2().status('abcdef123456789'), {}) |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
81 |
|
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
82 |
with WithSession(md.engine, autocommit=True) as session: |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
83 |
u = session.merge(u) |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
84 |
j = Job(hash="a1", info='info', status="started") |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
85 |
j.user=u |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
86 |
session.add(j) |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
87 |
|
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
88 |
status = {'a1':{"status":"started"}} |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
89 |
self.failUnlessEqual(self.__rpc2().status('abcdef123456789'), status) |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
90 |
self.failUnlessEqual(self.__rpc2().status('abcdef123456789',"a1"), status) |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
91 |
self.failUnlessEqual(self.__rpc2().status('abcdef123456789', '', 'false'), status) |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
92 |
self.failUnlessEqual(self.__rpc2().status('abcdef123456789', '', 0), status) |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
93 |
|
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
94 |
#JobNotFound |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
95 |
with self.assertRaises(Fault) as fault: |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
96 |
self.__rpc2().status('abcdef123456789',"b") |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
97 |
exc = fault.exception |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
98 |
unf = IroError.JobNotFound() |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
99 |
self.failUnlessEqual(exc.faultCode, unf.code) |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
100 |
self.failUnlessEqual(exc.faultString, unf.msg) |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
101 |
|
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
102 |
#self.failUnlessEqual(self.__rpc2().status('abcdef123456789','abcde', True), ["<User('test','abcdef123456789')>",'abcde', True]) |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
103 |
#self.failUnlessEqual(self.__rpc2().status('abcdef123456789', '', 'true'), ["<User('test','abcdef123456789')>", '', True]) |
|
19b3f383c9ce
getting job status form db
Sandro Knauß <knauss@netzguerilla.net>
parents:
120
diff
changeset
|
104 |
#self.failUnlessEqual(self.__rpc2().status('abcdef123456789', '', 1), ["<User('test','abcdef123456789')>", '', True]) |
|
119
3462c2c90f95
function routes complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
105 |
|
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
106 |
def testNoSuchUser(self): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
107 |
'''a unknown user should raise a UserNotNound Exception |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
108 |
bewcause xmlrpc only has a Fault exception this Exception has to be deliverd through a xmlrpclib.Fault Exception''' |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
109 |
with self.assertRaises(Fault) as fault: |
| 117 | 110 |
self.__rpc2().status('abcdef123456789') |
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
111 |
exc = fault.exception |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
112 |
unf=IroError.UserNotFound() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
113 |
self.failUnlessEqual(exc.faultCode, unf.code) |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
114 |
self.failUnlessEqual(exc.faultString, unf.msg) |
|
95
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
115 |
|
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
116 |
def testNoSuchMethod(self): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
117 |
'''a unknown mothod should raise a Exception ''' |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
118 |
with self.assertRaises(Fault) as fault: |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
119 |
self.__rpc2().nosuchmethod() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
120 |
exc = fault.exception |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
121 |
self.failUnlessEqual(exc.faultCode, 8001) |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
122 |
self.failUnlessEqual(exc.faultString, "procedure nosuchmethod not found") |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
123 |
|
|
114
1ed072cc6793
reconstructing validate decorator
Sandro Knauß <knauss@netzguerilla.net>
parents:
113
diff
changeset
|
124 |
def testValidationFault(self): |
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
125 |
'''a validate Exception should be translated to a xmlrpclib.Fault.''' |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
126 |
with self.assertRaises(Fault) as fault: |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
127 |
self.__rpc2().status('xxx') |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
128 |
exc = fault.exception |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
129 |
self.failUnlessEqual(exc.faultCode, 700) |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
130 |
self.failUnlessEqual(exc.faultString, "Validation of 'apikey' failed.") |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
131 |
|
| 117 | 132 |
def testRoutes(self): |
133 |
'''test the route function''' |
|
134 |
with WithSession(md.engine, autocommit=True) as session: |
|
135 |
u=User(name='test',apikey='abcdef123456789') |
|
136 |
o=Offer(name="sipgate_basic", provider="sipgate", route="basic", typ="sms") |
|
137 |
u.rights.append(Userright(o)) |
|
138 |
session.add(u) |
|
139 |
self.failUnlessEqual(self.__rpc2().routes('abcdef123456789','sms'),['sipgate_basic']) |
|
140 |
||
141 |
with self.assertRaises(Fault) as fault: |
|
142 |
self.__rpc2().routes('abcdef123456789','fax') |
|
143 |
exc = fault.exception |
|
144 |
self.failUnlessEqual(exc.faultCode, 700) |
|
145 |
self.failUnlessEqual(exc.faultString, "Typ is not valid.") |
|
146 |
||
147 |
with WithSession(md.engine, autocommit=True) as session: |
|
148 |
o=Offer(name="sipgate_plus", provider="sipgate", route="plus", typ="sms") |
|
149 |
u = session.query(User).filter_by(name="test").first() |
|
150 |
u.rights.append(Userright(o)) |
|
|
119
3462c2c90f95
function routes complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
151 |
o=Offer(name="faxde", provider="faxde", route="", typ="fax") |
|
3462c2c90f95
function routes complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
152 |
session.add(o) |
| 117 | 153 |
session.commit() |
154 |
self.failUnlessEqual(self.__rpc2().routes('abcdef123456789','sms'),['sipgate_basic','sipgate_plus']) |
|
|
119
3462c2c90f95
function routes complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
155 |
self.failUnlessEqual(self.__rpc2().routes('abcdef123456789','fax'),[]) |
|
3462c2c90f95
function routes complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
156 |
|
|
3462c2c90f95
function routes complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
157 |
with WithSession(md.engine, autocommit=True) as session: |
|
3462c2c90f95
function routes complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
158 |
u = session.query(User).filter_by(name="test").first() |
|
3462c2c90f95
function routes complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
159 |
u.rights.append(Userright(o)) |
|
3462c2c90f95
function routes complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
160 |
|
|
3462c2c90f95
function routes complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
161 |
self.failUnlessEqual(self.__rpc2().routes('abcdef123456789','sms'),['sipgate_basic','sipgate_plus']) |
|
3462c2c90f95
function routes complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
162 |
self.failUnlessEqual(self.__rpc2().routes('abcdef123456789','fax'),['faxde']) |
| 117 | 163 |
|
|
120
7bde35ad89e0
function defaultRoute complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
119
diff
changeset
|
164 |
def testDefaultRoutes(self): |
|
7bde35ad89e0
function defaultRoute complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
119
diff
changeset
|
165 |
'''test the defaultRoute function''' |
|
7bde35ad89e0
function defaultRoute complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
119
diff
changeset
|
166 |
with WithSession(md.engine, autocommit=True) as session: |
|
7bde35ad89e0
function defaultRoute complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
119
diff
changeset
|
167 |
u=User(name='test',apikey='abcdef123456789') |
|
7bde35ad89e0
function defaultRoute complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
119
diff
changeset
|
168 |
o=Offer(name="sipgate_basic", provider="sipgate", route="basic", typ="sms") |
|
7bde35ad89e0
function defaultRoute complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
119
diff
changeset
|
169 |
u.rights.append(Userright(o,True)) |
|
7bde35ad89e0
function defaultRoute complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
119
diff
changeset
|
170 |
o=Offer(name="sipgate_plus", provider="sipgate", route="plus", typ="sms") |
|
7bde35ad89e0
function defaultRoute complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
119
diff
changeset
|
171 |
u.rights.append(Userright(o)) |
|
7bde35ad89e0
function defaultRoute complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
119
diff
changeset
|
172 |
session.add(u) |
|
7bde35ad89e0
function defaultRoute complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
119
diff
changeset
|
173 |
self.failUnlessEqual(self.__rpc2().defaultRoute('abcdef123456789','sms'),['sipgate_basic']) |
|
7bde35ad89e0
function defaultRoute complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
119
diff
changeset
|
174 |
|
|
126
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
175 |
def testTelnumbers(self): |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
176 |
'''test the telefon validator''' |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
177 |
self.failUnlessEqual(self.__rpc2().telnumber(["0123/456(78)","+4912346785433","00123435456-658"]),True) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
178 |
numbers=['xa','+1','1-23',';:+0','0123'] |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
179 |
for number in numbers: |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
180 |
with self.assertRaises(Fault) as fault: |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
181 |
self.__rpc2().telnumber([number]) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
182 |
exc = fault.exception |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
183 |
self.failUnlessEqual(exc.faultCode, 701) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
184 |
self.failUnlessEqual(exc.faultString, "No valid telnumber: '%s'"%number) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
185 |
|
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
186 |
with self.assertRaises(Fault) as fault: |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
187 |
self.__rpc2().telnumber(['01234']+numbers) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
188 |
exc = fault.exception |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
189 |
self.failUnlessEqual(exc.faultCode, 701) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
190 |
self.failUnlessEqual(exc.faultString, "No valid telnumber: '%s'"%numbers[0]) |
|
120
7bde35ad89e0
function defaultRoute complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
119
diff
changeset
|
191 |
|
|
7bde35ad89e0
function defaultRoute complemented
Sandro Knauß <knauss@netzguerilla.net>
parents:
119
diff
changeset
|
192 |
|
|
126
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
193 |
def testVaildEmail(self): |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
194 |
'''test vaild email adresses (got from wikipedia)''' |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
195 |
validmails=["niceandsimple@example.com", |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
196 |
"simplewith+symbol@example.com", |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
197 |
'a.little.unusual@example.com', |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
198 |
'a.little.more.unusual@dept.example.com', |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
199 |
'@[10.10.10.10]', |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
200 |
'@[1.1.1.1]', |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
201 |
'@[200.100.100.100]', |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
202 |
'user@[2001:db8:1ff::a0b:dbd0]', |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
203 |
'"much.more\ unusual"@example.com', |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
204 |
'"very.unusual.@.unusual.com"@example.com', |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
205 |
'"very.(),:;<>[]\\".VERY.\\"very@\\\ \\"very\\".unusual"@strange.example.com', |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
206 |
"!#$%&'*+-/=?^_`{}|~@example.org", |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
207 |
'"()<>[]:;@,\\\"!#$%&\'*+-/=?^_`{}| ~ ? ^_`{}|~."@example.org', |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
208 |
'""@example.org'] |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
209 |
|
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
210 |
for num in validmails: |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
211 |
self.failUnlessEqual(self.__rpc2().email([num]),True) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
212 |
|
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
213 |
def testInvaildEmail(self): |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
214 |
'''test invaild email adresses (got from wikipedia)''' |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
215 |
invalid=["Abc.example.com", # (an @ character must separate the local and domain parts) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
216 |
"Abc.@example.com", # (character dot(.) is last in local part) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
217 |
"Abc..123@example.com", # (character dot(.) is double) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
218 |
"A@b@c@example.com", # (only one @ is allowed outside quotation marks) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
219 |
'a"b(c)d,e:f;g<h>i[j\k]l@example.com', # (none of the special characters in this local part is allowed outside quotation marks) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
220 |
'just"not"right@example.com', # (quoted strings must be dot separated, or the only element making up the local-part) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
221 |
'thisis."notallowed@example.com', # (spaces, quotes, and backslashes may only exist when within quoted strings and preceded by a slash) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
222 |
'this\\ still\\"not\\allowed@example.com', # (even if escaped (preceded by a backslash), spaces, quotes, and backslashes must still be contained by quotes) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
223 |
] |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
224 |
|
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
225 |
for number in invalid: |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
226 |
with self.assertRaises(Fault) as fault: |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
227 |
self.__rpc2().email([number]) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
228 |
exc = fault.exception |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
229 |
self.failUnlessEqual(exc.faultCode, 702) |
|
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
230 |
self.failUnlessEqual(exc.faultString, "No valid email: '%s'"%number) |
|
127
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
231 |
|
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
232 |
def testBill(self): |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
233 |
'''test bill function''' |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
234 |
apikey='abcdef123456789' |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
235 |
with WithSession(md.engine, autocommit=True) as session: |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
236 |
u=User(name='test',apikey=apikey) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
237 |
session.add(u) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
238 |
self.failUnlessEqual(self.__rpc2().bill(apikey),{'total':{'price':0.0,'anz':0}}) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
239 |
|
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
240 |
with WithSession(md.engine, autocommit=True) as session: |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
241 |
u = session.merge(u) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
242 |
o = Offer(name='sipgate_basic',provider="sipgate",route="basic",typ="sms") |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
243 |
j = Job(hash='a1',info='i',status='sended') |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
244 |
m = Message(recipient='0123456789', isBilled=False, date=datetime.now() , price=0.30, offer=o, job=j) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
245 |
u.rights.append(Userright(o)) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
246 |
u.jobs.append(j) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
247 |
session.add(m) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
248 |
|
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
249 |
self.failUnlessEqual(self.__rpc2().bill(apikey),{'total':{'price':0.3,'anz':1}, |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
250 |
'sipgate_basic':{'price':0.3,'anz':1,'info':{'i':{'price':0.3,'anz':1}}}}) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
251 |
|
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
252 |
with WithSession(md.engine, autocommit=True) as session: |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
253 |
j = session.merge(j) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
254 |
j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now() , price=0.4, offer=o)) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
255 |
|
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
256 |
self.failUnlessEqual(self.__rpc2().bill(apikey),{'total':{'price':0.7,'anz':2}, |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
257 |
'sipgate_basic':{'price':0.7,'anz':2,'info':{'i':{'price':0.7,'anz':2}}}}) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
258 |
|
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
259 |
with WithSession(md.engine, autocommit=True) as session: |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
260 |
m = session.merge(m) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
261 |
m.isBilled=True |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
262 |
|
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
263 |
self.failUnlessEqual(self.__rpc2().bill(apikey),{'total':{'price':0.4,'anz':1}, |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
264 |
'sipgate_basic':{'price':0.4,'anz':1,'info':{'i':{'price':0.4,'anz':1}}}}) |
|
126
1ac2439a68b5
adding test function for email- and telefonnumbers.
Sandro Knauß <knauss@netzguerilla.net>
parents:
125
diff
changeset
|
265 |
|
|
127
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
266 |
with WithSession(md.engine, autocommit=True) as session: |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
267 |
u = session.merge(u) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
268 |
j = Job(hash='a2',info='a',status='sended') |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
269 |
j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now(), price=0.4, offer=o)) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
270 |
u.jobs.append(j) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
271 |
ret=self.__rpc2().bill(apikey) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
272 |
self.failUnlessEqual(ret['total'],{'price':0.8,'anz':2}) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
273 |
self.failUnlessEqual(ret['sipgate_basic'], |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
274 |
{'price':0.8,'anz':2, |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
275 |
'info':{'i':{'price':0.4,'anz':1}, |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
276 |
'a':{'price':0.4,'anz':1}, |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
277 |
} |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
278 |
}) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
279 |
|
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
280 |
with WithSession(md.engine, autocommit=True) as session: |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
281 |
u = session.merge(u) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
282 |
j = Job(hash='a3',info='a',status='sended') |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
283 |
o = Offer(name='sipgate_gold',provider="sipgate",route="gold",typ="sms") |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
284 |
j.messages.append(Message(recipient='0123456789', isBilled=False, date=datetime.now(), price=0.5, offer=o)) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
285 |
u.rights.append(Userright(offer=o)) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
286 |
u.jobs.append(j) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
287 |
|
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
288 |
ret=self.__rpc2().bill(apikey) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
289 |
self.failUnlessEqual(ret['total'],{'price':1.3,'anz':3}) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
290 |
self.failUnlessEqual(ret['sipgate_gold'], |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
291 |
{'price':0.5,'anz':1, |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
292 |
'info':{ |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
293 |
'a':{'price':0.5,'anz':1}, |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
294 |
} |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
295 |
}) |
|
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
296 |
|
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
297 |
def startReactor(engine): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
298 |
"""starts the Rector with a special debug Clild, so that the reactor can be stopped remotly. """ |
|
95
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
299 |
from twisted.internet import reactor |
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
300 |
from twisted.web import xmlrpc, resource |
|
95
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
301 |
|
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
302 |
from iro.view.xmlrpc import appendResource |
|
95
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
303 |
|
|
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
304 |
class XMLRPCDebug(xmlrpc.XMLRPC): |
|
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
305 |
def xmlrpc_stop(self): |
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
306 |
reactor.callLater(0.1,reactor.stop) |
|
95
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
307 |
return "" |
|
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
308 |
|
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
309 |
def xmlrpc_hello(self): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
310 |
return "hello" |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
311 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
312 |
root = resource.Resource() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
313 |
root = appendResource(root) |
|
95
3f41dfd7cb34
ausformulieren des xmlrpc Testes
Sandro Knauß <knauss@netzguerilla.net>
parents:
92
diff
changeset
|
314 |
root.putChild('debug', XMLRPCDebug()) |
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
315 |
runReactor(reactor, engine, root) |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
316 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
317 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
318 |
class ModuleData: |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
319 |
def __init__(self): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
320 |
self.tdir = mkdtemp(prefix='iro-mysql-') |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
321 |
self.server = Server('%s/my.cnf'%self.tdir) |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
322 |
self.db = SampleDatabase("test","test",'%s/my.cnf'%self.tdir) |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
323 |
self.engine = create_engine('mysql://test:test@localhost/test?unix_socket=%s/socket'%self.tdir, |
|
127
79966b937274
made bill (aka statistic) function ready
Sandro Knauß <knauss@netzguerilla.net>
parents:
126
diff
changeset
|
324 |
poolclass = pool.SingletonThreadPool, pool_size=DB_POOL_SIZE, )#echo=True) |
| 92 | 325 |
|
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
326 |
def setUp(self): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
327 |
with open('%s/my.cnf'%self.tdir,'w') as cnf: |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
328 |
cnf.write(createConfig(self.tdir)) |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
329 |
self.server.create() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
330 |
self.server.start() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
331 |
self.db.create() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
332 |
Base.metadata.create_all(self.engine) |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
333 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
334 |
def tearDown(self): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
335 |
self.server.stop() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
336 |
shutil.rmtree(self.tdir) |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
337 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
338 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
339 |
md=ModuleData() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
340 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
341 |
def setUpModule(): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
342 |
md.setUp() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
343 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
344 |
def tearDownModule(): |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
345 |
md.tearDown() |
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
346 |
|
|
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
347 |
|
| 92 | 348 |
if __name__ == '__main__': |
|
113
abdece5f6be6
building valid unittests
Sandro Knauß <knauss@netzguerilla.net>
parents:
108
diff
changeset
|
349 |
unittest.main() |