[Checkins] SVN: Zope/branches/andig-compositeindex/src/Products/PluginIndexes/CompositeIndex/tests/testCompositeIndex.py new test scenario

Andreas Gabriel cvs-admin at zope.org
Fri Aug 24 13:39:51 UTC 2012


Log message for revision 127569:
  new test scenario

Changed:
  U   Zope/branches/andig-compositeindex/src/Products/PluginIndexes/CompositeIndex/tests/testCompositeIndex.py

-=-
Modified: Zope/branches/andig-compositeindex/src/Products/PluginIndexes/CompositeIndex/tests/testCompositeIndex.py
===================================================================
--- Zope/branches/andig-compositeindex/src/Products/PluginIndexes/CompositeIndex/tests/testCompositeIndex.py	2012-08-24 13:36:40 UTC (rev 127568)
+++ Zope/branches/andig-compositeindex/src/Products/PluginIndexes/CompositeIndex/tests/testCompositeIndex.py	2012-08-24 13:39:47 UTC (rev 127569)
@@ -1,6 +1,6 @@
 import unittest
 import Zope2
-Zope2.startup()
+#Zope2.startup()
 
 import string, random
 
@@ -18,21 +18,22 @@
 states = ['published','pending','private','intranet']
 types  = ['Document','News','File','Image']
 default_pages = [True,False,False,False,False,False]
+keywords = map(lambda x: 'subject_%s' % x,range(1,6))
 
-
 class TestObject(object):
 
-    def __init__(self, id, portal_type, review_state,is_default_page=False):
+    def __init__(self, id, portal_type, review_state,is_default_page=False,subject= []):
         self.id = id
         self.portal_type = portal_type
         self.review_state = review_state
         self.is_default_page = is_default_page
+        self.subject=subject
 
     def getPhysicalPath(self):
         return ['',self.id,]
 
     def __repr__(self):
-        return "< %s, %s, %s, %s >" % (self.id,self.portal_type,self.review_state,self.is_default_page)
+        return "< %s, %s, %s, %s, %s >" % (self.id,self.portal_type,self.review_state,self.is_default_page,subject)
         
 class RandomTestObject(TestObject):
 
@@ -47,19 +48,24 @@
         i = random.randint(0,len(default_pages)-1)
         is_default_page = default_pages[i]
         
-        super(RandomTestObject,self).__init__(id,portal_type,review_state,is_default_page)
+        #subject = random.sample(keywords,random.randint(1,int(len(keywords)*0.2)))
+        subject = random.sample(keywords,random.randint(1,len(keywords)))
 
+        super(RandomTestObject,self).__init__(id,portal_type,review_state,is_default_page,subject)
 
+
 class CompositeIndexTests( unittest.TestCase ):
 
     def setUp(self):
 
         self._index = CompositeIndex('comp01',
-                                     extra = [ { 'id': 'is_default_page' ,'type': 'FieldIndex','attributes':''},
-                                               { 'id': 'review_state' ,'type': 'FieldIndex','attributes':''},
-                                               { 'id': 'portal_type' ,'type': 'FieldIndex','attributes':''}])
+                                     extra = [ { 'id': 'is_default_page' ,'meta_type': 'FieldIndex','attributes':''},
+                                               { 'id': 'review_state' ,'meta_type': 'FieldIndex','attributes':''},
+                                               { 'id': 'portal_type' ,'meta_type': 'FieldIndex','attributes':''},
+                                               {'id': 'subject' ,'meta_type': 'KeywordIndex','attributes':''}         
+])
         
-        self._field_indexes = ( FieldIndex('review_state'), FieldIndex('portal_type'), FieldIndex('is_default_page'))
+        self._field_indexes = ( FieldIndex('review_state'), FieldIndex('portal_type'), FieldIndex('is_default_page'),KeywordIndex('subject'))
 
         
 
@@ -109,11 +115,15 @@
 
         queries = [{  'portal_type' : { 'query': 'Document' }} ,
                    {  'portal_type' : { 'query': 'Document' } , 
-                      'review_state' : { 'query': 'pending' } }  ,\
-                   {  'is_default_page': { 'query' : True }, 
+                      'review_state' : { 'query': 'pending' }}  ,\
+                   {  'is_default_page': { 'query' : False }, 
                       'portal_type' : { 'query': 'Document' } , 
-                      'review_state' : { 'query' : 'pending'}}
-                   ]        
+                      'review_state' : { 'query' : 'pending'}},
+                   {  'is_default_page': { 'query' : False },
+                      'portal_type' : { 'query': 'Document' } ,
+                      'review_state' : { 'query' : 'private'},
+                      'subject': { 'query' : ['subject_2','subject_3'] ,'operator': 'or' }},
+                   ]
 
         def profileSearch(*args, **kw):
 
@@ -125,6 +135,7 @@
             st = time()
             res2 = self._compositeSearch(*args, **kw)
             print "composite: %s hits in %3.2fms" % (len(res2), (time() -st)*1000)
+            
 
             self.assertEqual(len(res1),len(res2))
             
@@ -150,16 +161,18 @@
         print "************************************"
 
 
-    def XXXXXXXXXXXXtestSearch(self):
+    def xxxx_testSearch(self):
 
         obj = TestObject('obj1','Document','pending')
-        self.cat.catalog_object(obj)
+        self._populateIndexes(1 , obj)
         
+        
         obj = TestObject('obj2','News','pending')
-        self.cat.catalog_object(obj)
+        self._populateIndexes(2 , obj)
         
+        
         obj = TestObject('obj3','News','visible')
-        self.cat.catalog_object(obj)       
+        self._populateIndexes(3 , obj)
         
         queries = [{ 'review_state': { 'query':'pending'} ,'portal_type' : { 'query': 'Document'} },
                    { 'review_state': { 'query' : ('pending','visible') } , 'portal_type' : { 'query': 'News' }},
@@ -169,8 +182,8 @@
 
         for query in queries:
         
-            res1 = self._defaultSearch(**query)
-            res2 = self._compositeSearch(**query)
+            res1 = self._defaultSearch(query)
+            res2 = self._compositeSearch(query)
 
             self.assertEqual(len(res1),len(res2))
 



More information about the checkins mailing list