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.

44 lines
1.6 KiB

  1. # -*- coding: utf-8 -*-
  2. # © 2016 Daniel Reis
  3. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
  4. from openerp.tests.common import TransactionCase, at_install, post_install
  5. @at_install(False)
  6. @post_install(True)
  7. class NameSearchCase(TransactionCase):
  8. def setUp(self):
  9. super(NameSearchCase, self).setUp()
  10. phone_field = self.env.ref('base.field_res_partner_phone')
  11. model_partner = self.env.ref('base.model_res_partner')
  12. model_partner.name_search_ids = phone_field
  13. self.Partner = self.env['res.partner']
  14. self.partner1 = self.Partner.create(
  15. {'name': 'Johann Gambolputty of Ulm',
  16. 'phone': '+351 555 777'})
  17. self.partner2 = self.Partner.create(
  18. {'name': 'Luigi Verconti',
  19. 'phone': '+351 777 555'})
  20. def test_NameSearchSearchWithSpaces(self):
  21. """Name Search Match full string, honoring spaces"""
  22. res = self.Partner.name_search('777 555')
  23. self.assertEqual(res[0][0], self.partner2.id)
  24. def test_NameSearchOrdered(self):
  25. """Name Search Match by words, honoring order"""
  26. res = self.Partner.name_search('johann ulm')
  27. # res is a list of tuples (id, name)
  28. self.assertEqual(res[0][0], self.partner1.id)
  29. def test_NameSearchUnordered(self):
  30. """Name Search Math by unordered words"""
  31. res = self.Partner.name_search('ulm gambol')
  32. self.assertEqual(res[0][0], self.partner1.id)
  33. def test_NameSearchMustMatchAllWords(self):
  34. """Name Search Must Match All Words"""
  35. res = self.Partner.name_search('ulm 555 777')
  36. self.assertFalse(res)