diff --git a/modules/freemobile/browser.py b/modules/freemobile/browser.py index f6a4faa38a3942a54b583eae830aac379569d834..e62c6001140a9955125a49086a48c711f685e553 100644 --- a/modules/freemobile/browser.py +++ b/modules/freemobile/browser.py @@ -19,11 +19,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with this weboob module. If not, see . +from __future__ import unicode_literals + import itertools from weboob.browser import LoginBrowser, URL, need_login from weboob.capabilities.messages import CantSendMessage -from weboob.exceptions import BrowserIncorrectPassword +from weboob.exceptions import BrowserIncorrectPassword, BrowserUnavailable from .pages import LoginPage, BillsPage, ProfilePage, PdfPage, OfferPage, OptionsPage @@ -61,8 +63,15 @@ def do_logout(self): @need_login def iter_subscription(self): - offerpage = self.offerpage.stay_or_go() - subscriptions = itertools.chain([offerpage.get_first_subscription()], offerpage.iter_next_subscription()) + self.offerpage.stay_or_go() + if self.login_page.is_here(): + error = self.page.get_error() + if 'Vous ne pouvez pas avoir accès à cette page' in error: + raise BrowserUnavailable(error) + elif error: + raise AssertionError('Unexpected error at subscription: %s' % error) + + subscriptions = itertools.chain([self.page.get_first_subscription()], self.page.iter_next_subscription()) for subscription in subscriptions: self.login_page.go(params={"switch-user": subscription._userid}) diff --git a/modules/freemobile/pages.py b/modules/freemobile/pages.py index 6743275d7735af87f4ec42ae294b05b140633206..48fa92550799595dae0b28b5aa5d226d08a3c42a 100644 --- a/modules/freemobile/pages.py +++ b/modules/freemobile/pages.py @@ -39,7 +39,7 @@ def login(self, login, password): form.submit() def get_error(self): - return CleanText('//div[@class="flash flash-error"]')(self.doc) + return CleanText('//div[has-class("flash")]')(self.doc) class BillsPage(LoggedPage, HTMLPage):