82 lines
2.9 KiB
Python
82 lines
2.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
from odoo.exceptions import UserError
|
|
from odoo.tests import Form
|
|
from odoo.tests.common import TransactionCase, tagged
|
|
|
|
|
|
@tagged('post_install_l10n', 'post_install', '-at_install')
|
|
class TestResPartner(TransactionCase):
|
|
|
|
def test_validate_fiscal_code(self):
|
|
valid_codes = [
|
|
"AORTHV05P30V295L",
|
|
"SPDTHB43S93F42VH",
|
|
"MDRTUV99H14X2MNU",
|
|
"XPTDRX73R64YPLUD",
|
|
"LOLXDR40T3MZRTSV",
|
|
"GJTIUG55DLQZRTSS",
|
|
"CDEOTG5PBLQZRTSE",
|
|
"PERTLELPALQZRTSN",
|
|
"IT12345678887",
|
|
"IT12345670546",
|
|
"IT95286931217",
|
|
"IT95867361206",
|
|
"IT94567689990",
|
|
"12345670546",
|
|
"95286931217",
|
|
"95867361206",
|
|
"94567689990",
|
|
]
|
|
|
|
invalid_codes = [
|
|
"AORTHV05P34V295U",
|
|
"SPDTHB43O93F42VH",
|
|
"MDRTUVV9H14X2MNU",
|
|
"XPTDRX73RS4YPLUD",
|
|
"LOLXDRQ0T3QZRTSJ",
|
|
"GJTIUGR5DLQZRTSS",
|
|
"CDEOTG5PBLQZRTSS",
|
|
"PERTLEZPALQZRTSN",
|
|
"IT12345678901",
|
|
"IT12345678885",
|
|
"IT45689349992",
|
|
"IT78239131204",
|
|
"IT45692151219",
|
|
"12345678901",
|
|
"12345678885",
|
|
"45689349992",
|
|
"78239131204",
|
|
"45692151219",
|
|
]
|
|
|
|
partners = self.env['res.partner']
|
|
|
|
for i, code in enumerate(invalid_codes):
|
|
with self.assertRaises(UserError):
|
|
partners += self.env['res.partner'].create({'name': f'partner_{i}', 'l10n_it_codice_fiscale': code})
|
|
|
|
for i, code in enumerate(valid_codes):
|
|
partners += self.env['res.partner'].create({'name': f'partner_{i}', 'l10n_it_codice_fiscale': code})
|
|
|
|
self.assertEqual(len(partners), len(valid_codes))
|
|
|
|
def test_partner_l10n_it_codice_fiscale(self):
|
|
vat_partner = self.env['res.partner'].create({
|
|
'name': 'Customer with VAT',
|
|
})
|
|
|
|
partner_form = Form(vat_partner)
|
|
|
|
partner_form.vat = 'IT12345676017'
|
|
self.assertEqual(partner_form.l10n_it_codice_fiscale, '12345676017', "We give the Parnter a VAT, l10n_it_codice_fiscale is given accordingly")
|
|
|
|
partner_form.country_id = self.env.ref('base.ir')
|
|
self.assertFalse(partner_form.l10n_it_codice_fiscale, "Partner is given Iran as country, l10n_it_codice_fiscale is removed")
|
|
|
|
partner_form.country_id = self.env.ref('base.it')
|
|
self.assertEqual(partner_form.l10n_it_codice_fiscale, '12345676017', "The partner was given the wrong country, we correct it to Italy")
|
|
|
|
partner_form.vat = 'IT12345670017'
|
|
self.assertEqual(partner_form.l10n_it_codice_fiscale, '12345670017', "There was a typo in the VAT, changing it should change l10n_it_codice_fiscale as well")
|