handle login errors

This commit is contained in:
Romain Bignon 2012-11-10 12:51:43 +01:00
commit e52c6d6b18
2 changed files with 12 additions and 2 deletions

View file

@ -22,7 +22,7 @@ from urlparse import urlsplit
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from .pages import LoginPage, IndexPage
from .pages import LoginPage, IndexPage, ErrorPage
__all__ = ['CaisseEpargne']
@ -34,6 +34,7 @@ class CaisseEpargne(BaseBrowser):
CERTHASH = '165faeb5bd1bad22bf52029e3c09bf540199402a1fa70aa19e9d5f92d562ff69'
PAGES = {'https://[^/]+.caisse-epargne.fr/particuliers/ind_pauthpopup.aspx.*': LoginPage,
'https://[^/]+.caisse-epargne.fr/Portail.aspx': IndexPage,
'https://[^/]+.caisse-epargne.fr/login.aspx': ErrorPage,
}
def is_logged(self):
@ -62,6 +63,8 @@ class CaisseEpargne(BaseBrowser):
if not self.is_logged():
raise BrowserIncorrectPassword()
if self.is_on_page(ErrorPage):
raise BrowserIncorrectPassword(self.page.get_error())
v = urlsplit(self.page.url)
self.DOMAIN = v.netloc

View file

@ -27,7 +27,7 @@ from weboob.capabilities.bank import Account
from weboob.tools.capabilities.bank.transactions import FrenchTransaction
__all__ = ['LoginPage', 'IndexPage']
__all__ = ['LoginPage', 'ErrorPage', 'IndexPage']
class LoginPage(BasePage):
@ -54,6 +54,13 @@ class LoginPage(BasePage):
self.browser.form.action = m.group(1)
self.browser.submit(nologin=True)
class ErrorPage(BasePage):
def get_error(self):
try:
return self.parser.select(self.document.getroot(), 'div.messErreur', 1).text.strip()
except BrokenPageError:
return None
class Transaction(FrenchTransaction):
PATTERNS = [(re.compile('^CB (?P<text>.*?) FACT (?P<dd>\d{2})(?P<mm>\d{2})(?P<yy>\d{2})'),
FrenchTransaction.TYPE_CARD),