mirror of https://github.com/python/cpython.git
Issue #12133: AbstractHTTPHandler.do_open() of urllib.request closes the HTTP
connection if its getresponse() method fails with a socket error. Patch written by Ezio Melotti.
This commit is contained in:
parent
898d43c7af
commit
c74a6ba2d6
|
@ -293,6 +293,7 @@ def set_tunnel(self, host, port=None, headers=None):
|
|||
self._tunnel_headers = headers
|
||||
else:
|
||||
self._tunnel_headers.clear()
|
||||
|
||||
def request(self, method, url, body=None, headers=None):
|
||||
self.method = method
|
||||
self.selector = url
|
||||
|
@ -304,9 +305,13 @@ def request(self, method, url, body=None, headers=None):
|
|||
if self.raise_on_endheaders:
|
||||
import socket
|
||||
raise socket.error()
|
||||
|
||||
def getresponse(self):
|
||||
return MockHTTPResponse(MockFile(), {}, 200, "OK")
|
||||
|
||||
def close(self):
|
||||
pass
|
||||
|
||||
class MockHandler:
|
||||
# useful for testing handler machinery
|
||||
# see add_ordered_mock_handlers() docstring
|
||||
|
|
|
@ -1172,6 +1172,8 @@ def do_open(self, http_class, req):
|
|||
r = h.getresponse()
|
||||
except socket.error, err: # XXX what error?
|
||||
raise URLError(err)
|
||||
finally:
|
||||
h.close()
|
||||
|
||||
# Pick apart the HTTPResponse object to get the addinfourl
|
||||
# object initialized properly.
|
||||
|
|
|
@ -16,6 +16,10 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #12133: AbstractHTTPHandler.do_open() of urllib.request closes the HTTP
|
||||
connection if its getresponse() method fails with a socket error. Patch
|
||||
written by Ezio Melotti.
|
||||
|
||||
- Issue #9284: Allow inspect.findsource() to find the source of doctest
|
||||
functions.
|
||||
|
||||
|
|
Loading…
Reference in New Issue