[IMP] account_bank_statement_import_online: black, isort, prettier

This commit is contained in:
Ronald Portier
2021-05-28 14:26:43 +02:00
parent 89ba13b665
commit ee15df8d15
7 changed files with 100 additions and 41 deletions

View File

@@ -7,7 +7,7 @@
"version": "13.0.1.0.0",
"author": "CorporateHub, Odoo Community Association (OCA)",
"maintainers": ["alexey-pelykh"],
"website": "https://github.com/OCA/bank-statement-import/",
"website": "https://github.com/OCA/bank-statement-import",
"license": "AGPL-3",
"category": "Accounting",
"summary": "Online bank statements update",

View File

@@ -47,7 +47,9 @@ class OnlineBankStatementProvider(models.Model):
),
)
service = fields.Selection(
selection=lambda self: self._selection_service(), required=True, readonly=True,
selection=lambda self: self._selection_service(),
required=True,
readonly=True,
)
interval_type = fields.Selection(
selection=[
@@ -60,14 +62,19 @@ class OnlineBankStatementProvider(models.Model):
required=True,
)
interval_number = fields.Integer(
string="Scheduled update interval", default=1, required=True,
string="Scheduled update interval",
default=1,
required=True,
)
update_schedule = fields.Char(
string="Update Schedule", compute="_compute_update_schedule",
string="Update Schedule",
compute="_compute_update_schedule",
)
last_successful_run = fields.Datetime(string="Last successful pull")
next_run = fields.Datetime(
string="Next scheduled pull", default=fields.Datetime.now, required=True,
string="Next scheduled pull",
default=fields.Datetime.now,
required=True,
)
statement_creation_mode = fields.Selection(
selection=[
@@ -186,7 +193,8 @@ class OnlineBankStatementProvider(models.Model):
break
raise
statement_date = provider._get_statement_date(
statement_date_since, statement_date_until,
statement_date_since,
statement_date_until,
)
if not data:
data = ([], {})
@@ -307,11 +315,21 @@ class OnlineBankStatementProvider(models.Model):
return relativedelta(days=1, hour=0, minute=0, second=0, microsecond=0)
elif self.statement_creation_mode == "weekly":
return relativedelta(
weeks=1, weekday=MO, hour=0, minute=0, second=0, microsecond=0,
weeks=1,
weekday=MO,
hour=0,
minute=0,
second=0,
microsecond=0,
)
elif self.statement_creation_mode == "monthly":
return relativedelta(
months=1, day=1, hour=0, minute=0, second=0, microsecond=0,
months=1,
day=1,
hour=0,
minute=0,
second=0,
microsecond=0,
)
def _get_statement_date(self, date_since, date_until):

View File

@@ -18,7 +18,8 @@ class OnlineBankStatementProviderDummy(models.Model):
self.ensure_one()
if self.service != "dummy":
return super()._obtain_statement_data(
date_since, date_until,
date_since,
date_until,
) # pragma: no cover
if self.env.context.get("crash", False):

View File

@@ -85,7 +85,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
provider.statement_creation_mode = "daily"
provider.with_context(step={"hours": 2})._pull(
self.now - relativedelta(days=1), self.now,
self.now - relativedelta(days=1),
self.now,
)
self.assertEqual(
len(self.AccountBankStatement.search([("journal_id", "=", journal.id)])), 2
@@ -107,7 +108,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
provider.statement_creation_mode = "weekly"
provider.with_context(step={"hours": 8})._pull(
self.now - relativedelta(weeks=1), self.now,
self.now - relativedelta(weeks=1),
self.now,
)
self.assertEqual(
len(self.AccountBankStatement.search([("journal_id", "=", journal.id)])), 2
@@ -129,7 +131,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
provider.statement_creation_mode = "monthly"
provider.with_context(step={"hours": 8})._pull(
self.now - relativedelta(months=1), self.now,
self.now - relativedelta(months=1),
self.now,
)
self.assertEqual(
len(self.AccountBankStatement.search([("journal_id", "=", journal.id)])), 2
@@ -179,7 +182,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
data_since=self.now - relativedelta(weeks=2),
data_until=self.now,
)._pull(
self.now - relativedelta(weeks=2), self.now,
self.now - relativedelta(weeks=2),
self.now,
)
self.assertEqual(
len(
@@ -193,7 +197,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
data_since=self.now - relativedelta(weeks=3),
data_until=self.now - relativedelta(weeks=1),
)._pull(
self.now - relativedelta(weeks=3), self.now - relativedelta(weeks=1),
self.now - relativedelta(weeks=3),
self.now - relativedelta(weeks=1),
)
self.assertEqual(
len(
@@ -207,7 +212,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
data_since=self.now - relativedelta(weeks=1),
data_until=self.now,
)._pull(
self.now - relativedelta(weeks=1), self.now,
self.now - relativedelta(weeks=1),
self.now,
)
self.assertEqual(
len(
@@ -296,7 +302,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
provider.statement_creation_mode = "weekly"
provider.with_context(crash=True, scheduled=True)._pull(
self.now - relativedelta(hours=1), self.now,
self.now - relativedelta(hours=1),
self.now,
)
self.assertFalse(
self.AccountBankStatement.search([("journal_id", "=", journal.id)])
@@ -319,7 +326,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
with self.assertRaises(Exception):
provider.with_context(crash=True)._pull(
self.now - relativedelta(hours=1), self.now,
self.now - relativedelta(hours=1),
self.now,
)
def test_pull_httperror(self):
@@ -339,9 +347,11 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
with self.assertRaises(HTTPError):
provider.with_context(
crash=True, exception=HTTPError(None, 500, "Error", None, None),
crash=True,
exception=HTTPError(None, 500, "Error", None, None),
)._pull(
self.now - relativedelta(hours=1), self.now,
self.now - relativedelta(hours=1),
self.now,
)
def test_pull_no_balance(self):
@@ -360,12 +370,17 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
provider.statement_creation_mode = "daily"
provider.with_context(
step={"hours": 2}, balance_start=0, amount=100.0, balance=False,
step={"hours": 2},
balance_start=0,
amount=100.0,
balance=False,
)._pull(
self.now - relativedelta(days=1), self.now,
self.now - relativedelta(days=1),
self.now,
)
statements = self.AccountBankStatement.search(
[("journal_id", "=", journal.id)], order="date asc",
[("journal_id", "=", journal.id)],
order="date asc",
)
self.assertFalse(statements[0].balance_start)
self.assertFalse(statements[0].balance_end_real)
@@ -421,24 +436,30 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
}
provider.with_context(
**provider_context, data_until=datetime(2020, 1, 31),
**provider_context,
data_until=datetime(2020, 1, 31),
)._pull(
datetime(2020, 1, 1), datetime(2020, 1, 31),
datetime(2020, 1, 1),
datetime(2020, 1, 31),
)
statements = self.AccountBankStatement.search(
[("journal_id", "=", journal.id)], order="date asc",
[("journal_id", "=", journal.id)],
order="date asc",
)
self.assertEqual(len(statements), 1)
self.assertEqual(statements[0].balance_start, 0.0)
self.assertEqual(statements[0].balance_end_real, 30.0)
provider.with_context(
**provider_context, data_until=datetime(2020, 2, 15),
**provider_context,
data_until=datetime(2020, 2, 15),
)._pull(
datetime(2020, 1, 1), datetime(2020, 2, 29),
datetime(2020, 1, 1),
datetime(2020, 2, 29),
)
statements = self.AccountBankStatement.search(
[("journal_id", "=", journal.id)], order="date asc",
[("journal_id", "=", journal.id)],
order="date asc",
)
self.assertEqual(len(statements), 2)
self.assertEqual(statements[0].balance_start, 0.0)
@@ -447,12 +468,15 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
self.assertEqual(statements[1].balance_end_real, 45.0)
provider.with_context(
**provider_context, data_until=datetime(2020, 2, 29),
**provider_context,
data_until=datetime(2020, 2, 29),
)._pull(
datetime(2020, 1, 1), datetime(2020, 2, 29),
datetime(2020, 1, 1),
datetime(2020, 2, 29),
)
statements = self.AccountBankStatement.search(
[("journal_id", "=", journal.id)], order="date asc",
[("journal_id", "=", journal.id)],
order="date asc",
)
self.assertEqual(len(statements), 2)
self.assertEqual(statements[0].balance_start, 0.0)
@@ -480,7 +504,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
data_until=datetime(2020, 4, 18, 2, 0),
tz="UTC",
)._pull(
datetime(2020, 4, 17, 22, 0), datetime(2020, 4, 18, 2, 0),
datetime(2020, 4, 17, 22, 0),
datetime(2020, 4, 18, 2, 0),
)
statement = self.AccountBankStatement.search([("journal_id", "=", journal.id)])
@@ -513,7 +538,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
data_until=datetime(2020, 4, 18, 2, 0),
tz="UTC",
)._pull(
datetime(2020, 4, 17, 22, 0), datetime(2020, 4, 18, 2, 0),
datetime(2020, 4, 17, 22, 0),
datetime(2020, 4, 18, 2, 0),
)
statement = self.AccountBankStatement.search([("journal_id", "=", journal.id)])
@@ -545,7 +571,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
data_since=datetime(2020, 4, 18, 0, 0),
data_until=datetime(2020, 4, 18, 4, 0),
)._pull(
datetime(2020, 4, 17, 22, 0), datetime(2020, 4, 18, 2, 0),
datetime(2020, 4, 17, 22, 0),
datetime(2020, 4, 18, 2, 0),
)
statement = self.AccountBankStatement.search([("journal_id", "=", journal.id)])
@@ -572,7 +599,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
provider = journal.online_bank_statement_provider_id
provider.active = True
provider.with_context(step={"hours": 1}, timestamp_mode="date")._pull(
datetime(2020, 4, 18, 0, 0), datetime(2020, 4, 18, 4, 0),
datetime(2020, 4, 18, 0, 0),
datetime(2020, 4, 18, 4, 0),
)
statement = self.AccountBankStatement.search([("journal_id", "=", journal.id)])
@@ -602,7 +630,8 @@ class TestAccountBankAccountStatementImportOnline(common.TransactionCase):
data_until=datetime(2020, 4, 18, 4, 0),
timestamp_mode="str",
)._pull(
datetime(2020, 4, 18, 0, 0), datetime(2020, 4, 18, 4, 0),
datetime(2020, 4, 18, 0, 0),
datetime(2020, 4, 18, 4, 0),
)
statement = self.AccountBankStatement.search([("journal_id", "=", journal.id)])

View File

@@ -10,10 +10,14 @@ class OnlineBankStatementPullWizard(models.TransientModel):
_description = "Online Bank Statement Pull Wizard"
date_since = fields.Datetime(
string="Since", required=True, default=fields.Datetime.now,
string="Since",
required=True,
default=fields.Datetime.now,
)
date_until = fields.Datetime(
string="Until", required=True, default=fields.Datetime.now,
string="Until",
required=True,
default=fields.Datetime.now,
)
provider_ids = fields.Many2many(
string="Providers",
@@ -25,7 +29,7 @@ class OnlineBankStatementPullWizard(models.TransientModel):
def action_pull(self):
self.ensure_one()
self.with_context(active_test=False,).provider_ids._pull(
self.date_since, self.date_until
)
self.with_context(
active_test=False,
).provider_ids._pull(self.date_since, self.date_until)
return {"type": "ir.actions.act_window_close"}

View File

@@ -0,0 +1 @@
../../../../account_bank_statement_import_online

View File

@@ -0,0 +1,6 @@
import setuptools
setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)