diff options
author | Facundo Batista <facundobatista@gmail.com> | 2007-04-23 17:08:31 (GMT) |
---|---|---|
committer | Facundo Batista <facundobatista@gmail.com> | 2007-04-23 17:08:31 (GMT) |
commit | 9fab9f103f21b42ffafc87ff5a4ce970735a7b17 (patch) | |
tree | 448fa248d3060f85a6cfc1f9a70eb7434c65d4ea /Lib | |
parent | 9f87128d8b6282e3c1afd2cd08150e5f5de14290 (diff) | |
download | cpython-9fab9f103f21b42ffafc87ff5a4ce970735a7b17.zip cpython-9fab9f103f21b42ffafc87ff5a4ce970735a7b17.tar.gz cpython-9fab9f103f21b42ffafc87ff5a4ce970735a7b17.tar.bz2 |
As specified in RFC 2616, 2xx code indicates that the client's
request was successfully received, understood, and accepted.
Now in these cases no error is raised. Also fixed tests.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_urllib2.py | 14 | ||||
-rw-r--r-- | Lib/urllib2.py | 4 |
2 files changed, 14 insertions, 4 deletions
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py index a23d61e..1a2986a 100644 --- a/Lib/test/test_urllib2.py +++ b/Lib/test/test_urllib2.py @@ -766,16 +766,24 @@ class HandlerTests(unittest.TestCase): url = "http://example.com/" req = Request(url) - # 200 OK is passed through + # all 2xx are passed through r = MockResponse(200, "OK", {}, "", url) newr = h.http_response(req, r) self.assert_(r is newr) self.assert_(not hasattr(o, "proto")) # o.error not called + r = MockResponse(202, "Accepted", {}, "", url) + newr = h.http_response(req, r) + self.assert_(r is newr) + self.assert_(not hasattr(o, "proto")) # o.error not called + r = MockResponse(206, "Partial content", {}, "", url) + newr = h.http_response(req, r) + self.assert_(r is newr) + self.assert_(not hasattr(o, "proto")) # o.error not called # anything else calls o.error (and MockOpener returns None, here) - r = MockResponse(201, "Created", {}, "", url) + r = MockResponse(502, "Bad gateway", {}, "", url) self.assert_(h.http_response(req, r) is None) self.assertEqual(o.proto, "http") # o.error called - self.assertEqual(o.args, (req, r, 201, "Created", {})) + self.assertEqual(o.args, (req, r, 502, "Bad gateway", {})) def test_cookies(self): cj = MockCookieJar() diff --git a/Lib/urllib2.py b/Lib/urllib2.py index 046470a..7c73f81 100644 --- a/Lib/urllib2.py +++ b/Lib/urllib2.py @@ -487,7 +487,9 @@ class HTTPErrorProcessor(BaseHandler): def http_response(self, request, response): code, msg, hdrs = response.code, response.msg, response.info() - if code not in (200, 206): + # According to RFC 2616, "2xx" code indicates that the client's + # request was successfully received, understood, and accepted. + if not (200 <= code < 300): response = self.parent.error( 'http', request, response, code, msg, hdrs) |