From 55ab039bff692e9cb6045c3dd972452cd1bf8cbe Mon Sep 17 00:00:00 2001 From: Damien Mat Date: Thu, 27 May 2021 12:51:10 +0200 Subject: [PATCH] [bred] handle unavailable page We can end up on that page after a redirection, so BrowserUnavailable is raised inside on_load. --- modules/bred/bred/browser.py | 2 ++ modules/bred/bred/pages.py | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/modules/bred/bred/browser.py b/modules/bred/bred/browser.py index 49d802dc2f..c527c79594 100644 --- a/modules/bred/bred/browser.py +++ b/modules/bred/bred/browser.py @@ -50,6 +50,7 @@ TokenPage, MoveUniversePage, SwitchPage, LoansPage, AccountsPage, IbanPage, LifeInsurancesPage, SearchPage, ProfilePage, ErrorPage, ErrorCodePage, LinebourseLoginPage, + UnavailablePage, ) from .transfer_pages import ( RecipientListPage, EmittersListPage, ListAuthentPage, @@ -84,6 +85,7 @@ class BredBrowser(TwoFactorBrowser): search = URL(r'/transactionnel/services/applications/operations/getSearch/', SearchPage) profile = URL(r'/transactionnel/services/rest/User/user', ProfilePage) error_code = URL(r'/.*\?errorCode=.*', ErrorCodePage) + unavailable_page = URL(r'/ERREUR/', UnavailablePage) accounts_twofa = URL(r'/transactionnel/v2/services/rest/Account/accounts', AccountsTwoFAPage) list_authent = URL(r'/transactionnel/services/applications/authenticationstrong/listeAuthent/(?P\w+)', ListAuthentPage) diff --git a/modules/bred/bred/pages.py b/modules/bred/bred/pages.py index b61349eae0..57684ae8ef 100644 --- a/modules/bred/bred/pages.py +++ b/modules/bred/bred/pages.py @@ -402,3 +402,14 @@ def on_load(self): raise BrowserUnavailable(msg) assert False, 'Error %s is not handled yet.' % code + + +class UnavailablePage(HTMLPage): + def is_here(self): + return CleanText('//h1[contains(text(), "Site en maintenance")]', default=None)(self.doc) + + def on_load(self): + msg = CleanText('//div[contains(text(), "intervention technique est en cours")]', default=None)(self.doc) + if msg: + raise BrowserUnavailable(msg) + raise AssertionError('Ended up to this error page, message not handled yet.') -- GitLab