From: Ben Darnell Date: Sun, 2 Apr 2017 14:51:41 +0000 (-0400) Subject: tcpclient_test: Attempt to deflake on windows X-Git-Tag: v4.5.0~6^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24ab348640b93d08f997595fbf715f680470042a;p=thirdparty%2Ftornado.git tcpclient_test: Attempt to deflake on windows It appears that on windows the client connect call can sometimes succeed before the server has processed the request, so introduce additional synchronization. --- diff --git a/tornado/test/tcpclient_test.py b/tornado/test/tcpclient_test.py index f36d9a0a5..76206e85e 100644 --- a/tornado/test/tcpclient_test.py +++ b/tornado/test/tcpclient_test.py @@ -22,6 +22,7 @@ import socket from tornado.concurrent import Future from tornado.netutil import bind_sockets, Resolver +from tornado.queues import Queue from tornado.tcpclient import TCPClient, _Connector from tornado.tcpserver import TCPServer from tornado.testing import AsyncTestCase, gen_test @@ -36,12 +37,14 @@ class TestTCPServer(TCPServer): def __init__(self, family): super(TestTCPServer, self).__init__() self.streams = [] + self.queue = Queue() sockets = bind_sockets(None, 'localhost', family) self.add_sockets(sockets) self.port = sockets[0].getsockname()[1] def handle_stream(self, stream, address): self.streams.append(stream) + self.queue.put(stream) def stop(self): super(TestTCPServer, self).stop() @@ -86,9 +89,10 @@ class TCPClientTest(AsyncTestCase): stream = yield self.client.connect(host, port, source_ip=source_ip, source_port=source_port) + server_stream = yield self.server.queue.get() with closing(stream): stream.write(b"hello") - data = yield self.server.streams[0].read_bytes(5) + data = yield server_stream.read_bytes(5) self.assertEqual(data, b"hello") def test_connect_ipv4_ipv4(self):