mirror of
https://github.com/OCA/bank-statement-import.git
synced 2025-01-20 12:37:43 +02:00
[IMP] account_statement_import_online_wise: black, isort, prettier
This commit is contained in:
@@ -33,7 +33,10 @@ class OnlineBankStatementProviderTransferwise(models.Model):
|
|||||||
# NOTE: This is needed to workaround possible multiple 'origin' fields
|
# NOTE: This is needed to workaround possible multiple 'origin' fields
|
||||||
# present in the same view, resulting in wrong field view configuraion
|
# present in the same view, resulting in wrong field view configuraion
|
||||||
# if more than one is widget="dynamic_dropdown"
|
# if more than one is widget="dynamic_dropdown"
|
||||||
transferwise_profile = fields.Char(related="origin", readonly=False,)
|
transferwise_profile = fields.Char(
|
||||||
|
related="origin",
|
||||||
|
readonly=False,
|
||||||
|
)
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def values_transferwise_profile(self):
|
def values_transferwise_profile(self):
|
||||||
@@ -52,7 +55,10 @@ class OnlineBankStatementProviderTransferwise(models.Model):
|
|||||||
lambda entry: (
|
lambda entry: (
|
||||||
str(entry["id"]),
|
str(entry["id"]),
|
||||||
"%s %s (personal)"
|
"%s %s (personal)"
|
||||||
% (entry["details"]["firstName"], entry["details"]["lastName"],)
|
% (
|
||||||
|
entry["details"]["firstName"],
|
||||||
|
entry["details"]["lastName"],
|
||||||
|
)
|
||||||
if entry["type"] == "personal"
|
if entry["type"] == "personal"
|
||||||
else entry["details"]["name"],
|
else entry["details"]["name"],
|
||||||
),
|
),
|
||||||
@@ -70,7 +76,8 @@ class OnlineBankStatementProviderTransferwise(models.Model):
|
|||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
if self.service != "transferwise":
|
if self.service != "transferwise":
|
||||||
return super()._obtain_statement_data(
|
return super()._obtain_statement_data(
|
||||||
date_since, date_until,
|
date_since,
|
||||||
|
date_until,
|
||||||
) # pragma: no cover
|
) # pragma: no cover
|
||||||
|
|
||||||
api_base = self.api_base or TRANSFERWISE_API_BASE
|
api_base = self.api_base or TRANSFERWISE_API_BASE
|
||||||
@@ -78,7 +85,9 @@ class OnlineBankStatementProviderTransferwise(models.Model):
|
|||||||
private_key = self.certificate_private_key
|
private_key = self.certificate_private_key
|
||||||
if private_key:
|
if private_key:
|
||||||
private_key = serialization.load_pem_private_key(
|
private_key = serialization.load_pem_private_key(
|
||||||
private_key.encode(), password=None, backend=default_backend(),
|
private_key.encode(),
|
||||||
|
password=None,
|
||||||
|
backend=default_backend(),
|
||||||
)
|
)
|
||||||
currency = (self.currency_id or self.company_id.currency_id).name
|
currency = (self.currency_id or self.company_id.currency_id).name
|
||||||
|
|
||||||
@@ -187,7 +196,9 @@ class OnlineBankStatementProviderTransferwise(models.Model):
|
|||||||
fees_value = fees_value.copy_sign(amount_value)
|
fees_value = fees_value.copy_sign(amount_value)
|
||||||
amount_value -= fees_value
|
amount_value -= fees_value
|
||||||
unique_import_id = "{}-{}-{}".format(
|
unique_import_id = "{}-{}-{}".format(
|
||||||
transaction_type, reference_number, int(date.timestamp()),
|
transaction_type,
|
||||||
|
reference_number,
|
||||||
|
int(date.timestamp()),
|
||||||
)
|
)
|
||||||
line = {
|
line = {
|
||||||
"name": payment_reference or description or "",
|
"name": payment_reference or description or "",
|
||||||
@@ -275,11 +286,16 @@ class OnlineBankStatementProviderTransferwise(models.Model):
|
|||||||
raise UserError(_("Strong Customer Authentication is not configured"))
|
raise UserError(_("Strong Customer Authentication is not configured"))
|
||||||
one_time_token = e.headers["X-2FA-Approval"]
|
one_time_token = e.headers["X-2FA-Approval"]
|
||||||
signature = private_key.sign(
|
signature = private_key.sign(
|
||||||
one_time_token.encode(), padding.PKCS1v15(), hashes.SHA256(),
|
one_time_token.encode(),
|
||||||
|
padding.PKCS1v15(),
|
||||||
|
hashes.SHA256(),
|
||||||
)
|
)
|
||||||
|
|
||||||
with self._transferwise_urlopen(
|
with self._transferwise_urlopen(
|
||||||
url, api_key, one_time_token, b64encode(signature).decode(),
|
url,
|
||||||
|
api_key,
|
||||||
|
one_time_token,
|
||||||
|
b64encode(signature).decode(),
|
||||||
) as response:
|
) as response:
|
||||||
content = response.read().decode(
|
content = response.read().decode(
|
||||||
response.headers.get_content_charset() or "utf-8"
|
response.headers.get_content_charset() or "utf-8"
|
||||||
@@ -316,7 +332,8 @@ class OnlineBankStatementProviderTransferwise(models.Model):
|
|||||||
self.certificate_public_key = (
|
self.certificate_public_key = (
|
||||||
private_key.public_key()
|
private_key.public_key()
|
||||||
.public_bytes(
|
.public_bytes(
|
||||||
serialization.Encoding.PEM, serialization.PublicFormat.PKCS1,
|
serialization.Encoding.PEM,
|
||||||
|
serialization.PublicFormat.PKCS1,
|
||||||
)
|
)
|
||||||
.decode()
|
.decode()
|
||||||
)
|
)
|
||||||
@@ -328,7 +345,9 @@ class OnlineBankStatementProviderTransferwise(models.Model):
|
|||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
|
|
||||||
private_key = rsa.generate_private_key(
|
private_key = rsa.generate_private_key(
|
||||||
public_exponent=65537, key_size=2048, backend=default_backend(),
|
public_exponent=65537,
|
||||||
|
key_size=2048,
|
||||||
|
backend=default_backend(),
|
||||||
)
|
)
|
||||||
self.certificate_private_key = private_key.private_bytes(
|
self.certificate_private_key = private_key.private_bytes(
|
||||||
serialization.Encoding.PEM,
|
serialization.Encoding.PEM,
|
||||||
@@ -338,7 +357,10 @@ class OnlineBankStatementProviderTransferwise(models.Model):
|
|||||||
|
|
||||||
self.certificate_public_key = (
|
self.certificate_public_key = (
|
||||||
private_key.public_key()
|
private_key.public_key()
|
||||||
.public_bytes(serialization.Encoding.PEM, serialization.PublicFormat.PKCS1,)
|
.public_bytes(
|
||||||
|
serialization.Encoding.PEM,
|
||||||
|
serialization.PublicFormat.PKCS1,
|
||||||
|
)
|
||||||
.decode()
|
.decode()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,10 @@ class TestAccountBankAccountStatementImportOnlineTransferwise(common.Transaction
|
|||||||
self.transferwise_parse_transaction = lambda payload: (
|
self.transferwise_parse_transaction = lambda payload: (
|
||||||
Provider._transferwise_transaction_to_lines(
|
Provider._transferwise_transaction_to_lines(
|
||||||
Provider._transferwise_preparse_transaction(
|
Provider._transferwise_preparse_transaction(
|
||||||
json.loads(payload, parse_float=Decimal,)
|
json.loads(
|
||||||
|
payload,
|
||||||
|
parse_float=Decimal,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -118,7 +121,8 @@ class TestAccountBankAccountStatementImportOnlineTransferwise(common.Transaction
|
|||||||
)
|
)
|
||||||
values_transferwise_profile = []
|
values_transferwise_profile = []
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
_provider_class + "._transferwise_retrieve", return_value=mocked_response,
|
_provider_class + "._transferwise_retrieve",
|
||||||
|
return_value=mocked_response,
|
||||||
):
|
):
|
||||||
values_transferwise_profile = self.OnlineBankStatementProvider.with_context(
|
values_transferwise_profile = self.OnlineBankStatementProvider.with_context(
|
||||||
{"api_base": "https://example.com", "api_key": "dummy"}
|
{"api_base": "https://example.com", "api_key": "dummy"}
|
||||||
@@ -186,10 +190,12 @@ class TestAccountBankAccountStatementImportOnlineTransferwise(common.Transaction
|
|||||||
return json.loads(payload, parse_float=Decimal)
|
return json.loads(payload, parse_float=Decimal)
|
||||||
|
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
_provider_class + "._transferwise_retrieve", side_effect=mock_response,
|
_provider_class + "._transferwise_retrieve",
|
||||||
|
side_effect=mock_response,
|
||||||
):
|
):
|
||||||
data = provider._obtain_statement_data(
|
data = provider._obtain_statement_data(
|
||||||
self.now - relativedelta(hours=1), self.now,
|
self.now - relativedelta(hours=1),
|
||||||
|
self.now,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertEqual(len(data[0]), 0)
|
self.assertEqual(len(data[0]), 0)
|
||||||
@@ -213,10 +219,12 @@ class TestAccountBankAccountStatementImportOnlineTransferwise(common.Transaction
|
|||||||
provider.password = "API_KEY"
|
provider.password = "API_KEY"
|
||||||
|
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
_provider_class + "._transferwise_retrieve", return_value=[],
|
_provider_class + "._transferwise_retrieve",
|
||||||
|
return_value=[],
|
||||||
):
|
):
|
||||||
data = provider._obtain_statement_data(
|
data = provider._obtain_statement_data(
|
||||||
self.now - relativedelta(hours=1), self.now,
|
self.now - relativedelta(hours=1),
|
||||||
|
self.now,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(data)
|
self.assertFalse(data)
|
||||||
@@ -298,7 +306,8 @@ edF6byMgXSzgOWYuRPXwmHpBQV0GiexQUAxVyUzaVWfil69LaFfXaw==
|
|||||||
],
|
],
|
||||||
):
|
):
|
||||||
data = provider._obtain_statement_data(
|
data = provider._obtain_statement_data(
|
||||||
self.now - relativedelta(hours=1), self.now,
|
self.now - relativedelta(hours=1),
|
||||||
|
self.now,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertEqual(len(data[0]), 0)
|
self.assertEqual(len(data[0]), 0)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
# generated from manifests external_dependencies
|
# generated from manifests external_dependencies
|
||||||
chardet
|
chardet
|
||||||
|
cryptography
|
||||||
ofxparse
|
ofxparse
|
||||||
xlrd
|
xlrd
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
../../../../account_bank_statement_import_online_transferwise
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
import setuptools
|
||||||
|
|
||||||
|
setuptools.setup(
|
||||||
|
setup_requires=['setuptools-odoo'],
|
||||||
|
odoo_addon=True,
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user