2
0
account-financial-tools/account_move_line_tax_editable/tests/test_account_move_line_tax_editable.py

90 lines
3.0 KiB
Python

# Copyright 2019 Tecnativa - Ernesto Tejeda
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import odoo.tests.common as common
from odoo import fields
class TestAccountMoveLineTaxEditable(common.SavepointCase):
@classmethod
def setUpClass(cls):
super(TestAccountMoveLineTaxEditable, cls).setUpClass()
acc_obj = cls.env["account.account"]
account100 = acc_obj.create(
{
"code": "100",
"name": "Account 100",
"user_type_id": cls.env.ref("account.data_account_type_receivable").id,
"reconcile": True,
}
)
account300 = acc_obj.create(
{
"code": "300",
"name": "Account 300",
"user_type_id": cls.env.ref(
"account.data_account_type_other_income"
).id,
}
)
journal = cls.env["account.journal"].create(
{"name": "Test journal", "type": "sale", "code": "TEST"}
)
move_vals = {
"journal_id": journal.id,
"name": "move test",
"date": fields.Date.today(),
"line_ids": [
(
0,
0,
{
"name": "move test line 1",
"debit": 0.0,
"credit": 1000.0,
"account_id": account300.id,
},
),
(
0,
0,
{
"name": "move test line 2",
"debit": 1000.0,
"credit": 0.0,
"account_id": account100.id,
},
),
],
}
cls.move = cls.env["account.move"].create(move_vals)
cls.tax15 = cls.env["account.tax"].create(
{
"name": "Test tax 15",
"amount": 15,
}
)
def test_compute_is_tax_editable(self):
self.assertEqual(self.move.line_ids.mapped("is_tax_editable"), [True, True])
self.move.action_post()
self.assertEqual(self.move.line_ids.mapped("is_tax_editable"), [False, False])
def test_tax_edited(self):
line1 = self.move.line_ids[0]
line1.tax_line_id = self.tax15.id
line2 = self.move.line_ids[1]
self.move.action_post()
self.assertEqual(line1.tax_line_id.id, self.tax15.id)
self.assertEqual(line2.tax_line_id.id, False)
self.assertEqual(line1.tax_repartition_line_id.tax_id.id, self.tax15.id)
def test_tax_not_edited(self):
"""In this case we set the tax_repartition_line_id field, simulating that the
move came from an invoice with tax applied. Thus, tax_line_id should be computed"""
line1 = self.move.line_ids[1]
line1.tax_repartition_line_id = self.tax15.invoice_repartition_line_ids[1]
self.assertEqual(line1.tax_line_id.id, self.tax15.id)