[Erp5-report] r33308 ivan - /erp5/trunk/products/ERP5OOo/tests/testDms.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Mar 3 09:56:06 CET 2010


Author: ivan
Date: Wed Mar  3 09:56:05 2010
New Revision: 33308

URL: http://svn.erp5.org?rev=33308&view=rev
Log:
Extend test to cover more search use cases.

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=33308&r1=33307&r2=33308&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testDms.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/tests/testDms.py [utf8] Wed Mar  3 09:56:05 2010
@@ -994,6 +994,7 @@
     def getAdvancedSearchStringResultList(**kw):
       search_string = assemble(**kw)
       return [x.getObject() for x in search(search_string)]
+
     # create some objects
     document_1 = portal.document_module.newContent(
                    portal_type = 'File',
@@ -1003,7 +1004,7 @@
                    reference = 'nxd-test-doc-1')
     document_2 = portal.document_module.newContent(
                    portal_type = 'Presentation',
-                   description = 'standalone free python linux knowledge system management',
+                   description = 'standalone free python linux knowledge system management different',
                    version = '002',
                    language = 'fr',
                    reference = 'nxd-test-doc-2')
@@ -1013,24 +1014,57 @@
                    version = '003',
                    language = 'en',
                    reference = 'nxd-test-doc-2')
+    # multiple revisions of a Web Page
     web_page_1 = portal.web_page_module.newContent(
                    portal_type = 'Web Page',
-                   text_content = 'software based solutions document management product standalone',
+                   text_content = 'software based solutions document management product standalone owner different',
                    version = '003',
                    language = 'jp',
                    reference = 'nxd-test-web-page-3')
+    web_page_2 = portal.web_page_module.newContent(
+                   portal_type = 'Web Page',
+                   text_content = 'new revision (004) of nxd-test-web-page-3',
+                   version = '004',
+                   language = 'jp',
+                   reference = 'nxd-test-web-page-3')
+    web_page_3 = portal.web_page_module.newContent(
+                   portal_type = 'Web Page',
+                   text_content = 'new revision (005) of nxd-test-web-page-3',
+                   version = '005',
+                   language = 'jp',
+                   reference = 'nxd-test-web-page-3')
+    # publish documents so we can test searching within owned documents for an user
+    for document in (document_1, document_2, document_3, web_page_1, web_page_2, web_page_3):
+      document.publish()
+    # create test Person objects and add pseudo local security
+    person1 =  self.createUser(reference='user1')
+    person1.setTitle('Another Contributor')
+    portal.document_module.manage_setLocalRoles('user1', ['Assignor',])
     self.stepTic()
+
+    # login as another user
+    ERP5TypeTestCase.login(self, 'user1')
+    document_4 = portal.document_module.newContent(
+                   portal_type = 'Presentation',
+                   description = 'owner different user contributing document',
+                   version = '003',
+                   language = 'bg',
+                   reference = 'tlv-test-doc-1')
+    contributor_list = document_4.getContributorValueList()
+    contributor_list.append(person1)
+    document_4.setContributorValueList(contributor_list)
+    document_4.publish()
+    self.stepTic()
+    self.login()
 
     # 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'}
+    kw = {'searchabletext_phrase': 'linux python'}
     self.assertSameSet([document_1], getAdvancedSearchStringResultList(**kw))
-    kw = {'searchabletext_any': '',
-          'searchabletext_phrase': 'python linux'}
+    kw = {'searchabletext_phrase': 'python linux'}
     self.assertSameSet([document_2], getAdvancedSearchStringResultList(**kw))
     kw = {'searchabletext_any': '',
           'searchabletext_phrase': 'python linux knowledge system'}
@@ -1058,8 +1092,7 @@
     self.assertSameSet([], getAdvancedSearchStringResultList(**kw))
    
     # search by reference
-    kw = {'searchabletext_any': '',
-          'reference': document_2.getReference()}
+    kw = {'reference': document_2.getReference()}
     self.assertSameSet([document_2, document_3], getAdvancedSearchStringResultList(**kw))
     kw = {'searchabletext_any': 'copy',
           'reference': document_2.getReference()}
@@ -1070,36 +1103,56 @@
     self.assertSameSet([], getAdvancedSearchStringResultList(**kw))
   
     # search by version
-    kw = {'searchabletext_any': '',
-          'reference': document_2.getReference(),
+    kw = {'reference': document_2.getReference(),
           'version': document_2.getVersion()}
     self.assertSameSet([document_2], getAdvancedSearchStringResultList(**kw))
-    kw = {'searchabletext_any': '',
-          'reference': document_2.getReference(),
+    kw = {'reference': document_2.getReference(),
           'version': document_2.getVersion(),
           'search_portal_type': 'File'}
     self.assertSameSet([], getAdvancedSearchStringResultList(**kw))
    
     # search by language
-    kw = {'searchabletext_any': '',
-          'reference': document_2.getReference(),
+    kw = {'reference': document_2.getReference(),
           'language': document_2.getLanguage()}
     self.assertSameSet([document_2], getAdvancedSearchStringResultList(**kw))
-    kw = {'searchabletext_any': '',
-          'reference': document_2.getReference(),
+    kw = {'reference': document_2.getReference(),
           'language': document_3.getLanguage()}
     self.assertSameSet([document_3], getAdvancedSearchStringResultList(**kw))
-    kw = {'searchabletext_any': '',
-          'reference': document_2.getReference(),
+    kw = {'reference': document_2.getReference(),
           'language': document_3.getLanguage(),
-	  'search_portal_type': 'File'}
+          'search_portal_type': 'File'}
     self.assertSameSet([], getAdvancedSearchStringResultList(**kw))
   
-    # XXX: only my docs
-    # XXX: only newest versions
+    # only my docs
+    ERP5TypeTestCase.login(self, 'user1')
+    kw = {'searchabletext_any': 'owner'}
+    # should return all documents matching a word no matter if we're owner or not
+    self.assertSameSet([web_page_1, document_4], getAdvancedSearchStringResultList(**kw))
+    kw = {'searchabletext_any': 'owner',
+          'mine': 'yes'}
+    # should return ONLY our own documents matching a word
+    self.assertSameSet([document_4], getAdvancedSearchStringResultList(**kw))
+    self.login()
+    
+    # only newest versions
+    # should return ALL documents for a reference
+    kw = {'reference': web_page_1.getReference()}
+    self.assertSameSet([web_page_1, web_page_2, web_page_3], getAdvancedSearchStringResultList(**kw))
+    # should return ONLY newest document for a reference
+    kw = {'reference': web_page_1.getReference(),
+          'newest': 'yes'}
+    self.assertSameSet([web_page_3], getAdvancedSearchStringResultList(**kw))
+
+    # contributor title search
+    kw = {'searchabletext_any': 'owner'}
+    # should return all documents matching a word no matter of contributor
+    self.assertSameSet([web_page_1, document_4], getAdvancedSearchStringResultList(**kw))
+    kw = {'searchabletext_any': 'owner',
+          'contributor_title': '%Contributor%'}
+    self.assertSameSet([document_4], getAdvancedSearchStringResultList(**kw))
+    # XXX: search limited to a certain date range
     # 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')
@@ -1316,7 +1369,7 @@
     portal = self.portal
     document_module = portal.document_module
 
-    # create Person objects and add preudo local security
+    # create Person objects and add pseudo local security
     person1 =  self.createUser(reference='user1')
     document_module.manage_setLocalRoles('user1', ['Assignor',])
     person2 =  self.createUser(reference='user2')




More information about the Erp5-report mailing list