From db57ff1c36dfebe30590ce27b1b7a654d8716d09 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Thu, 28 Mar 2013 09:15:34 +0100 Subject: [PATCH] support 'OPPOSITION' state for cards (and better detection of unknown values) --- modules/societegenerale/pages/accounts_list.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/societegenerale/pages/accounts_list.py b/modules/societegenerale/pages/accounts_list.py index a0644356..3205292e 100644 --- a/modules/societegenerale/pages/accounts_list.py +++ b/modules/societegenerale/pages/accounts_list.py @@ -22,7 +22,7 @@ import datetime from urlparse import parse_qs, urlparse from lxml.etree import XML from cStringIO import StringIO -from decimal import Decimal +from decimal import Decimal, InvalidOperation import re from weboob.capabilities.base import empty, NotAvailable @@ -69,10 +69,12 @@ class AccountsList(BasePage): div = td.xpath('./div[@class="Solde"]') if len(div) > 0: balance = self.parser.tocleanstring(div[0]) - if len(balance) > 0 and balance != 'ANNULEE': + if len(balance) > 0 and balance not in ('ANNULEE', 'OPPOSITION'): + try: + acccount.balance = Decimal(FrenchTransaction.clean_amount(balance)) + except InvalidOperation: + raise BrokenPageError('Unable to parse balance %r' % balance) account.currency = account.get_currency(balance) - balance = FrenchTransaction.clean_amount(balance) - account.balance = Decimal(balance) else: account.balance = NotAvailable