[Erp5-report] r13387 - in /erp5/trunk/products/ERP5Catalog: ./ tests/

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Mar 13 09:43:36 CET 2007


Author: jerome
Date: Tue Mar 13 09:43:32 2007
New Revision: 13387

URL: http://svn.erp5.org?rev=13387&view=rev
Log:
allow to specify in CatalogTool the max number of result to retrieve by
default. Use this feature in testERP5Catalog not to have to create more than
1000 documents.

Modified:
    erp5/trunk/products/ERP5Catalog/CatalogTool.py
    erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py

Modified: erp5/trunk/products/ERP5Catalog/CatalogTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Catalog/CatalogTool.py?rev=13387&r1=13386&r2=13387&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Catalog/CatalogTool.py (original)
+++ erp5/trunk/products/ERP5Catalog/CatalogTool.py Tue Mar 13 09:43:32 2007
@@ -72,8 +72,6 @@
   from Products.NuxUserGroups.CatalogToolWithGroups import _getAllowedRolesAndUsers
 except ImportError:
   pass
-
-DEFAULT_RESULT_LIMIT = 1000
 
 def getSecurityProduct(acl_users):
   """returns the security used by the user folder passed.
@@ -183,7 +181,8 @@
     id = 'portal_catalog'
     meta_type = 'ERP5 Catalog'
     security = ClassSecurityInfo()
-
+    default_result_limit = 1000
+    
     manage_options = ( { 'label' : 'Overview', 'action' : 'manage_overview' },
                      ) + ZCatalog.manage_options
 
@@ -511,7 +510,7 @@
             kw[ 'expires'   ] = { 'query' : now, 'range' : 'min' }
 
         query = self.getSecurityQuery(query=query, **kw)
-        kw.setdefault('limit', DEFAULT_RESULT_LIMIT)
+        kw.setdefault('limit', self.default_result_limit)
         return ZCatalog.searchResults(self, query=query, **kw)
 
     __call__ = searchResults
@@ -520,7 +519,7 @@
     def unrestrictedSearchResults(self, REQUEST=None, **kw):
         """Calls ZSQLCatalog.searchResults directly without restrictions.
         """
-        kw.setdefault('limit', DEFAULT_RESULT_LIMIT)
+        kw.setdefault('limit', self.default_result_limit)
         return ZCatalog.searchResults(self, REQUEST, **kw)
 
     # We use a string for permissions here due to circular reference in import
@@ -551,7 +550,7 @@
         #    #kw[ 'expires'   ] = { 'query' : now, 'range' : 'min' }
 
         query = self.getSecurityQuery(query=query, **kw)
-        kw.setdefault('limit', DEFAULT_RESULT_LIMIT)
+        kw.setdefault('limit', self.default_result_limit)
         return ZCatalog.countResults(self, query=query, **kw)
     
     security.declarePrivate('unrestrictedCountResults')

Modified: erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py?rev=13387&r1=13386&r2=13387&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py (original)
+++ erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py Tue Mar 13 09:43:32 2007
@@ -1329,11 +1329,18 @@
       message = 'Test Limit'
       ZopeTestCase._print('\n%s ' % message)
       LOG('Testing... ',0,message)
-    #Create 1002 Organisations
-    for i in xrange(1002):
-      self._makeOrganisation(title='abc%s' % (i),description='abc')
-    self.assertEqual(1000,len(self.getCatalogTool()(portal_type='Organisation')))
-    self.assertEqual(1002,len(self.getCatalogTool()(portal_type='Organisation',limit=None)))
+
+    ctool = self.getCatalogTool()
+    old_default_result_limit = cool.default_result_limit
+    max_ = 10
+    #Create max + 2 Organisations
+    for i in xrange(max_ + 2):
+      self._makeOrganisation(title='abc%s' % (i), description='abc')
+    self.assertEqual(max_,
+                     len(self.getCatalogTool()(portal_type='Organisation')))
+    self.assertEqual(max + 2,
+            len(self.getCatalogTool()(portal_type='Organisation', limit=None)))
+    ctool.default_result_limit = old_default_result_limit
 
   def playActivityList(self, method_id_list):
     get_transaction().commit()




More information about the Erp5-report mailing list