diff --git a/modules/n26/browser.py b/modules/n26/browser.py index 0c2ded52ab83ee446bb13572cc42e0bfa530ac9a..f352146f7614a1064cb4f36acb778681c37ea1dd 100644 --- a/modules/n26/browser.py +++ b/modules/n26/browser.py @@ -25,7 +25,7 @@ from weboob.capabilities.base import find_object, NotAvailable from weboob.capabilities.bank import Account, Transaction, AccountNotFound from weboob.browser.filters.standard import CleanText -from weboob.exceptions import BrowserIncorrectPassword +from weboob.exceptions import BrowserIncorrectPassword, BrowserUnavailable from weboob.browser.exceptions import ClientError # Do not use an APIBrowser since APIBrowser sends all its requests bodies as @@ -74,8 +74,16 @@ def do_login(self): try: result = self.request('/oauth/token', data=data, method="POST") - except ClientError: - raise BrowserIncorrectPassword() + except ClientError as ex: + response = ex.response.json() + + if response.get('error') == 'invalid_grant': + raise BrowserIncorrectPassword(response['error_description']) + + if response.get('title') == 'Error': + raise BrowserUnavailable(response['message']) + + raise self.auth_method = 'bearer' self.bearer = result['access_token']