correctly handle 500 error during login

This commit is contained in:
Romain Bignon 2014-10-28 11:31:36 +01:00
commit 3ec1ca1eda
2 changed files with 9 additions and 7 deletions

View file

@ -22,6 +22,7 @@ import datetime
from dateutil.relativedelta import relativedelta
from itertools import chain
from weboob.exceptions import BrowserHTTPError, BrowserIncorrectPassword
from weboob.browser import LoginBrowser, URL, need_login
from .pages import LoginPage, AccountsPage, HistoryPage
@ -36,7 +37,14 @@ class CmsoProBrowser(LoginBrowser):
def do_login(self):
self.login.stay_or_go()
self.page.login(self.username, self.password)
try:
self.page.login(self.username, self.password)
except BrowserHTTPError as e:
# Yes, I know... In the Wild Wild Web, nobody respects nothing
if e.response.status_code == 500:
raise BrowserIncorrectPassword()
else:
raise
@need_login
def get_accounts_list(self):

View file

@ -21,7 +21,6 @@
import datetime
from weboob.browser.pages import HTMLPage, LoggedPage
from weboob.exceptions import BrowserIncorrectPassword
from weboob.browser.elements import ListElement, ItemElement, method
from weboob.browser.filters.standard import CleanText, CleanDecimal, Regexp, DateGuesser
from weboob.browser.filters.html import Link
@ -33,11 +32,6 @@ __all__ = ['LoginPage']
class LoginPage(HTMLPage):
def on_load(self):
# Yes, I know... In the Wild Wild Web, nobody respects nothing
if self.response.status_code == 500:
raise BrowserIncorrectPassword()
def login(self, username, password):
form = self.get_form(name='formIdentification')