]> granicus.if.org Git - python/commitdiff
#17471: merge from 3.3
authorSenthil Kumaran <senthil@uthcode.com>
Tue, 19 Mar 2013 23:52:06 +0000 (16:52 -0700)
committerSenthil Kumaran <senthil@uthcode.com>
Tue, 19 Mar 2013 23:52:06 +0000 (16:52 -0700)
1  2 
Lib/test/test_urllib2.py

index 46f5da73eff3c3fe2076f2d6da5a0077eb986f80,01f4dc423e06bb1a7f6e08f2a721dcadd7b61369..3e19ecff0904c7f71826d69bd1cf5034c5ebe891
@@@ -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):