You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
6.2 KiB
157 lines
6.2 KiB
# Copyright 2020 Florent de Labarre
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
|
|
from datetime import datetime
|
|
from unittest import mock
|
|
|
|
from odoo import fields
|
|
from odoo.tests import common
|
|
|
|
_module_ns = "odoo.addons.account_bank_statement_import_online_ponto"
|
|
_provider_class = (
|
|
_module_ns
|
|
+ ".models.online_bank_statement_provider_ponto"
|
|
+ ".OnlineBankStatementProviderPonto"
|
|
)
|
|
|
|
|
|
class TestAccountBankAccountStatementImportOnlineQonto(common.TransactionCase):
|
|
def setUp(self):
|
|
super().setUp()
|
|
|
|
self.now = fields.Datetime.now()
|
|
self.currency_eur = self.env.ref("base.EUR")
|
|
self.currency_usd = self.env.ref("base.USD")
|
|
self.AccountJournal = self.env["account.journal"]
|
|
self.ResPartnerBank = self.env["res.partner.bank"]
|
|
self.OnlineBankStatementProvider = self.env["online.bank.statement.provider"]
|
|
self.AccountBankStatement = self.env["account.bank.statement"]
|
|
self.AccountBankStatementLine = self.env["account.bank.statement.line"]
|
|
|
|
self.bank_account = self.ResPartnerBank.create(
|
|
{
|
|
"acc_number": "FR0214508000302245362775K46",
|
|
"partner_id": self.env.user.company_id.partner_id.id,
|
|
}
|
|
)
|
|
self.journal = self.AccountJournal.create(
|
|
{
|
|
"name": "Bank",
|
|
"type": "bank",
|
|
"code": "BANK",
|
|
"currency_id": self.currency_eur.id,
|
|
"bank_statements_source": "online",
|
|
"online_bank_statement_provider": "ponto",
|
|
"bank_account_id": self.bank_account.id,
|
|
}
|
|
)
|
|
self.provider = self.journal.online_bank_statement_provider_id
|
|
|
|
self.mock_header = lambda: mock.patch(
|
|
_provider_class + "._ponto_header",
|
|
return_value={
|
|
"Accept": "application/json",
|
|
"Authorization": "Bearer --TOKEN--",
|
|
},
|
|
)
|
|
|
|
self.mock_account_ids = lambda: mock.patch(
|
|
_provider_class + "._ponto_get_account_ids",
|
|
return_value={"FR0214508000302245362775K46": "id"},
|
|
)
|
|
self.mock_synchronisation = lambda: mock.patch(
|
|
_provider_class + "._ponto_synchronisation",
|
|
return_value=None,
|
|
)
|
|
|
|
self.mock_transaction = lambda: mock.patch(
|
|
_provider_class + "._ponto_get_transaction",
|
|
return_value=[
|
|
{
|
|
"type": "transaction",
|
|
"relationships": {
|
|
"account": {
|
|
"links": {"related": "https://api.myponto.com/accounts/"},
|
|
"data": {
|
|
"type": "account",
|
|
"id": "fd3d5b1d-fca9-4310-a5c8-76f2a9dc7c75",
|
|
},
|
|
}
|
|
},
|
|
"id": "701ab965-21c4-46ca-b157-306c0646e0e2",
|
|
"attributes": {
|
|
"valueDate": "2019-11-18T00:00:00.000Z",
|
|
"remittanceInformationType": "unstructured",
|
|
"remittanceInformation": "Minima vitae totam!",
|
|
"executionDate": "2019-11-20T00:00:00.000Z",
|
|
"description": "Wire transfer",
|
|
"currency": "EUR",
|
|
"counterpartReference": "BE26089479973169",
|
|
"counterpartName": "Osinski Group",
|
|
"amount": 6.08,
|
|
},
|
|
},
|
|
{
|
|
"type": "transaction",
|
|
"relationships": {
|
|
"account": {
|
|
"links": {"related": "https://api.myponto.com/accounts/"},
|
|
"data": {
|
|
"type": "account",
|
|
"id": "fd3d5b1d-fca9-4310-a5c8-76f2a9dc7c75",
|
|
},
|
|
}
|
|
},
|
|
"id": "9ac50483-16dc-4a82-aa60-df56077405cd",
|
|
"attributes": {
|
|
"valueDate": "2019-11-04T00:00:00.000Z",
|
|
"remittanceInformationType": "unstructured",
|
|
"remittanceInformation": "Quia voluptatem blanditiis.",
|
|
"executionDate": "2019-11-06T00:00:00.000Z",
|
|
"description": "Wire transfer",
|
|
"currency": "EUR",
|
|
"counterpartReference": "BE97201830401438",
|
|
"counterpartName": "Stokes-Miller",
|
|
"amount": 5.48,
|
|
},
|
|
},
|
|
{
|
|
"type": "transaction",
|
|
"relationships": {
|
|
"account": {
|
|
"links": {"related": "https://api.myponto.com/accounts/"},
|
|
"data": {
|
|
"type": "account",
|
|
"id": "fd3d5b1d-fca9-4310-a5c8-76f2a9dc7c75",
|
|
},
|
|
}
|
|
},
|
|
"id": "b21a6c65-1c52-4ba6-8cbc-127d2b2d85ff",
|
|
"attributes": {
|
|
"valueDate": "2019-11-04T00:00:00.000Z",
|
|
"remittanceInformationType": "unstructured",
|
|
"remittanceInformation": "Laboriosam repelo?",
|
|
"executionDate": "2019-11-04T00:00:00.000Z",
|
|
"description": "Wire transfer",
|
|
"currency": "EUR",
|
|
"counterpartReference": "BE10325927501996",
|
|
"counterpartName": "Strosin-Veum",
|
|
"amount": 5.83,
|
|
},
|
|
},
|
|
],
|
|
)
|
|
|
|
def test_ponto(self):
|
|
with (
|
|
self.mock_transaction(),
|
|
self.mock_header(),
|
|
self.mock_synchronisation(),
|
|
self.mock_account_ids()
|
|
):
|
|
lines, statement_values = self.provider._obtain_statement_data(
|
|
datetime(2019, 11, 3),
|
|
datetime(2019, 11, 17),
|
|
)
|
|
|
|
self.assertEqual(len(lines), 3)
|