[Erp5-report] r33290 ivan - /erp5/trunk/products/ERP5OOo/tests/testDms.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Mar 2 16:58:01 CET 2010
Author: ivan
Date: Tue Mar 2 16:57:58 2010
New Revision: 33290
URL: http://svn.erp5.org?rev=33290&view=rev
Log:
Add more search string testing.
Modified:
erp5/trunk/products/ERP5OOo/tests/testDms.py
Modified: erp5/trunk/products/ERP5OOo/tests/testDms.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/testDms.py?rev=33290&r1=33289&r2=33290&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testDms.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/tests/testDms.py [utf8] Tue Mar 2 16:57:58 2010
@@ -834,7 +834,6 @@
portal = self.portal
assemble = portal.Base_assembleSearchString
parse = portal.Base_parseSearchString
- search = portal.Base_getAdvancedSearchResultList
# directly pasing searchable string
self.assertEquals('searchable text',
@@ -981,6 +980,107 @@
self.assertEquals(kw['mine'], parsed_string['mine'])
self.assertEquals(kw['newest'], parsed_string['newest'])
self.assertEquals('boolean', parsed_string['mode'])
+
+ def test_11_SearchStringSearchCapability(self, quiet=QUIET, run=RUN_ALL_TEST):
+ """
+ Test search string search search capabilities.
+ """
+ if not run: return
+
+ portal = self.portal
+ assemble = portal.Base_assembleSearchString
+ search = portal.Base_getAdvancedSearchResultList
+
+ def getAdvancedSearchStringResultList(**kw):
+ search_string = assemble(**kw)
+ print search_string
+ return [x.getObject() for x in search(search_string)]
+ # create some objects
+ document_1 = portal.document_module.newContent(
+ portal_type = 'File',
+ description = 'standalone software linux python free',
+ version = '001',
+ language = 'en',
+ reference = 'nxd-test-doc-1')
+ document_2 = portal.document_module.newContent(
+ portal_type = 'Presentation',
+ description = 'standalone free python linux knowledge system management',
+ version = '002',
+ language = 'fr',
+ reference = 'nxd-test-doc-2')
+ document_3 = portal.document_module.newContent(
+ portal_type = 'Presentation',
+ description = 'just a copy',
+ version = '003',
+ language = 'en',
+ reference = 'nxd-test-doc-2')
+ web_page_1 = portal.web_page_module.newContent(
+ portal_type = 'Web Page',
+ text_content = 'software based solutions document management product standalone',
+ version = '003',
+ language = 'jp',
+ reference = 'nxd-test-web-page-3')
+ self.stepTic()
+
+ # search arbitrary word
+ kw = {'searchabletext_any': 'software'}
+ self.assertSameSet([document_1,web_page_1], getAdvancedSearchStringResultList(**kw))
+
+ # exact word search
+ kw = {'searchabletext_any': '',
+ 'searchabletext_phrase': 'linux python'}
+ self.assertSameSet([document_1], getAdvancedSearchStringResultList(**kw))
+ kw = {'searchabletext_any': '',
+ 'searchabletext_phrase': 'python linux'}
+ self.assertSameSet([document_2], getAdvancedSearchStringResultList(**kw))
+ kw = {'searchabletext_any': '',
+ 'searchabletext_phrase': 'python linux knowledge system'}
+ self.assertSameSet([document_2], getAdvancedSearchStringResultList(**kw))
+
+ # search "with all of the words" - each word prefixed by "+"
+ kw = {'searchabletext_any': 'standalone',
+ 'searchabletext_all': 'python'}
+ self.assertSameSet([document_1, document_2], getAdvancedSearchStringResultList(**kw))
+
+ # search without these words - every word prefixed by "-"
+ kw = {'searchabletext_any': 'standalone',
+ 'searchabletext_without': 'python'}
+ self.assertSameSet([web_page_1], getAdvancedSearchStringResultList(**kw))
+
+ # only given portal_types - add "type:Type" or type:(Type1,Type2...)
+ kw = {'searchabletext_any': 'python',
+ 'search_portal_type': 'Presentation'}
+ self.assertSameSet([document_2], getAdvancedSearchStringResultList(**kw))
+
+ # search by reference
+ kw = {'searchabletext_any': '',
+ 'reference': document_2.getReference()}
+ self.assertSameSet([document_2, document_3], getAdvancedSearchStringResultList(**kw))
+ kw = {'searchabletext_any': 'copy',
+ 'reference': document_2.getReference()}
+ self.assertSameSet([document_3], getAdvancedSearchStringResultList(**kw))
+
+ # search by version
+ kw = {'searchabletext_any': '',
+ 'reference': document_2.getReference(),
+ 'version': document_2.getVersion()}
+ self.assertSameSet([document_2], getAdvancedSearchStringResultList(**kw))
+
+ # search by language
+ kw = {'searchabletext_any': '',
+ 'reference': document_2.getReference(),
+ 'language': document_2.getLanguage()}
+ self.assertSameSet([document_2], getAdvancedSearchStringResultList(**kw))
+ kw = {'searchabletext_any': '',
+ 'reference': document_2.getReference(),
+ 'language': document_3.getLanguage()}
+ self.assertSameSet([document_3], getAdvancedSearchStringResultList(**kw))
+
+ # XXX: only my docs
+ # XXX: only newest versions
+ # XXX: search mode
+ # XXX: search limited to a certain date range
+ # XXX: contributor title search
def test_PDFTextContent(self):
upload_file = makeFileUpload('REF-en-001.pdf')
More information about the Erp5-report
mailing list