Rev 5277: Fix broken test. in file:///home/vila/src/bzr/experimental/leaking-tests/

Vincent Ladeuil v.ladeuil+lp at free.fr
Mon Jun 7 17:52:24 BST 2010


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

------------------------------------------------------------
revno: 5277
revision-id: v.ladeuil+lp at free.fr-20100607165224-9fl60mc25u3e958w
parent: v.ladeuil+lp at free.fr-20100607160646-9ptl3fgz09l8igy3
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: propagate-exceptions
timestamp: Mon 2010-06-07 18:52:24 +0200
message:
  Fix broken test.
  
  * bzrlib/tests/test_test_server.py:
  (TestTCPServerInAThread.test_start_stop): Ouch, don't let the
  client connect or the server will block waiting for some
  input. That's not what the test is about.
  
  * bzrlib/tests/test_server.py:
  (TestingTCPServerMixin.handle_request): python's version swallow
  some exxceptions we want to catch.
-------------- next part --------------
=== modified file 'bzrlib/tests/test_server.py'
--- a/bzrlib/tests/test_server.py	2010-06-07 16:06:46 +0000
+++ b/bzrlib/tests/test_server.py	2010-06-07 16:52:24 +0000
@@ -360,6 +360,20 @@
         finally:
             self.stopped.set()
 
+    def handle_request(self):
+        """Handle one request.
+
+        The python version swallows some socket exceptions and we don't use
+        timeout, so we override it to better control the server behavior.
+        """
+        request, client_address = self.get_request()
+        if self.verify_request(request, client_address):
+            try:
+                self.process_request(request, client_address)
+            except:
+                self.handle_error(request, client_address)
+                self.close_request(request)
+
     def verify_request(self, request, client_address):
         """Verify the request.
 
@@ -551,10 +565,11 @@
             return
         try:
             # The server has been started successfully, shut it down now.  As
-            # soon as we stop serving, no more connection are accepted.
-            self.server.serving.clear()
+            # soon as we stop serving, no more connection are accepted except
+            # one to get out of the blocking listen.
             self.set_ignored_exceptions(
                 self.server.ignored_exceptions_during_shutdown)
+            self.server.serving.clear()
             # The server is listening for a last connection, let's give it:
             last_conn = None
             try:

=== modified file 'bzrlib/tests/test_test_server.py'
--- a/bzrlib/tests/test_test_server.py	2010-06-07 16:06:46 +0000
+++ b/bzrlib/tests/test_test_server.py	2010-06-07 16:52:24 +0000
@@ -118,7 +118,6 @@
     def test_start_stop(self):
         server = self.get_server()
         client = self.get_client()
-        client.connect(server.server_address)
         server.stop_server()
         # since the server doesn't accept connections anymore attempting to
         # connect should fail
@@ -147,7 +146,7 @@
         self.assertRaises(CantStart,
                           self.get_server, server_class=CantStartServer)
 
-    def test_server_fails_while_serving_or_stoping(self):
+    def test_server_fails_while_serving_or_stopping(self):
         class CantConnect(Exception):
             pass
 



More information about the bazaar-commits mailing list