From 60dfff3b27cb5cfd6ee6654f6928ceef9ec7f3b8 Mon Sep 17 00:00:00 2001 From: Florian Duguet Date: Thu, 29 Nov 2018 12:10:58 +0100 Subject: [PATCH] [ameli] handle unavailable page Closes: 14247@sibi --- modules/ameli/browser.py | 6 +++++- modules/ameli/pages.py | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/ameli/browser.py b/modules/ameli/browser.py index 295037b49d..715c6b888c 100644 --- a/modules/ameli/browser.py +++ b/modules/ameli/browser.py @@ -21,8 +21,11 @@ from weboob.browser import LoginBrowser, URL, need_login from weboob.exceptions import BrowserIncorrectPassword, ActionNeeded +from .pages import ( + LoginPage, HomePage, CguPage, AccountPage, LastPaymentsPage, PaymentsPage, PaymentDetailsPage, Raw, UnavailablePage, +) from weboob.tools.compat import basestring -from .pages import LoginPage, HomePage, CguPage, AccountPage, LastPaymentsPage, PaymentsPage, PaymentDetailsPage, Raw + __all__ = ['AmeliBrowser'] @@ -38,6 +41,7 @@ class AmeliBrowser(LoginBrowser): paymentdetailsp = URL(r'/PortailAS/paiements.do\?actionEvt=chargerDetailPaiements.*', PaymentDetailsPage) lastpaymentsp = URL(r'/PortailAS/paiements.do\?actionEvt=afficherPaiements.*', LastPaymentsPage) pdf_page = URL(r'PortailAS/PDFServletReleveMensuel.dopdf\?PDF.moisRecherche=.*', Raw) + unavailablep = URL(r'/vu/INDISPO_COMPTE_ASSURES.html', UnavailablePage) def do_login(self): self.logger.debug('call Browser.do_login') diff --git a/modules/ameli/pages.py b/modules/ameli/pages.py index bd0ad8e74f..b9eb114228 100644 --- a/modules/ameli/pages.py +++ b/modules/ameli/pages.py @@ -27,9 +27,11 @@ from weboob.browser.pages import HTMLPage, RawPage, LoggedPage from weboob.capabilities.bill import Subscription, Detail, Bill from weboob.browser.filters.standard import CleanText, Regexp +from weboob.exceptions import BrowserUnavailable # Ugly array to avoid the use of french locale + FRENCH_MONTHS = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'] @@ -229,3 +231,8 @@ def iter_payment_details(self, sub): class Raw(LoggedPage, RawPage): pass + + +class UnavailablePage(HTMLPage): + def on_load(self): + raise BrowserUnavailable(CleanText('//span[@class="texte-indispo"]')(self.doc)) -- GitLab