From 6bf21a40c3e259688c5913ce76dc9138cdd02f27 Mon Sep 17 00:00:00 2001 From: Florian Duguet Date: Thu, 21 Feb 2019 15:16:03 +0100 Subject: [PATCH] [orange] handle crash when server doesn't respond Closes: 29350@sibi --- modules/orange/browser.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/modules/orange/browser.py b/modules/orange/browser.py index 9ae52336ab..ccd9d3c7ac 100644 --- a/modules/orange/browser.py +++ b/modules/orange/browser.py @@ -19,13 +19,16 @@ from __future__ import unicode_literals +from requests.exceptions import ConnectTimeout + from weboob.browser import LoginBrowser, URL, need_login -from weboob.exceptions import BrowserIncorrectPassword +from weboob.exceptions import BrowserIncorrectPassword, BrowserUnavailable from .pages import LoginPage, BillsPage from .pages.bills import SubscriptionsPage, BillsApiPage, ContractsPage from .pages.profile import ProfilePage from weboob.browser.exceptions import ClientError, ServerError from weboob.tools.compat import basestring +from weboob.tools.decorators import retry __all__ = ['OrangeBillBrowser'] @@ -80,9 +83,15 @@ def _iter_subscriptions_by_type(self, name, _type): sub.subscriber = name yield sub + @retry(BrowserUnavailable, tries=2, delay=10) @need_login def get_subscription_list(self): - profile = self.profile.go().get_profile() + try: + profile = self.profile.go().get_profile() + except ConnectTimeout: + # sometimes server just doesn't answer + raise BrowserUnavailable() + # this only works when there are pro subs. nb_sub = 0 try: -- GitLab