You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.7 KiB
80 lines
2.7 KiB
# Copyright 2016 Acsone S.A.
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo.exceptions import ValidationError
|
|
from odoo.tests.common import SavepointCase
|
|
|
|
|
|
class TestGLN(SavepointCase):
|
|
|
|
def setUp(cls):
|
|
super(TestGLN, cls).setUp()
|
|
cls.partner = cls.env['res.partner'].create({'name': 'TestGLN'})
|
|
cls.partner2 = cls.env['res.partner'].create({'name': 'TestGLN2'})
|
|
pc = cls.env.ref('partner_identification_gln.'
|
|
'partner_identification_gln_number_category')
|
|
cls.partner_id_category = pc
|
|
|
|
pc_gcp = cls.env.ref('partner_identification_gln.'
|
|
'partner_identification_gcp_number_category')
|
|
cls.partner_id_gcp_category = pc_gcp
|
|
|
|
def test_gln(self):
|
|
# Good GLN
|
|
vals = {'name': '5450534005852',
|
|
'category_id': self.partner_id_category.id
|
|
}
|
|
|
|
self.partner.write({'id_numbers': [(0, 0, vals)]})
|
|
id_number = self.partner.id_numbers[0]
|
|
|
|
self.assertEqual(id_number.name, '5450534005852')
|
|
|
|
# Duplicate GLN
|
|
vals = {'name': '5450534005852',
|
|
'category_id': self.partner_id_category.id
|
|
}
|
|
|
|
with self.assertRaises(ValidationError):
|
|
self.partner2.write({'id_numbers': [(0, 0, vals)]})
|
|
|
|
# Bad GLN
|
|
vals = {'name': '5450534001716',
|
|
'category_id': self.partner_id_category.id
|
|
}
|
|
with self.assertRaises(ValidationError):
|
|
self.partner.write({'id_numbers': [(0, 0, vals)]})
|
|
|
|
def test_gln_with_no_number(self):
|
|
self.assertFalse(
|
|
self.partner_id_category.validate_res_partner_gln(id_number=None))
|
|
|
|
def test_gcp(self):
|
|
# Good GLN
|
|
vals = {'name': '545053',
|
|
'category_id': self.partner_id_gcp_category.id
|
|
}
|
|
self.partner.write({'id_numbers': [(0, 0, vals)]})
|
|
id_number = self.partner.id_numbers[0]
|
|
|
|
self.assertEqual(id_number.name, '545053')
|
|
|
|
# Duplicate GLN
|
|
vals = {'name': '545053',
|
|
'category_id': self.partner_id_gcp_category.id
|
|
}
|
|
|
|
with self.assertRaises(ValidationError):
|
|
self.partner2.write({'id_numbers': [(0, 0, vals)]})
|
|
|
|
# Bad GLN
|
|
vals = {'name': '5450534001716',
|
|
'category_id': self.partner_id_gcp_category.id
|
|
}
|
|
with self.assertRaises(ValidationError):
|
|
self.partner.write({'id_numbers': [(0, 0, vals)]})
|
|
|
|
def test_gcp_with_no_number(self):
|
|
self.assertFalse(
|
|
self.partner_id_gcp_category.validate_res_partner_gln(
|
|
id_number=None))
|