@@ -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
308284class 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
321318if __name__ == "__main__" :
322319 unittest .main ()
0 commit comments