From 095d2a2b84885a36a601a2d122e9a6dc98b29abd Mon Sep 17 00:00:00 2001 From: Martin Sicot Date: Thu, 8 Nov 2018 18:02:35 +0100 Subject: [PATCH] [societegenerale] ActionNeeded added for first time When accessing sogecash for the first time, a form must be filled. Hence the action needed. --- modules/societegenerale/sgpe/browser.py | 8 ++++++-- modules/societegenerale/sgpe/pages.py | 6 ++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/societegenerale/sgpe/browser.py b/modules/societegenerale/sgpe/browser.py index 7836385a41..573b295e1c 100644 --- a/modules/societegenerale/sgpe/browser.py +++ b/modules/societegenerale/sgpe/browser.py @@ -25,7 +25,7 @@ from weboob.browser.browsers import LoginBrowser, need_login, StatesMixin from weboob.browser.url import URL from weboob.browser.exceptions import ClientError -from weboob.exceptions import BrowserIncorrectPassword +from weboob.exceptions import BrowserIncorrectPassword, ActionNeeded from weboob.capabilities.base import find_object from weboob.capabilities.bank import ( AccountNotFound, RecipientNotFound, AddRecipientStep, AddRecipientBankError, @@ -35,7 +35,7 @@ from .pages import ( LoginPage, CardsPage, CardHistoryPage, IncorrectLoginPage, - ProfileProPage, ProfileEntPage, ChangePassPage, SubscriptionPage, + ProfileProPage, ProfileEntPage, ChangePassPage, SubscriptionPage, InscriptionPage, ErrorPage, ) from .json_pages import AccountsJsonPage, BalancesJsonPage, HistoryJsonPage, BankStatementPage @@ -59,6 +59,7 @@ class SGPEBrowser(LoginBrowser): '/gae/afficherInscriptionUtilisateur.html', '/gae/afficherChangementCodeSecretExpire.html', ChangePassPage) + inscription_page = URL('/icd-web/gax/gax-inscription.html', InscriptionPage) def check_logged_status(self): if not self.page or self.login.is_here(): @@ -82,6 +83,9 @@ def do_login(self): except ClientError: raise BrowserIncorrectPassword() + if self.inscription_page.is_here(): + raise ActionNeeded(self.page.get_error()) + # force page change if not self.accounts.is_here(): self.go_accounts() diff --git a/modules/societegenerale/sgpe/pages.py b/modules/societegenerale/sgpe/pages.py index 82f8b6d897..5fc8d32765 100644 --- a/modules/societegenerale/sgpe/pages.py +++ b/modules/societegenerale/sgpe/pages.py @@ -259,3 +259,9 @@ def on_load(self): if self.doc.xpath('//div[@class="ngo_mu_message" and contains(text(), "momentanément indisponible")]'): # Warning: it could occurs because of wrongpass, user have to change password raise BrowserUnavailable(CleanText('//div[@class="ngo_mu_message"]')(self.doc)) + + +class InscriptionPage(SGPEPage): + def get_error(self): + message = CleanText('//head/title')(self.doc) + return message -- GitLab