diff --git a/base_vat_optional_vies/__manifest__.py b/base_vat_optional_vies/__manifest__.py index 9f07ff52f..3201f0734 100644 --- a/base_vat_optional_vies/__manifest__.py +++ b/base_vat_optional_vies/__manifest__.py @@ -11,7 +11,7 @@ 'base_vat', ], 'external_dependencies': { - 'python': ['vatnumber'], + 'python': ['stdnum'], }, 'data': [ 'views/res_partner_view.xml', diff --git a/base_vat_optional_vies/models/res_partner.py b/base_vat_optional_vies/models/res_partner.py index 7e1800d13..fb15d0361 100644 --- a/base_vat_optional_vies/models/res_partner.py +++ b/base_vat_optional_vies/models/res_partner.py @@ -34,7 +34,7 @@ class ResPartner(models.Model): return self.simple_vat_check(country_code, vat_number) return res - @api.constrains('vat') + @api.constrains("vat", "country_id") def check_vat(self): for partner in self: partner = partner.with_context(vat_partner=partner) diff --git a/base_vat_optional_vies/tests/test_res_partner.py b/base_vat_optional_vies/tests/test_res_partner.py index 09430fafb..b12a8f593 100644 --- a/base_vat_optional_vies/tests/test_res_partner.py +++ b/base_vat_optional_vies/tests/test_res_partner.py @@ -4,6 +4,9 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). import mock from odoo.tests import common +from odoo.tools import mute_logger + +MOCK_PATH = "odoo.addons.base_vat.models.res_partner.check_vies" class TestResPartner(common.TransactionCase): @@ -11,27 +14,28 @@ class TestResPartner(common.TransactionCase): super(TestResPartner, self).setUp() self.company = self.env.user.company_id self.company.vat_check_vies = True - self.partner = self.env['res.partner'].create({ - 'name': 'Test partner', - }) - self.vatnumber_path = ( - 'odoo.addons.base_vat.models.res_partner.vatnumber' + self.partner = self.env["res.partner"].create( + { + "name": "Test partner", + "country_id": self.ref("base.es"), + } ) def test_validate_vat_vies(self): - with mock.patch(self.vatnumber_path) as mock_vatnumber: - mock_vatnumber.check_vies.return_value = True - self.partner.vat = 'ESB87530432' + with mock.patch(MOCK_PATH, return_value={"valid": True}) as mocker: + self.partner.write({"vat": "ESB87530432"}) self.assertEqual(self.partner.vies_passed, True) + mocker.assert_called_once_with("ESB87530432") + @mute_logger("odoo.addons.base_vat.models.res_partner") def test_exception_vat_vies(self): - with mock.patch(self.vatnumber_path) as mock_vatnumber: - mock_vatnumber.check_vies.side_effect = Exception() - self.partner.vat = 'ESB87530432' + with mock.patch(MOCK_PATH, side_effect=Exception) as mocker: + self.partner.write({"vat": "ESB87530432"}) self.assertEqual(self.partner.vies_passed, False) + mocker.assert_called_once_with("ESB87530432") def test_no_validate_vat(self): - with mock.patch(self.vatnumber_path) as mock_vatnumber: - mock_vatnumber.check_vies.return_value = False - self.partner.vat = 'ESB87530432' + with mock.patch(MOCK_PATH, return_value={"valid": False}) as mocker: + self.partner.write({"vat": "ESB87530432"}) self.assertEqual(self.partner.vies_passed, False) + mocker.assert_called_once_with("ESB87530432") diff --git a/requirements.txt b/requirements.txt index 3320bd2c3..f5eee12e2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ # generated from manifests external_dependencies numpy -vatnumber +python-stdnum