handle login errors
This commit is contained in:
parent
33bbe6d451
commit
e52c6d6b18
2 changed files with 12 additions and 2 deletions
|
|
@ -22,7 +22,7 @@ from urlparse import urlsplit
|
||||||
|
|
||||||
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
|
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
|
||||||
|
|
||||||
from .pages import LoginPage, IndexPage
|
from .pages import LoginPage, IndexPage, ErrorPage
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['CaisseEpargne']
|
__all__ = ['CaisseEpargne']
|
||||||
|
|
@ -34,6 +34,7 @@ class CaisseEpargne(BaseBrowser):
|
||||||
CERTHASH = '165faeb5bd1bad22bf52029e3c09bf540199402a1fa70aa19e9d5f92d562ff69'
|
CERTHASH = '165faeb5bd1bad22bf52029e3c09bf540199402a1fa70aa19e9d5f92d562ff69'
|
||||||
PAGES = {'https://[^/]+.caisse-epargne.fr/particuliers/ind_pauthpopup.aspx.*': LoginPage,
|
PAGES = {'https://[^/]+.caisse-epargne.fr/particuliers/ind_pauthpopup.aspx.*': LoginPage,
|
||||||
'https://[^/]+.caisse-epargne.fr/Portail.aspx': IndexPage,
|
'https://[^/]+.caisse-epargne.fr/Portail.aspx': IndexPage,
|
||||||
|
'https://[^/]+.caisse-epargne.fr/login.aspx': ErrorPage,
|
||||||
}
|
}
|
||||||
|
|
||||||
def is_logged(self):
|
def is_logged(self):
|
||||||
|
|
@ -62,6 +63,8 @@ class CaisseEpargne(BaseBrowser):
|
||||||
|
|
||||||
if not self.is_logged():
|
if not self.is_logged():
|
||||||
raise BrowserIncorrectPassword()
|
raise BrowserIncorrectPassword()
|
||||||
|
if self.is_on_page(ErrorPage):
|
||||||
|
raise BrowserIncorrectPassword(self.page.get_error())
|
||||||
|
|
||||||
v = urlsplit(self.page.url)
|
v = urlsplit(self.page.url)
|
||||||
self.DOMAIN = v.netloc
|
self.DOMAIN = v.netloc
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ from weboob.capabilities.bank import Account
|
||||||
from weboob.tools.capabilities.bank.transactions import FrenchTransaction
|
from weboob.tools.capabilities.bank.transactions import FrenchTransaction
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['LoginPage', 'IndexPage']
|
__all__ = ['LoginPage', 'ErrorPage', 'IndexPage']
|
||||||
|
|
||||||
|
|
||||||
class LoginPage(BasePage):
|
class LoginPage(BasePage):
|
||||||
|
|
@ -54,6 +54,13 @@ class LoginPage(BasePage):
|
||||||
self.browser.form.action = m.group(1)
|
self.browser.form.action = m.group(1)
|
||||||
self.browser.submit(nologin=True)
|
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):
|
class Transaction(FrenchTransaction):
|
||||||
PATTERNS = [(re.compile('^CB (?P<text>.*?) FACT (?P<dd>\d{2})(?P<mm>\d{2})(?P<yy>\d{2})'),
|
PATTERNS = [(re.compile('^CB (?P<text>.*?) FACT (?P<dd>\d{2})(?P<mm>\d{2})(?P<yy>\d{2})'),
|
||||||
FrenchTransaction.TYPE_CARD),
|
FrenchTransaction.TYPE_CARD),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue