Rev 5299: Fix the sibling_class hack, we now know that we need only two methods in file:///home/vila/src/bzr/experimental/leaking-tests/

Vincent Ladeuil v.ladeuil+lp at free.fr
Wed Jun 30 17:15:31 BST 2010


At file:///home/vila/src/bzr/experimental/leaking-tests/

------------------------------------------------------------
revno: 5299
revision-id: v.ladeuil+lp at free.fr-20100630161531-5ch5ig208o1boqla
parent: v.ladeuil+lp at free.fr-20100630155325-8xen1q8dhq0gpj27
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: propagate-exceptions
timestamp: Wed 2010-06-30 18:15:31 +0200
message:
  Fix the sibling_class hack, we now know that we need only two methods
  from this class and embedding them is clearer anyway.
-------------- next part --------------
=== modified file 'bzrlib/tests/test_server.py'
--- a/bzrlib/tests/test_server.py	2010-06-30 15:53:25 +0000
+++ b/bzrlib/tests/test_server.py	2010-06-30 16:15:31 +0000
@@ -348,8 +348,7 @@
     separate thread.
     """
 
-    def __init__(self, sibling_class):
-        self.sibling_class = sibling_class
+    def __init__(self):
         self.started = threading.Event()
         self.serving = None
         self.stopped = threading.Event()
@@ -359,13 +358,8 @@
         self.ignored_exceptions = None
 
     def server_bind(self):
-        # We need to override the SocketServer bind, yet, we still want to use
-        # it so we need to use the sibling class to call it explicitly
-        self.sibling_class.server_bind(self)
-        # The following has been fixed in 2.5 so we need to provide it for
-        # older python versions.
-        if sys.version < (2, 5):
-            self.server_address = self.socket.getsockname()
+        self.socket.bind(self.server_address)
+        self.server_address = self.socket.getsockname()
 
     def serve(self):
         self.serving = True
@@ -396,6 +390,9 @@
                 self.handle_error(request, client_address)
                 self.close_request(request)
 
+    def get_request(self):
+        return self.socket.accept()
+
     def verify_request(self, request, client_address):
         """Verify the request.
 
@@ -459,13 +456,13 @@
 class TestingTCPServer(TestingTCPServerMixin, SocketServer.TCPServer):
 
     def __init__(self, server_address, request_handler_class):
-        TestingTCPServerMixin.__init__(self, SocketServer.TCPServer)
+        TestingTCPServerMixin.__init__(self)
         SocketServer.TCPServer.__init__(self, server_address,
                                         request_handler_class)
 
     def get_request(self):
         """Get the request and client address from the socket."""
-        sock, addr = self.sibling_class.get_request(self)
+        sock, addr = TestingTCPServerMixin.get_request(self)
         self.clients.append((sock, addr))
         return sock, addr
 
@@ -480,13 +477,13 @@
                                 SocketServer.ThreadingTCPServer):
 
     def __init__(self, server_address, request_handler_class):
-        TestingTCPServerMixin.__init__(self, SocketServer.ThreadingTCPServer)
-        SocketServer.TCPServer.__init__(self, server_address,
-                                        request_handler_class)
+        TestingTCPServerMixin.__init__(self)
+        SocketServer.ThreadingTCPServer.__init__(self, server_address,
+                                                 request_handler_class)
 
     def get_request (self):
         """Get the request and client address from the socket."""
-        sock, addr = self.sibling_class.get_request(self)
+        sock, addr = TestingTCPServerMixin.get_request(self)
         # The thread is not create yet, it will be updated in process_request
         self.clients.append((sock, addr, None))
         return sock, addr



More information about the bazaar-commits mailing list