From 0438c63b47a9534b4904535a48219990b6737489 Mon Sep 17 00:00:00 2001 From: Nicolas Vergnac Date: Mon, 21 Jun 2021 12:31:38 +0200 Subject: [PATCH] [bnppere] handle infinite redirection loop on visiogo login some users are redirected to /Account/LogOff on login we raise BrowserUnavailable to handle this bug Closes: 5451@sibi --- modules/bnppere/browser.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/bnppere/browser.py b/modules/bnppere/browser.py index b1c62a34c0..db3bfe14f8 100644 --- a/modules/bnppere/browser.py +++ b/modules/bnppere/browser.py @@ -19,10 +19,12 @@ from __future__ import unicode_literals +import requests + from woob.browser import AbstractBrowser, LoginBrowser, URL, need_login from woob.capabilities.bank import Account from woob.capabilities.wealth import Per -from woob.exceptions import BrowserIncorrectPassword, ActionNeeded +from woob.exceptions import BrowserIncorrectPassword, ActionNeeded, BrowserUnavailable from .pages import ( LoginPage, LoginStep2Page, LoginErrorPage, ProfilePage, @@ -73,7 +75,18 @@ def do_login(self): raise AssertionError('Unknown error on LoginErrorPage: %s.' % message) assert self.login_second_step.is_here(), 'Should be on the page of the second step of login' - self.page.send_form() + + # for some users the website is unavailable + # we are in a redirection loop on '/Account/LogOff' + try: + max_redirects = self.session.max_redirects + self.session.max_redirects = 10 + self.page.send_form() + except requests.exceptions.TooManyRedirects: + raise BrowserUnavailable() + finally: + # set the redirection limit back to default + self.session.max_redirects = max_redirects if self.term_page.is_here(): raise ActionNeeded() -- GitLab