From 49c4c7ec658041ef18a3b172c6a65cce63dc8bcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9lande=20Adrien?= Date: Tue, 8 Oct 2019 15:35:37 +0200 Subject: [PATCH] [societegenerale] users not allowed to add recipients MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When not allowed to add recipients, users recieve a message: `Vous n'avez pas la possibilité d'accéder à cette fonction. Veuillez prendre contact avec votre Conseiller.` --- modules/societegenerale/browser.py | 4 ++++ modules/societegenerale/pages/login.py | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/modules/societegenerale/browser.py b/modules/societegenerale/browser.py index 8a19b24394..78143ea05d 100644 --- a/modules/societegenerale/browser.py +++ b/modules/societegenerale/browser.py @@ -433,6 +433,10 @@ def new_recipient(self, recipient, **params): return self.end_oob_recipient(recipient, **params) self.add_recipient.go() + if self.main_page.is_here(): + self.page.handle_error() + assert False, 'Should not be on this page.' + self.page.post_iban(recipient) self.page.post_label(recipient) diff --git a/modules/societegenerale/pages/login.py b/modules/societegenerale/pages/login.py index b137d295a5..4a0d1a08ba 100644 --- a/modules/societegenerale/pages/login.py +++ b/modules/societegenerale/pages/login.py @@ -28,6 +28,7 @@ from weboob.browser.pages import HTMLPage, JsonPage from weboob.browser.filters.standard import CleanText from weboob.browser.filters.json import Dict +from weboob.capabilities.bank import AddRecipientBankError from .base import BasePage from ..captcha import Captcha, TileError @@ -105,6 +106,13 @@ def login(self, login, password): } self.browser.location(self.browser.absurl('/sec/vk/authent.json'), data=data) + def handle_error(self): + error_msg = CleanText('//span[@class="error_msg"]')(self.doc) + if error_msg: + # WARNING: this error occured during a recipient adding + # I don't know if it can happen at another time + raise AddRecipientBankError(message=error_msg) + class LoginPage(JsonPage): def get_error(self): -- GitLab