49 lines
1.9 KiB
Python
49 lines
1.9 KiB
Python
from unittest.mock import patch
|
|
|
|
from odoo.tests import tagged
|
|
|
|
from .common import TestEsEdiTbaiCommonGipuzkoa
|
|
|
|
|
|
@tagged('post_install', '-at_install', 'post_install_l10n')
|
|
class TestSendAndPrintEdiGipuzkoa(TestEsEdiTbaiCommonGipuzkoa):
|
|
|
|
def test_post_and_cancel_tbai_credit_note(self):
|
|
invoice = self._create_posted_invoice()
|
|
invoice_send_wizard = self._get_invoice_send_wizard(invoice)
|
|
|
|
with patch(
|
|
'odoo.addons.l10n_es_edi_tbai.models.l10n_es_edi_tbai_document.requests.Session.request',
|
|
return_value=self.mock_response_post_invoice_success,
|
|
):
|
|
invoice_send_wizard.action_send_and_print()
|
|
|
|
move_reversal = self.env['account.move.reversal']\
|
|
.with_context(active_model="account.move", active_ids=invoice.ids)\
|
|
.create({
|
|
'journal_id': invoice.journal_id.id,
|
|
'l10n_es_tbai_refund_reason': 'R4',
|
|
})
|
|
credit_note_id = move_reversal.refund_moves()['res_id']
|
|
credit_note = self.env['account.move'].browse(credit_note_id)
|
|
credit_note.action_post()
|
|
|
|
self.assertEqual(credit_note.l10n_es_tbai_refund_reason, 'R4')
|
|
|
|
send_wizard = self._get_invoice_send_wizard(credit_note)
|
|
with patch(
|
|
'odoo.addons.l10n_es_edi_tbai.models.l10n_es_edi_tbai_document.requests.Session.request',
|
|
return_value=self.mock_response_post_invoice_success,
|
|
):
|
|
send_wizard.action_send_and_print()
|
|
|
|
self.assertEqual(credit_note.l10n_es_tbai_state, 'sent')
|
|
|
|
with patch(
|
|
'odoo.addons.l10n_es_edi_tbai.models.l10n_es_edi_tbai_document.requests.Session.request',
|
|
return_value=self.mock_response_cancel_invoice_success,
|
|
):
|
|
credit_note.l10n_es_tbai_cancel()
|
|
|
|
self.assertEqual(credit_note.l10n_es_tbai_state, 'cancelled')
|