From 0cffab661d8d94261107b7a42ffdf3699c243659 Mon Sep 17 00:00:00 2001 From: Oleg Plakhotniuk Date: Thu, 26 Feb 2015 03:54:18 -0600 Subject: [PATCH] [myhabit] Retry after request timeout. Closes #1741 --- modules/myhabit/browser.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/myhabit/browser.py b/modules/myhabit/browser.py index 262de0a1..42c97f0a 100644 --- a/modules/myhabit/browser.py +++ b/modules/myhabit/browser.py @@ -18,6 +18,8 @@ # along with weboob. If not, see . +from requests.exceptions import Timeout + from weboob.tools.capabilities.bank.transactions import \ AmericanTransaction as AmTr from weboob.browser import LoginBrowser, URL, need_login @@ -124,6 +126,7 @@ class OrderPage(MyHabitPage): class MyHabit(LoginBrowser): BASEURL = 'https://www.myhabit.com' + MAX_RETRIES = 10 login = URL(r'/signin', r'https://www.amazon.com/ap/signin.*$', LoginPage) order = URL(r'/vieworders\?.*appAction=ViewOrdersDetail.*', OrderPage) history = URL(r'/vieworders$', @@ -176,3 +179,11 @@ class MyHabit(LoginBrowser): def do_login(self): if not self.login.go().login(self.username, self.password).logged: raise BrowserIncorrectPassword() + + def location(self, *args, **kwargs): + for i in xrange(self.MAX_RETRIES): + try: + return super(MyHabit, self).location(*args, **kwargs) + except Timeout as e: + pass + raise e