From: Senthil Kumaran Date: Tue, 19 Mar 2013 23:52:06 +0000 (-0700) Subject: #17471: merge from 3.3 X-Git-Tag: v3.4.0a1~1147 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=94f2788a859df7e79f8800f2b601e00acc2f8562;p=python #17471: merge from 3.3 --- 94f2788a859df7e79f8800f2b601e00acc2f8562 diff --cc Lib/test/test_urllib2.py index 46f5da73ef,01f4dc423e..3e19ecff09 --- a/Lib/test/test_urllib2.py +++ b/Lib/test/test_urllib2.py @@@ -1431,37 -1434,9 +1431,39 @@@ class MiscTests(unittest.TestCase) self.opener_has_handler(o, MyHTTPHandler) self.opener_has_handler(o, MyOtherHTTPHandler) - def opener_has_handler(self, opener, handler_class): - self.assertTrue(any(h.__class__ == handler_class - for h in opener.handlers)) + @unittest.skipUnless(support.is_resource_enabled('network'), + 'test requires network access') + def test_issue16464(self): + opener = urllib.request.build_opener() + request = urllib.request.Request("http://www.python.org/~jeremy/") + self.assertEqual(None, request.data) + + opener.open(request, "1".encode("us-ascii")) + self.assertEqual(b"1", request.data) + self.assertEqual("1", request.get_header("Content-length")) + + opener.open(request, "1234567890".encode("us-ascii")) + self.assertEqual(b"1234567890", request.data) + self.assertEqual("10", request.get_header("Content-length")) + + def test_HTTPError_interface(self): + """ + 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 = 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' ++ >>> expected_errmsg = 'HTTP Error %s: %s' % (err.code, err.msg) ++ >>> assert str(err) == expected_errmsg + """ class RequestTests(unittest.TestCase):