From 24ab348640b93d08f997595fbf715f680470042a Mon Sep 17 00:00:00 2001 From: Ben Darnell Date: Sun, 2 Apr 2017 10:51:41 -0400 Subject: [PATCH] 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. --- tornado/test/tcpclient_test.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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): -- 2.47.2