Kaydet (Commit) 5962cce0 authored tarafından Senthil Kumaran's avatar Senthil Kumaran

Fix Issue15701 : add .headers attribute to urllib.error.HTTPError

üst 8e5a8296
......@@ -45,6 +45,13 @@ The following exceptions are raised by :mod:`urllib.error` as appropriate:
This is usually a string explaining the reason for this error.
.. attribute:: headers
The HTTP response headers for the HTTP request that cause the
:exc:`HTTPError`.
.. versionadded:: 3.4
.. exception:: ContentTooShortError(msg, content)
This exception is raised when the :func:`urlretrieve` function detects that
......
......@@ -1539,11 +1539,15 @@ def test_HTTPError_interface():
interface even though HTTPError is a subclass of URLError.
>>> msg = 'something bad happened'
>>> url = code = hdrs = fp = None
>>> url = code = fp = None
>>> hdrs = 'Content-Length: 42'
>>> err = urllib.error.HTTPError(url, code, msg, hdrs, fp)
>>> assert hasattr(err, 'reason')
>>> err.reason
'something bad happened'
>>> assert hasattr(err, 'headers')
>>> err.headers
'Content-Length: 42'
"""
def test_main(verbose=None):
......
......@@ -61,6 +61,14 @@ class HTTPError(URLError, urllib.response.addinfourl):
def reason(self):
return self.msg
@property
def headers(self):
return self.hdrs
@headers.setter
def headers(self, headers):
self.hdrs = headers
# exception raised when downloaded size does not match content-length
class ContentTooShortError(URLError):
def __init__(self, message, content):
......
......@@ -163,6 +163,9 @@ Core and Builtins
Library
-------
- Issue #15701: Add a .headers attribute to urllib.error.HTTPError. Patch
contributed by Berker Peksag.
- Issue #15872: Fix 3.3 regression introduced by the new fd-based shutil.rmtree
that caused it to not ignore certain errors when ignore_errors was set.
Patch by Alessandro Moura and Serhiy Storchaka.
......
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