[Python-checkins] r54927 - in python/trunk/Lib: test/test_urllib2.py urllib2.py

facundo.batista python-checkins at python.org
Mon Apr 23 19:08:36 CEST 2007


Author: facundo.batista
Date: Mon Apr 23 19:08:31 2007
New Revision: 54927
Modified:
 python/trunk/Lib/test/test_urllib2.py
 python/trunk/Lib/urllib2.py
Log:
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.
Modified: python/trunk/Lib/test/test_urllib2.py
==============================================================================
--- python/trunk/Lib/test/test_urllib2.py	(original)
+++ python/trunk/Lib/test/test_urllib2.py	Mon Apr 23 19:08:31 2007
@@ -766,16 +766,24 @@
 
 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()
Modified: python/trunk/Lib/urllib2.py
==============================================================================
--- python/trunk/Lib/urllib2.py	(original)
+++ python/trunk/Lib/urllib2.py	Mon Apr 23 19:08:31 2007
@@ -487,7 +487,9 @@
 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)
 


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /