64 lines
2.4 KiB
Python
64 lines
2.4 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from unittest.mock import patch
|
|
from contextlib import contextmanager
|
|
|
|
from odoo.addons.account.tests.common import AccountTestInvoicingCommon
|
|
from odoo.addons.payment.tests.common import PaymentCommon
|
|
|
|
|
|
class AccountPaymentCommon(PaymentCommon, AccountTestInvoicingCommon):
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
with cls.mocked_get_payment_method_information(cls):
|
|
cls.dummy_provider_method = cls.env['account.payment.method'].sudo().create({
|
|
'name': 'Dummy method',
|
|
'code': 'none',
|
|
'payment_type': 'inbound'
|
|
})
|
|
cls.dummy_provider.journal_id = cls.company_data['default_journal_bank']
|
|
|
|
cls.account = cls.outbound_payment_method_line.payment_account_id
|
|
cls.invoice = cls.env['account.move'].create({
|
|
'move_type': 'entry',
|
|
'date': '2019-01-01',
|
|
'currency_id': cls.currency_euro.id,
|
|
'partner_id': cls.partner.id,
|
|
'line_ids': [
|
|
(0, 0, {
|
|
'account_id': cls.account.id,
|
|
'debit': 100.0,
|
|
'credit': 0.0,
|
|
'amount_currency': 200.0,
|
|
}),
|
|
(0, 0, {
|
|
'account_id': cls.account.id,
|
|
'debit': 0.0,
|
|
'credit': 100.0,
|
|
'amount_currency': -200.0,
|
|
}),
|
|
],
|
|
})
|
|
|
|
cls.provider.journal_id.inbound_payment_method_line_ids.filtered(lambda l: l.payment_provider_id == cls.provider).payment_account_id = cls.inbound_payment_method_line.payment_account_id
|
|
|
|
def setUp(self):
|
|
self.enable_post_process_patcher = False
|
|
super().setUp()
|
|
|
|
#=== Utils ===#
|
|
|
|
@contextmanager
|
|
def mocked_get_payment_method_information(self):
|
|
Method_get_payment_method_information = self.env['account.payment.method']._get_payment_method_information
|
|
|
|
def _get_payment_method_information(*args, **kwargs):
|
|
res = Method_get_payment_method_information()
|
|
res['none'] = {'mode': 'electronic', 'type': ('bank',)}
|
|
return res
|
|
|
|
with patch.object(self.env.registry['account.payment.method'], '_get_payment_method_information', _get_payment_method_information):
|
|
yield
|