50 lines
2.6 KiB
Python
50 lines
2.6 KiB
Python
import base64
|
|
from unittest.mock import patch
|
|
|
|
from odoo.tests import tagged
|
|
from odoo.tools import file_open
|
|
from odoo.addons.account.tests.common import AccountTestInvoicingCommon
|
|
|
|
|
|
@tagged('post_install_l10n', 'post_install', '-at_install')
|
|
class TestCodabox(AccountTestInvoicingCommon):
|
|
|
|
@classmethod
|
|
@AccountTestInvoicingCommon.setup_country('be')
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
|
|
bank_1, bank_2 = cls.env['res.partner.bank'].create([
|
|
{'acc_number': 'BE33737018595246', 'partner_id': cls.env.company.partner_id.id},
|
|
{'acc_number': 'BE33737018595247', 'partner_id': cls.env.company.partner_id.id},
|
|
])
|
|
cls.bank_journal_1 = cls.company_data['default_journal_bank']
|
|
cls.bank_journal_1.bank_account_id = bank_1
|
|
cls.bank_journal_2 = cls.bank_journal_1.copy({'bank_account_id': bank_2.id})
|
|
with file_open('l10n_be_coda/test_coda_file/Ontvangen_CODA.2013-01-11-18.59.15.txt', 'rb') as coda_file:
|
|
cls.coda_file = base64.b64encode(coda_file.read())
|
|
with file_open('l10n_be_coda/test_coda_file/multi_accounts.COD', 'rb') as coda_file:
|
|
cls.coda_file_multi_accounts = base64.b64encode(coda_file.read())
|
|
|
|
@patch('odoo.addons.l10n_be_codabox.models.account_journal.AccountJournal._l10n_be_codabox_fetch_transactions_from_iap')
|
|
def test_codabox_file_import(self, patched_l10n_be_codabox_fetch_transactions_from_iap):
|
|
patched_l10n_be_codabox_fetch_transactions_from_iap.return_value = [(self.coda_file, b'')]
|
|
self.env.company.l10n_be_codabox_is_connected = True
|
|
self.env['account.journal']._l10n_be_codabox_fetch_coda_transactions(self.env.company)
|
|
imported_statement = self.env['account.bank.statement'].search([('company_id', '=', self.env.company.id)])
|
|
self.assertRecordValues(imported_statement, [{
|
|
'balance_start': 11812.70,
|
|
'balance_end_real': 13646.05,
|
|
}])
|
|
|
|
@patch('odoo.addons.l10n_be_codabox.models.account_journal.AccountJournal._l10n_be_codabox_fetch_transactions_from_iap')
|
|
def test_codabox_multi_accounts(self, patched_l10n_be_codabox_fetch_transactions_from_iap):
|
|
patched_l10n_be_codabox_fetch_transactions_from_iap.return_value = [(self.coda_file_multi_accounts, b'')]
|
|
self.env.company.l10n_be_codabox_is_connected = True
|
|
self.env['account.journal']._l10n_be_codabox_fetch_coda_transactions(self.env.company)
|
|
imported_statement = self.env['account.bank.statement'].search([('company_id', '=', self.env.company.id)])
|
|
self.assertEqual(
|
|
imported_statement.journal_id,
|
|
self.bank_journal_1 + self.bank_journal_2,
|
|
)
|