mirror of
https://github.com/OCA/bank-statement-import.git
synced 2025-01-20 12:37:43 +02:00
[FIX] account_bank_statement_import_online: catch any exception
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
# Copyright 2019 Brainbean Apps (https://brainbeanapps.com)
|
||||
# Copyright 2019 Dataplug (https://dataplug.io)
|
||||
# Copyright 2019-2020 Brainbean Apps (https://brainbeanapps.com)
|
||||
# Copyright 2019-2020 Dataplug (https://dataplug.io)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from dateutil.relativedelta import relativedelta, MO
|
||||
from decimal import Decimal
|
||||
import logging
|
||||
from sys import exc_info
|
||||
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.addons.base.models.res_bank import sanitize_account_number
|
||||
@@ -167,7 +168,8 @@ class OnlineBankStatementProvider(models.Model):
|
||||
statement_date_since,
|
||||
statement_date_until
|
||||
)
|
||||
except Exception as e:
|
||||
except:
|
||||
e = exc_info()[1]
|
||||
if is_scheduled:
|
||||
_logger.warning(
|
||||
'Online Bank Statement Provider "%s" failed to'
|
||||
@@ -186,7 +188,7 @@ class OnlineBankStatementProvider(models.Model):
|
||||
provider.name,
|
||||
statement_date_since,
|
||||
statement_date_until,
|
||||
str(e),
|
||||
str(e) if e else _('N/A'),
|
||||
),
|
||||
subject=_(
|
||||
'Online Bank Statement Provider failure'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Copyright 2019 Brainbean Apps (https://brainbeanapps.com)
|
||||
# Copyright 2019 Dataplug (https://dataplug.io)
|
||||
# Copyright 2019-2020 Brainbean Apps (https://brainbeanapps.com)
|
||||
# Copyright 2019-2020 Dataplug (https://dataplug.io)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
@@ -22,7 +22,11 @@ class OnlineBankStatementProviderDummy(models.Model):
|
||||
) # pragma: no cover
|
||||
|
||||
if self.env.context.get('crash', False):
|
||||
raise Exception('Expected')
|
||||
exception = self.env.context.get(
|
||||
'exception',
|
||||
Exception('Expected')
|
||||
)
|
||||
raise exception
|
||||
|
||||
line_step_options = self.env.context.get('step', {
|
||||
'minutes': 5,
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Copyright 2019 Brainbean Apps (https://brainbeanapps.com)
|
||||
# Copyright 2019 Dataplug (https://dataplug.io)
|
||||
# Copyright 2019-2020 Brainbean Apps (https://brainbeanapps.com)
|
||||
# Copyright 2019-2020 Dataplug (https://dataplug.io)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from psycopg2 import IntegrityError
|
||||
from urllib.error import HTTPError
|
||||
|
||||
from odoo.tests import common
|
||||
from odoo.tools import mute_logger
|
||||
@@ -341,3 +341,25 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
|
||||
self.now - relativedelta(hours=1),
|
||||
self.now,
|
||||
)
|
||||
|
||||
def test_pull_httperror(self):
|
||||
journal = self.AccountJournal.create({
|
||||
'name': 'Bank',
|
||||
'type': 'bank',
|
||||
'code': 'BANK',
|
||||
'bank_statements_source': 'online',
|
||||
'online_bank_statement_provider': 'dummy',
|
||||
})
|
||||
|
||||
provider = journal.online_bank_statement_provider_id
|
||||
provider.active = True
|
||||
provider.statement_creation_mode = 'weekly'
|
||||
|
||||
with self.assertRaises(HTTPError):
|
||||
provider.with_context(
|
||||
crash=True,
|
||||
exception=HTTPError(None, 500, 'Error', None, None),
|
||||
)._pull(
|
||||
self.now - relativedelta(hours=1),
|
||||
self.now,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user