Commit a4c45d73 authored by Victor Stinner's avatar Victor Stinner

Issue #12133: fix a ResourceWarning in urllib.request

AbstractHTTPHandler.do_open() of urllib.request closes the HTTP connection if
its getresponse() method fails with a socket error. Patch written by Ezio
Melotti.
parent 0f83b151
...@@ -317,6 +317,9 @@ class MockHTTPClass: ...@@ -317,6 +317,9 @@ class MockHTTPClass:
def getresponse(self): def getresponse(self):
return MockHTTPResponse(MockFile(), {}, 200, "OK") return MockHTTPResponse(MockFile(), {}, 200, "OK")
def close(self):
pass
class MockHandler: class MockHandler:
# useful for testing handler machinery # useful for testing handler machinery
# see add_ordered_mock_handlers() docstring # see add_ordered_mock_handlers() docstring
......
...@@ -1137,6 +1137,8 @@ class AbstractHTTPHandler(BaseHandler): ...@@ -1137,6 +1137,8 @@ class AbstractHTTPHandler(BaseHandler):
r = h.getresponse() # an HTTPResponse instance r = h.getresponse() # an HTTPResponse instance
except socket.error as err: except socket.error as err:
raise URLError(err) raise URLError(err)
finally:
h.close()
r.url = req.get_full_url() r.url = req.get_full_url()
# This line replaces the .msg attribute of the HTTPResponse # This line replaces the .msg attribute of the HTTPResponse
......
...@@ -25,6 +25,10 @@ Core and Builtins ...@@ -25,6 +25,10 @@ Core and Builtins
Library 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 - Issue #9284: Allow inspect.findsource() to find the source of doctest
functions. functions.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment