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.

73 lines
2.5 KiB

  1. # -*- coding: utf-8 -*-
  2. # © 2016 ACSONE SA/NV (<http://acsone.eu>)
  3. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
  4. from psycopg2._psycopg import IntegrityError
  5. import openerp.tests.common as common
  6. from openerp.exceptions import ValidationError
  7. class TestPartnerIdentificationBase(common.TransactionCase):
  8. def test_base_functionalities(self):
  9. """Dummy CRUD test
  10. """
  11. partner_id_category = self.env['res.partner.id_category'].create({
  12. 'code': 'id_code',
  13. 'name': 'id_name',
  14. })
  15. self.assertEqual(partner_id_category.name, 'id_name')
  16. self.assertEqual(partner_id_category.code, 'id_code')
  17. partner_1 = self.env.ref('base.res_partner_1')
  18. self.assertEquals(len(partner_1.id_numbers), 0)
  19. with self.assertRaises(IntegrityError), self.cr.savepoint():
  20. partner_1.id_numbers = [(0, 0, {
  21. 'name': '1234',
  22. })]
  23. partner_1.id_numbers = [(0, 0, {
  24. 'name': '1234',
  25. 'category_id': partner_id_category
  26. })]
  27. self.assertEquals(len(partner_1.id_numbers), 1)
  28. self.assertEquals(partner_1.id_numbers.name, '1234')
  29. class TestPartnerCategoryValidation(common.TransactionCase):
  30. def test_partner_id_number_validation(self):
  31. partner_id_category = self.env['res.partner.id_category'].create({
  32. 'code': 'id_code',
  33. 'name': 'id_name',
  34. 'validation_code': """
  35. if id_number.name != '1234':
  36. failed = True
  37. """
  38. })
  39. partner_1 = self.env.ref('base.res_partner_1')
  40. with self.assertRaises(ValidationError), self.cr.savepoint():
  41. partner_1.id_numbers = [(0, 0, {
  42. 'name': '01234',
  43. 'category_id': partner_id_category
  44. })]
  45. partner_1.id_numbers = [(0, 0, {
  46. 'name': '1234',
  47. 'category_id': partner_id_category
  48. })]
  49. self.assertEquals(len(partner_1.id_numbers), 1)
  50. self.assertEquals(partner_1.id_numbers.name, '1234')
  51. def test_bad_calidation_code(self):
  52. partner_id_category = self.env['res.partner.id_category'].create({
  53. 'code': 'id_code',
  54. 'name': 'id_name',
  55. 'validation_code': """
  56. if id_number.name != '1234' # missing :
  57. failed = True
  58. """
  59. })
  60. partner_1 = self.env.ref('base.res_partner_1')
  61. with self.assertRaises(ValidationError):
  62. partner_1.id_numbers = [(0, 0, {
  63. 'name': '1234',
  64. 'category_id': partner_id_category
  65. })]