From 5b729732089dec3cffa5c6f201748d7b527a7e73 Mon Sep 17 00:00:00 2001 From: Sebastien Robin <seb@nexedi.com> Date: Mon, 28 Sep 2009 15:35:47 +0000 Subject: [PATCH] * add unit test to make sure that parenthesis in strings are not a problem for catalog research * As suggested by Vincent, do not make parenthesis a criterion to swith to advanced search. This solve issue when you have documents with such titles : foo (bar) Before, the catalog was looking at title=foo AND title=bar git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@29236 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Catalog/tests/testERP5Catalog.py | 20 +++++++++++++++++++ .../SearchText/AdvancedSearchTextDetector.py | 5 ++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/product/ERP5Catalog/tests/testERP5Catalog.py b/product/ERP5Catalog/tests/testERP5Catalog.py index 46fa34106f..0764bc12dc 100644 --- a/product/ERP5Catalog/tests/testERP5Catalog.py +++ b/product/ERP5Catalog/tests/testERP5Catalog.py @@ -3850,6 +3850,26 @@ VALUES person1.is_indexable = person2.is_indexable = True self.assertRaises(ValueError, portal_catalog.catalogObjectList,[person1, person2]) + def test_SearchFolderWithParenthesis(self, quiet=quiet): + if not quiet: + message = 'Search Folder With Parenthesis' + ZopeTestCase._print('\n%s ' % message) + LOG('Testing... ',0,message) + + person_module = self.getPersonModule() + + # Make sure that the catalog will not split it with such research : + # title=foo AND title=bar + title='foo (bar)' + person = person_module.newContent(portal_type='Person',title=title) + person_id = person.getId() + person.immediateReindexObject() + folder_object_list = [x.getObject().getId() for x in person_module.searchFolder()] + self.assertTrue(person_id in folder_object_list) + folder_object_list = [x.getObject().getId() for x in + person_module.searchFolder(title=title)] + self.assertEquals([person_id],folder_object_list) + def test_suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(TestERP5Catalog)) diff --git a/product/ZSQLCatalog/SearchText/AdvancedSearchTextDetector.py b/product/ZSQLCatalog/SearchText/AdvancedSearchTextDetector.py index bcd7d5673c..b621e6a9db 100644 --- a/product/ZSQLCatalog/SearchText/AdvancedSearchTextDetector.py +++ b/product/ZSQLCatalog/SearchText/AdvancedSearchTextDetector.py @@ -37,7 +37,10 @@ class AdvancedSearchTextDetector(lexer): return t def t_LEFT_PARENTHESE(self, t): - self.found = True + t.type = 'WORD' + return t + + def t_RIGHT_PARENTHESE(self, t): t.type = 'WORD' return t -- 2.30.9