2017-06-23 19:53:23 +02:00
|
|
|
# Copyright 2015 Tecnativa - Antonio Espinosa
|
|
|
|
# Copyright 2016 Tecnativa - Sergio Teruel
|
|
|
|
# Copyright 2017 Tecnativa - David Vidal
|
2022-06-06 19:03:27 +02:00
|
|
|
# Copyright 2022 Moduon - Eduardo de Miguel
|
2020-05-09 19:29:26 +02:00
|
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
2022-01-03 16:39:39 +01:00
|
|
|
|
2017-06-23 19:53:23 +02:00
|
|
|
import mock
|
2020-05-09 19:29:26 +02:00
|
|
|
|
2022-06-06 19:03:27 +02:00
|
|
|
from odoo.exceptions import ValidationError
|
2017-06-23 19:53:23 +02:00
|
|
|
from odoo.tests import common
|
2015-10-06 11:10:40 +02:00
|
|
|
|
|
|
|
|
2017-06-23 19:53:23 +02:00
|
|
|
class TestResPartner(common.TransactionCase):
|
2015-10-06 11:10:40 +02:00
|
|
|
def setUp(self):
|
|
|
|
super(TestResPartner, self).setUp()
|
2017-06-23 19:53:23 +02:00
|
|
|
self.company = self.env.user.company_id
|
|
|
|
self.company.vat_check_vies = True
|
2021-12-16 10:56:40 +01:00
|
|
|
self.partner = self.env["res.partner"].create(
|
|
|
|
{"name": "Test partner", "is_company": True}
|
|
|
|
)
|
2021-07-02 19:16:21 -05:00
|
|
|
self.vatnumber_path = "odoo.addons.base_vat.models.res_partner.check_vies"
|
2015-10-06 11:10:40 +02:00
|
|
|
|
2017-06-23 19:53:23 +02:00
|
|
|
def test_validate_vat_vies(self):
|
|
|
|
with mock.patch(self.vatnumber_path) as mock_vatnumber:
|
|
|
|
mock_vatnumber.check_vies.return_value = True
|
2020-05-09 19:29:26 +02:00
|
|
|
self.partner.vat = "ESB87530432"
|
2021-07-02 19:16:21 -05:00
|
|
|
self.partner.country_id = 20
|
2017-06-23 19:53:23 +02:00
|
|
|
self.assertEqual(self.partner.vies_passed, True)
|
|
|
|
|
|
|
|
def test_exception_vat_vies(self):
|
|
|
|
with mock.patch(self.vatnumber_path) as mock_vatnumber:
|
|
|
|
mock_vatnumber.check_vies.side_effect = Exception()
|
2020-05-09 19:29:26 +02:00
|
|
|
self.partner.vat = "ESB87530432"
|
2017-06-23 19:53:23 +02:00
|
|
|
self.assertEqual(self.partner.vies_passed, False)
|
|
|
|
|
|
|
|
def test_no_validate_vat(self):
|
|
|
|
with mock.patch(self.vatnumber_path) as mock_vatnumber:
|
|
|
|
mock_vatnumber.check_vies.return_value = False
|
2020-05-09 19:29:26 +02:00
|
|
|
self.partner.vat = "ESB87530432"
|
2017-06-23 19:53:23 +02:00
|
|
|
self.assertEqual(self.partner.vies_passed, False)
|
2021-07-02 19:16:21 -05:00
|
|
|
|
|
|
|
def test_validate_simple_vat_vies(self):
|
|
|
|
with mock.patch(self.vatnumber_path) as mock_vatnumber:
|
|
|
|
self.company.vat_check_vies = False
|
|
|
|
mock_vatnumber.check_vies.return_value = False
|
|
|
|
self.partner.vat = "MXGODE561231GR8"
|
|
|
|
self.partner.country_id = 156
|
|
|
|
self.assertEqual(self.partner.vies_passed, False)
|
2022-06-06 19:03:27 +02:00
|
|
|
|
|
|
|
def test_validate_vies_passed_false_when_vat_set_to_false(self):
|
|
|
|
with mock.patch(self.vatnumber_path) as mock_vatnumber:
|
|
|
|
mock_vatnumber.check_vies.return_value = True
|
|
|
|
self.partner.vat = "ESB87530432"
|
|
|
|
self.partner.country_id = 20
|
|
|
|
self.assertEqual(self.partner.vies_passed, True)
|
|
|
|
self.partner.vat = False
|
|
|
|
self.assertEqual(self.partner.vies_passed, False)
|
|
|
|
|
|
|
|
def test_validate_wrong_vat_shows_simple_message(self):
|
|
|
|
with self.assertRaisesRegex(ValidationError, "does not seem to be valid"):
|
|
|
|
self.partner.vat = "ES11111111A"
|
|
|
|
self.partner.country_id = 20
|