nun ProtocolError anstatt normales Fault
authorSandro Knauß <knauss@netzguerilla.net>
Mon, 04 Oct 2010 04:28:28 +0200
changeset 38 254c00f3cbe0
parent 37 6e5bd561ddd0
child 39 31a2b1cd4981
nun ProtocolError anstatt normales Fault test Server: -richtiges Beenden via timeout möglich; -richtiger Gebauch des running Parameters -with kompatible
iro/anbieter/anbieter.py
iro/test.py
--- a/iro/anbieter/anbieter.py	Mon Feb 08 01:18:59 2010 +0100
+++ b/iro/anbieter/anbieter.py	Mon Oct 04 04:28:28 2010 +0200
@@ -21,14 +21,3 @@
         pass
     def sendMail(self,mail,recipients):
         pass
-
-
-
-	
-
-
-
-
-
-
-
--- a/iro/test.py	Mon Feb 08 01:18:59 2010 +0100
+++ b/iro/test.py	Mon Oct 04 04:28:28 2010 +0200
@@ -10,22 +10,39 @@
 from multiprocessing.managers import BaseManager
 
 class StoppableXMLRPCServer(iro.SecureUserDBXMLRPCServer, threading.Thread):
-    running=True
+    running=False
     def __init__(self, *args, **kwargs):
         iro.SecureUserDBXMLRPCServer.__init__(self, *args, **kwargs)
         threading.Thread.__init__(self)
+        self.timeout=.5
    
+    def start(self):
+        self.running=True
+        threading.Thread.start(self)
+ 
    
     def run(self):
         # *serve_forever* muss in einem eigenen Thread laufen, damit man es
-        # unterbrechen kann!
+        # unterbrochen werden kann!
         while (self.running):
             self.handle_request()
    
-   
     def stop(self):
-        self.running=False
-        self.server_close()
+        if (self.running):
+            self.running=False
+            self.server_close()
+            self.join()
+
+    def __del__(self):
+        self.stop()
+ 
+    def __enter__(self):
+        self.start()
+        return self
+
+    def __exit__(self,type,value,traceback):
+        self.stop()
+
 
 
 def init_server():
@@ -79,7 +96,8 @@
     key=cp.get('server', 'key')
     serv = StoppableXMLRPCServer(addr=("localhost", 8000), 
                                       userdb=userdb,
-                                      certificate=cert,privatekey=key)
+                                      certificate=cert,privatekey=key,
+                                      logRequests=False)
     serv.relam="xmlrpc"
     return serv
  
@@ -87,12 +105,11 @@
 class TestServer(unittest.TestCase):
     
     def setUp(self):
-      self.serv = init_server()
-      self.serv.start()
+        self.serv = init_server()
+        self.serv.start()
 
     def tearDown(self):
-      self.serv.stop()
-      xmlrpclib.Server("https://test:test@localhost:8000").status()			#letzte nachricht abrufen, damit richt geschlossen wird
+        self.serv.stop()
 
     def testLogin(self):
         self.assertEqual(xmlrpclib.Server("https://test:test@localhost:8000").status(), {})
@@ -133,7 +150,7 @@
         self.assertEqual(client.getProvider("fax"), ["fax.de","geonet", "sipgate"])
         self.assertEqual(client.getProvider("mail"), ["localhost"])
         
-        self.assertRaises(xmlrpclib.Fault,client.getProvider, "temp")
+        self.assertRaises(xmlrpclib.ProtocolError,client.getProvider, "temp")
     
     def testGetDefault(self):
         servstr="https://test:test@localhost:8000"
@@ -142,7 +159,7 @@
         self.assertEqual(client.getDefaultProvider("fax"),"sipgate")
         self.assertEqual(client.getDefaultProvider("mail"), "localhost")       
         
-        self.assertRaises(xmlrpclib.Fault,client.getDefaultProvider, "temp")        
+        self.assertRaises(xmlrpclib.ProtocolError,client.getDefaultProvider, "temp")        
 
     
 if __name__ == "__main__":