Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 4bf4274

Browse files
committed
Issue #26309: Rewrite test in main thread and avoid race condition
1 parent 3fe64d0 commit 4bf4274

1 file changed

Lines changed: 21 additions & 24 deletions

File tree

Lib/test/test_socketserver.py

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -280,30 +280,6 @@ def test_tcpserver_bind_leak(self):
280280
socketserver.TCPServer((HOST, -1),
281281
socketserver.StreamRequestHandler)
282282

283-
def test_shutdown_request_called_if_verify_request_false(self):
284-
# Issue #26309: BaseServer should call shutdown_request even if
285-
# verify_request is False
286-
shutdown_called = False
287-
288-
class MyServer(socketserver.TCPServer):
289-
def verify_request(self, request, client_address):
290-
return False
291-
292-
def shutdown_request(self, request):
293-
nonlocal shutdown_called
294-
shutdown_called = True
295-
super().shutdown_request(request)
296-
297-
def connect_to_server(proto, addr):
298-
s = socket.socket(proto, socket.SOCK_STREAM)
299-
s.connect(addr)
300-
s.close()
301-
302-
self.run_server(MyServer,
303-
socketserver.StreamRequestHandler,
304-
connect_to_server)
305-
self.assertEqual(shutdown_called, True)
306-
307283

308284
class MiscTestCase(unittest.TestCase):
309285

@@ -317,6 +293,27 @@ def test_all(self):
317293
expected.append(name)
318294
self.assertCountEqual(socketserver.__all__, expected)
319295

296+
def test_shutdown_request_called_if_verify_request_false(self):
297+
# Issue #26309: BaseServer should call shutdown_request even if
298+
# verify_request is False
299+
300+
class MyServer(socketserver.TCPServer):
301+
def verify_request(self, request, client_address):
302+
return False
303+
304+
shutdown_called = 0
305+
def shutdown_request(self, request):
306+
self.shutdown_called += 1
307+
socketserver.TCPServer.shutdown_request(self, request)
308+
309+
server = MyServer((HOST, 0), socketserver.StreamRequestHandler)
310+
s = socket.socket(server.address_family, socket.SOCK_STREAM)
311+
s.connect(server.server_address)
312+
s.close()
313+
server.handle_request()
314+
self.assertEqual(server.shutdown_called, 1)
315+
server.server_close()
316+
320317

321318
if __name__ == "__main__":
322319
unittest.main()

0 commit comments

Comments
 (0)