Fixed logic for auto redirect in GET and HEAD methods.

This commit is contained in:
verm666
2011-08-29 20:01:27 +04:00
committed by Kenneth Reitz
parent 6d25fff3f9
commit 6f84ce72f2
3 changed files with 14 additions and 2 deletions
+6
View File
@@ -95,6 +95,9 @@ def get(url, **kwargs):
:param **kwargs: Optional arguments that ``request`` takes.
"""
if "allow_redirects" not in kwargs:
kwargs["allow_redirects"] = True
return request('get', url, **kwargs)
@@ -105,6 +108,9 @@ def head(url, **kwargs):
:param **kwargs: Optional arguments that ``request`` takes.
"""
if "allow_redirects" not in kwargs:
kwargs["allow_redirects"] = True
return request('head', url, **kwargs)
+1 -2
View File
@@ -212,8 +212,7 @@ class Request(object):
while (
('location' in r.headers) and
((self.method in ('GET', 'HEAD')) or
(r.status_code is codes.see_other) or
((r.status_code is codes.see_other) or
(self.allow_redirects))
):
+7
View File
@@ -60,6 +60,13 @@ class RequestsTestSuite(unittest.TestCase):
r = requests.get(httpbin('/'))
self.assertEqual(r.status_code, 200)
def test_HTTP_302_ALLOW_REDIRECT_GET(self):
r = requests.get(httpbin('redirect', '1'))
self.assertEqual(r.status_code, 200)
def test_HTTP_302_GET(self):
r = requests.get(httpbin('redirect', '1'), allow_redirects=False)
self.assertEqual(r.status_code, 302)
def test_HTTPS_200_OK_GET(self):
r = requests.get(httpsbin('/'))