1 # -*- coding: utf-8 -*- |
1 # -*- coding: utf-8 -*- |
2 |
2 |
3 import unittest, ConfigParser |
3 import unittest, ConfigParser |
4 import iro |
4 import iro |
|
5 from job import MessageJob |
|
6 from joblist import Joblist |
|
7 from providerlist import Providerlist |
5 import threading, xmlrpclib |
8 import threading, xmlrpclib |
6 from multiprocessing import Queue |
9 from multiprocessing import Queue |
7 from multiprocessing.managers import BaseManager |
10 from multiprocessing.managers import BaseManager |
8 |
11 |
9 class StoppableXMLRPCServer(iro.SecureUserDBXMLRPCServer, threading.Thread): |
12 class StoppableXMLRPCServer(iro.SecureUserDBXMLRPCServer, threading.Thread): |
51 smstrade=iro.MySmstrade() |
54 smstrade=iro.MySmstrade() |
52 smstrade.read_basic_config("iro.conf") |
55 smstrade.read_basic_config("iro.conf") |
53 |
56 |
54 #Benutzerdatenbank erstellen |
57 #Benutzerdatenbank erstellen |
55 queue = Queue() |
58 queue = Queue() |
56 provider={"sms":sip, "fax":sip, "mail":localhost} |
59 provider=Providerlist() |
57 jobqueue=iro.Jobs(manager, queue, provider) |
60 provider.add("sipgate", sip, ["sms", "fax", ]) |
|
61 provider.add("smstrade", smstrade, ["sms", ]) |
|
62 provider.add("geonet", None, ["sms", "fax", ]) |
|
63 provider.add("fax.de", None, ["sms", "fax", ]) |
|
64 provider.add("localhost", localhost, ["mail", ]) |
|
65 provider.setDefault("sms","smstrade") |
|
66 provider.setDefault("fax","sipgate") |
|
67 provider.setDefault("mail","localhost") |
|
68 jobqueue=Joblist(manager, queue, provider) |
58 userdb=iro.MyUserDB(userlist,jobqueue) |
69 userdb=iro.MyUserDB(userlist,jobqueue) |
59 |
70 |
60 |
71 |
61 #Server starten |
72 #Server starten |
62 cp = ConfigParser.ConfigParser() |
73 cp = ConfigParser.ConfigParser() |
87 self.assertRaises(xmlrpclib.ProtocolError,xmlrpclib.Server ("https://test:test2@localhost:8000").status) |
98 self.assertRaises(xmlrpclib.ProtocolError,xmlrpclib.Server ("https://test:test2@localhost:8000").status) |
88 |
99 |
89 def testsendSMS(self): |
100 def testsendSMS(self): |
90 servstr="https://test:test@localhost:8000" |
101 servstr="https://test:test@localhost:8000" |
91 client=xmlrpclib.Server(servstr) |
102 client=xmlrpclib.Server(servstr) |
92 id=client.startSMS("test",["01234"] ) |
103 id=client.startSMS("test",["01234", ] ) |
93 self.assertEqual(client.status(id),{id: {'status': ['init',{}], 'name': 'test'}} ) |
104 self.assertEqual(client.status(id),{id: {'status': ['init',{}], 'name': 'test'}} ) |
94 |
105 |
95 def testTwoUser(self): |
106 def testTwoUser(self): |
96 u1="https://test:test@localhost:8000" |
107 u1="https://test:test@localhost:8000" |
97 u2="https://test2:test2@localhost:8000" |
108 u2="https://test2:test2@localhost:8000" |
114 |
125 |
115 def testGetProvider(self): |
126 def testGetProvider(self): |
116 servstr="https://test:test@localhost:8000" |
127 servstr="https://test:test@localhost:8000" |
117 client=xmlrpclib.Server(servstr) |
128 client=xmlrpclib.Server(servstr) |
118 self.assertEqual(client.getProvider("sms"), ["fax.de","geonet", "sipgate", "smstrade"]) |
129 self.assertEqual(client.getProvider("sms"), ["fax.de","geonet", "sipgate", "smstrade"]) |
119 self.assertEqual(client.getProvider("fax").sort(), ["fax.de","geonet", "sipgate"]) |
130 self.assertEqual(client.getProvider("fax"), ["fax.de","geonet", "sipgate"]) |
120 self.assertEqual(client.getProvider("mail").sort(), ["localhost"]) |
131 self.assertEqual(client.getProvider("mail"), ["localhost"]) |
121 self.assertRaises(iro.NotSupportedFeature, client.getProvider("temp")) |
132 |
|
133 self.assertRaises(xmlrpclib.Fault,client.getProvider, "temp") |
|
134 |
|
135 def testGetDefault(self): |
|
136 servstr="https://test:test@localhost:8000" |
|
137 client=xmlrpclib.Server(servstr) |
|
138 self.assertEqual(client.getDefaultProvider("sms"), "smstrade") |
|
139 self.assertEqual(client.getDefaultProvider("fax"),"sipgate") |
|
140 self.assertEqual(client.getDefaultProvider("mail"), "localhost") |
|
141 |
|
142 self.assertRaises(xmlrpclib.Fault,client.getDefaultProvider, "temp") |
122 |
143 |
123 |
144 |
124 if __name__ == "__main__": |
145 if __name__ == "__main__": |
125 unittest.main() |
146 unittest.main() |