handle error message when unable to login

This commit is contained in:
Romain Bignon 2012-09-15 11:04:49 +02:00
commit 4101ea9c3d
2 changed files with 11 additions and 4 deletions

View file

@ -18,7 +18,7 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword, BrowserUnavailable
from .pages.accounts_list import AccountsList, AccountHistory
from .pages.login import LoginPage, BadLoginPage
@ -61,10 +61,16 @@ class SocieteGenerale(BaseBrowser):
self.page.login(self.username, self.password)
if self.is_on_page(LoginPage) or \
self.is_on_page(BadLoginPage):
if self.is_on_page(LoginPage):
raise BrowserIncorrectPassword()
if self.is_on_page(BadLoginPage):
error = self.page.get_error()
if error.startswith('Votre session a'):
raise BrowserUnavailable('Session has expired')
else:
raise BrowserIncorrectPassword(error)
def get_accounts_list(self):
if not self.is_on_page(AccountsList):
self.location('/restitution/cns_listeprestation.html')

View file

@ -85,4 +85,5 @@ class LoginPage(BasePage):
class BadLoginPage(BasePage):
pass
def get_error(self):
return self.document.xpath('//span[@class="error_msg"]')[0].text.strip()