Merge branch 'redirect-no-follow' of https://github.com/millerdev/requests

This commit is contained in:
Kenneth Reitz
2011-10-09 07:05:14 -04:00
4 changed files with 25 additions and 4 deletions
+2 -1
View File
@@ -38,4 +38,5 @@ Patches and Suggestions
- Armin Ronacher
- Shrikant Sharat Kandula
- Mikko Ohtamaa
- Den Shabalin
- Den Shabalin
- Daniel Miller <danielm@vs-networks.com>
+4
View File
@@ -90,9 +90,11 @@ def get(url, **kwargs):
:param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
:param auth: (optional) AuthObject to enable Basic HTTP Auth.
:param timeout: (optional) Float describing the timeout of the request.
:param allow_redirects: (optional) Boolean. Set to False to disable redirect following.
:param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
"""
kwargs.setdefault('allow_redirects', True)
return request('GET', url, **kwargs)
@@ -106,9 +108,11 @@ def head(url, **kwargs):
:param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
:param auth: (optional) AuthObject to enable Basic HTTP Auth.
:param timeout: (optional) Float describing the timeout of the request.
:param allow_redirects: (optional) Boolean. Set to False to disable redirect following.
:param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
"""
kwargs.setdefault('allow_redirects', True)
return request('HEAD', url, **kwargs)
+1 -3
View File
@@ -203,9 +203,7 @@ class Request(object):
while (
('location' in r.headers) and
((self.method in ('GET', 'HEAD')) or
(r.status_code is codes.see_other) or
(self.allow_redirects))
((r.status_code is codes.see_other) or (self.allow_redirects))
):
r.close()
+18
View File
@@ -422,6 +422,24 @@ class RequestsTestSuite(unittest.TestCase):
self.assertEquals(rbody.get('data'), '')
def test_GET_no_redirect(self):
for service in SERVICES:
r = requests.get(service('redirect', '3'), allow_redirects=False)
self.assertEquals(r.status_code, 302)
self.assertEquals(len(r.history), 0)
def test_HEAD_no_redirect(self):
for service in SERVICES:
r = requests.head(service('redirect', '3'), allow_redirects=False)
self.assertEquals(r.status_code, 302)
self.assertEquals(len(r.history), 0)
def test_redirect_history(self):
for service in SERVICES: