From: Senthil Kumaran Date: Sun, 23 Dec 2012 17:12:13 +0000 (-0800) Subject: merge from 3.2 X-Git-Tag: v3.3.1rc1~493 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0a6b9eca683068d5aabba255370b5ee8e25d7850;p=python merge from 3.2 Fix Issue15701 - HTTPError info method call raises AttributeError. Fix that to return headers correctly --- 0a6b9eca683068d5aabba255370b5ee8e25d7850 diff --cc Lib/test/test_urllib2.py index 2d94ba449f,5eab30af76..ccd5419b70 --- a/Lib/test/test_urllib2.py +++ b/Lib/test/test_urllib2.py @@@ -1495,18 -1438,32 +1495,34 @@@ class RequestTests(unittest.TestCase) req = Request(url) self.assertEqual(req.get_full_url(), url) - def test_HTTPError_interface(): - """ - Issue 13211 reveals that HTTPError didn't implement the URLError - interface even though HTTPError is a subclass of URLError. - - >>> msg = 'something bad happened' - >>> url = code = hdrs = fp = None - >>> err = urllib.error.HTTPError(url, code, msg, hdrs, fp) - >>> assert hasattr(err, 'reason') - >>> err.reason - 'something bad happened' - """ + def test_HTTPError_interface(self): + """ + Issue 13211 reveals that HTTPError didn't implement the URLError + interface even though HTTPError is a subclass of URLError. + - >>> err = urllib.error.HTTPError(msg='something bad happened', url=None, code=None, hdrs=None, fp=None) ++ >>> msg = 'something bad happened' ++ >>> url = code = hdrs = fp = None ++ >>> err = urllib.error.HTTPError(url, code, msg, hdrs, fp) + >>> assert hasattr(err, 'reason') + >>> err.reason + 'something bad happened' + """ + + def test_HTTPError_interface_call(self): + """ + Issue 15701 - HTTPError interface has info method available from URLError + """ + err = urllib.request.HTTPError(msg="something bad happened", url=None, + code=None, hdrs='Content-Length:42', fp=None) + self.assertTrue(hasattr(err, 'reason')) + assert hasattr(err, 'reason') + assert hasattr(err, 'info') + assert callable(err.info) + try: + err.info() + except AttributeError: + self.fail('err.info call failed.') + self.assertEqual(err.info(), "Content-Length:42") def test_main(verbose=None): from test import test_urllib2 diff --cc Misc/NEWS index 97e24fa1db,9a33632c7f..31b3356181 --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -114,8 -179,8 +114,10 @@@ Core and Builtin Library ------- + - Issue #15701: Fix HTTPError info method call to return the headers information. + +- Issue #16752: Add a missing import to modulefinder. Patch by Berker Peksag. + - Issue #16646: ftplib.FTP.makeport() might lose socket error details. (patch by Serhiy Storchaka)