I'm not sure I'd bother backporting something that only affects the tests. I do think that we could do with more support for unit tests that create a server in a thread; there seem to be a few somewhat faulty patterns that have been copied over and over and then have to be fixed each time we think of an improvement.
--Guido On Dec 8, 2007 9:09 AM, christian.heimes <[email protected]> wrote: > Author: christian.heimes > Date: Sat Dec 8 18:09:18 2007 > New Revision: 59424 > > Modified: > python/branches/py3k/Lib/test/test_xmlrpc.py > Log: > Added stop_serving and a timeout to tearDown() > It prevents the XML RPC tests from blocking until the end of the world. > I think it's a backport candidate and other modules may benefit from the > feature, too. > > Modified: python/branches/py3k/Lib/test/test_xmlrpc.py > ============================================================================== > --- python/branches/py3k/Lib/test/test_xmlrpc.py (original) > +++ python/branches/py3k/Lib/test/test_xmlrpc.py Sat Dec 8 18:09:18 > 2007 > @@ -293,6 +293,14 @@ > PORT = None > evt.set() > > +def stop_serving(): > + global PORT > + if PORT is None: > + return > + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > + sock.connect(('localhost', int(PORT))) > + sock.send(b"") > + sock.close() > > > class SimpleServerTestCase(unittest.TestCase): > @@ -315,7 +323,11 @@ > > def tearDown(self): > # wait on the server thread to terminate > - self.evt.wait() > + self.evt.wait(4.0) > + if not self.evt.isSet(): > + self.evt.set() > + stop_serving() > + raise RuntimeError("timeout reached, test has failed") > > # disable traceback reporting > SimpleXMLRPCServer.SimpleXMLRPCServer._send_traceback_header = False > @@ -328,7 +340,7 @@ > # protocol error; provide additional information in test output > self.fail("%s\n%s" % (e, e.headers)) > > - def DISABLED_test_404(self): > + def test_404(self): > # send POST with httplib, it should return 404 header and > # 'Not Found' message. > conn = httplib.HTTPConnection('localhost', PORT) > _______________________________________________ > Python-3000-checkins mailing list > [email protected] > http://mail.python.org/mailman/listinfo/python-3000-checkins > -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-3000-checkins mailing list [email protected] http://mail.python.org/mailman/listinfo/python-3000-checkins
