mirror of
https://github.com/python/cpython.git
synced 2025-10-10 00:43:41 +00:00
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.
This commit is contained in:
parent
99d73f2ce7
commit
576bf65fea
1 changed files with 14 additions and 2 deletions
|
@ -293,6 +293,14 @@ def http_server(evt, numrequests):
|
|||
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 @@ class SimpleServerTestCase(unittest.TestCase):
|
|||
|
||||
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 @@ class SimpleServerTestCase(unittest.TestCase):
|
|||
# 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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue