cpython: 0768edf5878d (original) (raw)
Mercurial > cpython
changeset 100258:0768edf5878d
Issue #26309: Merge socketserver fix from 3.5 [#26309]
Martin Panter vadmium+py@gmail.com | |
---|---|
date | Thu, 18 Feb 2016 11:01:32 +0000 |
parents | 6f0d3ae9f1f3(current diff)651a6d47bc78(diff) |
children | bbfbde6ee9d0 |
files | Misc/NEWS |
diffstat | 3 files changed, 30 insertions(+), 0 deletions(-)[+] [-] Lib/socketserver.py 2 Lib/test/test_socketserver.py 24 Misc/NEWS 4 |
line wrap: on
line diff
--- a/Lib/socketserver.py +++ b/Lib/socketserver.py @@ -319,6 +319,8 @@ class BaseServer: except: self.handle_error(request, client_address) self.shutdown_request(request)
else:[](#l1.7)
self.shutdown_request(request)[](#l1.8)
def handle_timeout(self): """Called if no new request arrives within self.timeout.
--- a/Lib/test/test_socketserver.py +++ b/Lib/test/test_socketserver.py @@ -280,6 +280,30 @@ class SocketServerTest(unittest.TestCase socketserver.TCPServer((HOST, -1), socketserver.StreamRequestHandler)
- def test_shutdown_request_called_if_verify_request_false(self):
# Issue #26309: BaseServer should call shutdown_request even if[](#l2.8)
# verify_request is False[](#l2.9)
shutdown_called = False[](#l2.10)
class MyServer(socketserver.TCPServer):[](#l2.12)
def verify_request(self, request, client_address):[](#l2.13)
return False[](#l2.14)
def shutdown_request(self, request):[](#l2.16)
nonlocal shutdown_called[](#l2.17)
shutdown_called = True[](#l2.18)
super().shutdown_request(request)[](#l2.19)
def connect_to_server(proto, addr):[](#l2.21)
s = socket.socket(proto, socket.SOCK_STREAM)[](#l2.22)
s.connect(addr)[](#l2.23)
s.close()[](#l2.24)
self.run_server(MyServer,[](#l2.26)
socketserver.StreamRequestHandler,[](#l2.27)
connect_to_server)[](#l2.28)
self.assertEqual(shutdown_called, True)[](#l2.29)
+ class MiscTestCase(unittest.TestCase):
--- a/Misc/NEWS +++ b/Misc/NEWS @@ -186,6 +186,10 @@ Core and Builtins Library ------- +- Issue #26309: In the "socketserver" module, shut down the request (closing