Merge PR #1841 into 12.0

Signed-off-by rafaelbn
This commit is contained in:
OCA-git-bot
2024-04-09 10:33:39 +00:00
4 changed files with 21 additions and 17 deletions

View File

@@ -11,7 +11,7 @@
'base_vat',
],
'external_dependencies': {
'python': ['vatnumber'],
'python': ['stdnum'],
},
'data': [
'views/res_partner_view.xml',

View File

@@ -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)

View File

@@ -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")

View File

@@ -1,3 +1,3 @@
# generated from manifests external_dependencies
numpy
vatnumber
python-stdnum