]> granicus.if.org Git - python/commitdiff
As specified in RFC 2616, 2xx code indicates that the client's
authorFacundo Batista <facundobatista@gmail.com>
Mon, 23 Apr 2007 17:08:31 +0000 (17:08 +0000)
committerFacundo Batista <facundobatista@gmail.com>
Mon, 23 Apr 2007 17:08:31 +0000 (17:08 +0000)
request was successfully received, understood, and accepted.
Now in these cases no error is raised. Also fixed tests.

Lib/test/test_urllib2.py
Lib/urllib2.py

index a23d61e043cd27c6db33b5253282d52dcee41a92..1a2986a5ffc3e8e2a147da24239df06a93ea96f5 100644 (file)
@@ -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()
index 046470aa2475bf23cffa2b55270b7e1e0fd82a60..7c73f817f8131444e4e8d063e8ade103a91406e0 100644 (file)
@@ -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)