../bug-fixes/http_error_interface/.hg/last-message.txt

This commit is contained in:
Senthil Kumaran 2013-03-19 12:07:43 -07:00
parent 660e89b163
commit 2480b08942
1 changed files with 19 additions and 20 deletions

View File

@ -1387,6 +1387,10 @@ class HandlerTests(unittest.TestCase):
class MiscTests(unittest.TestCase): class MiscTests(unittest.TestCase):
def opener_has_handler(self, opener, handler_class):
self.assertTrue(any(h.__class__ == handler_class
for h in opener.handlers))
def test_build_opener(self): def test_build_opener(self):
class MyHTTPHandler(urllib.request.HTTPHandler): pass class MyHTTPHandler(urllib.request.HTTPHandler): pass
class FooHandler(urllib.request.BaseHandler): class FooHandler(urllib.request.BaseHandler):
@ -1439,10 +1443,22 @@ class MiscTests(unittest.TestCase):
self.assertEqual(b"1234567890", request.data) self.assertEqual(b"1234567890", request.data)
self.assertEqual("10", request.get_header("Content-length")) 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.
def opener_has_handler(self, opener, handler_class): >>> msg = 'something bad happened'
self.assertTrue(any(h.__class__ == handler_class >>> url = code = fp = None
for h in opener.handlers)) >>> 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'
"""
class RequestTests(unittest.TestCase): class RequestTests(unittest.TestCase):
@ -1514,23 +1530,6 @@ class RequestTests(unittest.TestCase):
req = Request(url) req = Request(url)
self.assertEqual(req.get_full_url(), 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 = 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): def test_main(verbose=None):
from test import test_urllib2 from test import test_urllib2
support.run_doctest(test_urllib2, verbose) support.run_doctest(test_urllib2, verbose)