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