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.

81 lines
2.7 KiB

  1. # -*- coding: utf-8 -*-
  2. # Copyright 2016 Acsone S.A.
  3. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
  4. from odoo.exceptions import ValidationError
  5. from odoo.tests.common import SavepointCase
  6. class TestGLN(SavepointCase):
  7. def setUp(cls):
  8. super(TestGLN, cls).setUp()
  9. cls.partner = cls.env['res.partner'].create({'name': 'TestGLN'})
  10. cls.partner2 = cls.env['res.partner'].create({'name': 'TestGLN2'})
  11. pc = cls.env.ref('partner_identification_gln.'
  12. 'partner_identification_gln_number_category')
  13. cls.partner_id_category = pc
  14. pc_gcp = cls.env.ref('partner_identification_gln.'
  15. 'partner_identification_gcp_number_category')
  16. cls.partner_id_gcp_category = pc_gcp
  17. def test_gln(self):
  18. # Good GLN
  19. vals = {'name': '5450534005852',
  20. 'category_id': self.partner_id_category.id
  21. }
  22. self.partner.write({'id_numbers': [(0, 0, vals)]})
  23. id_number = self.partner.id_numbers[0]
  24. self.assertEqual(id_number.name, '5450534005852')
  25. # Duplicate GLN
  26. vals = {'name': '5450534005852',
  27. 'category_id': self.partner_id_category.id
  28. }
  29. with self.assertRaises(ValidationError):
  30. self.partner2.write({'id_numbers': [(0, 0, vals)]})
  31. # Bad GLN
  32. vals = {'name': '5450534001716',
  33. 'category_id': self.partner_id_category.id
  34. }
  35. with self.assertRaises(ValidationError):
  36. self.partner.write({'id_numbers': [(0, 0, vals)]})
  37. def test_gln_with_no_number(self):
  38. self.assertFalse(
  39. self.partner_id_category.validate_res_partner_gln(id_number=None))
  40. def test_gcp(self):
  41. # Good GLN
  42. vals = {'name': '545053',
  43. 'category_id': self.partner_id_gcp_category.id
  44. }
  45. self.partner.write({'id_numbers': [(0, 0, vals)]})
  46. id_number = self.partner.id_numbers[0]
  47. self.assertEqual(id_number.name, '545053')
  48. # Duplicate GLN
  49. vals = {'name': '545053',
  50. 'category_id': self.partner_id_gcp_category.id
  51. }
  52. with self.assertRaises(ValidationError):
  53. self.partner2.write({'id_numbers': [(0, 0, vals)]})
  54. # Bad GLN
  55. vals = {'name': '5450534001716',
  56. 'category_id': self.partner_id_gcp_category.id
  57. }
  58. with self.assertRaises(ValidationError):
  59. self.partner.write({'id_numbers': [(0, 0, vals)]})
  60. def test_gcp_with_no_number(self):
  61. self.assertFalse(
  62. self.partner_id_gcp_category.validate_res_partner_gln(
  63. id_number=None))