From 4b802f32dd5e3893079926e6d4399d8d79826f14 Mon Sep 17 00:00:00 2001 From: Laurent Bachelier Date: Wed, 11 Apr 2012 09:15:29 +0200 Subject: [PATCH] browser2: Evolve _fix_redirect for latest python-requests See commits: e831947be43bc97b39d6e6e573cb0842b67fea80 dacc1d8aafedf80f8736d794005b6c8e8b1d4ad1 b20d171c1c11ecee83b7e4a0beead1e54902d37b The entire redirect thingy will have to be overriden anyway, as it is still broken. Cookies are given domain to domain without any checks. --- weboob/tools/browser2/browser.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/weboob/tools/browser2/browser.py b/weboob/tools/browser2/browser.py index 7626c966..4b46045a 100644 --- a/weboob/tools/browser2/browser.py +++ b/weboob/tools/browser2/browser.py @@ -169,7 +169,9 @@ class BaseBrowser(object): if request.allow_redirects is False \ and request.response.status_code in requests.models.REDIRECT_STATI \ and request.config.get('fix-redirect'): - if request.response.status_code is codes.found: + if (request.response.status_code in (codes.moved, codes.found) \ + and request.method == 'POST') \ + or (request.response.status_code == 303 and request.method != 'HEAD'): # force the next request to be GET real_method = request.method request.method = 'GET' @@ -239,6 +241,7 @@ class BaseBrowser(object): kwargs['data'] = data if fix_redirect: kwargs.setdefault('config', {}).setdefault('fix-redirect', True) + kwargs.setdefault('allow_redirects', False) if referrer is None: referrer = self._get_referrer(self.url, url) if referrer: