From 5c5cb5da8e43825d2dc92daa0f330871253b83d9 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Thu, 10 Oct 2013 09:53:53 +0200 Subject: [PATCH] do not crash if there is no operations --- modules/banquepopulaire/browser.py | 5 +++++ modules/banquepopulaire/pages.py | 3 +++ 2 files changed, 8 insertions(+) diff --git a/modules/banquepopulaire/browser.py b/modules/banquepopulaire/browser.py index c555ea2d..1c212245 100644 --- a/modules/banquepopulaire/browser.py +++ b/modules/banquepopulaire/browser.py @@ -110,7 +110,12 @@ class BanquePopulaire(BaseBrowser): def get_history(self, account): if not self.is_on_page(AccountsPage): account = self.get_account(account.id) + self.location('/cyber/internet/ContinueTask.do', urllib.urlencode(account._params)) + self.token = self.page.get_token() + + if self.page.no_operations(): + return # Sort by values dates (see comment in TransactionsPage.get_history) self.select_form(predicate=lambda form: form.attrs.get('id', '') == 'myForm') diff --git a/modules/banquepopulaire/pages.py b/modules/banquepopulaire/pages.py index bf75a48d..35b680ba 100644 --- a/modules/banquepopulaire/pages.py +++ b/modules/banquepopulaire/pages.py @@ -320,3 +320,6 @@ class TransactionsPage(BasePage): t.parse(date, re.sub(r'[ ]+', ' ', raw), vdate) t.set_amount(credit, debit) yield t + + def no_operations(self): + return len(self.document.xpath('//table[@id="tbl1"]//td[@colspan]')) > 0