[Erp5-report] r13179 - /erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Mar 2 11:48:31 CET 2007


Author: aurel
Date: Fri Mar  2 11:48:30 2007
New Revision: 13179

URL: http://svn.erp5.org?rev=13179&view=rev
Log:
add uni test for index

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

Modified: erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py?rev=13179&r1=13178&r2=13179&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py (original)
+++ erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py Fri Mar  2 11:48:30 2007
@@ -1438,4 +1438,47 @@
     self.assertEquals(1,
                 ctool.unrestrictedCountResults(title='Object Title')[0][0])
     
-    
+  def test_49_IndexInOrderedSearchFolder(self, quiet=quiet, run=run_all_test):
+    if not run: return
+    if not quiet:
+      message = 'Index In Ordered Search Folder'
+      ZopeTestCase._print('\n%s ' % message)
+      LOG('Testing... ',0,message)
+
+    person_module = self.getPersonModule()
+
+    # Clear catalog
+    portal_catalog = self.getCatalogTool()
+    portal_catalog.manage_catalogClear()
+    catalog = portal_catalog.objectValues()[0]
+
+    person = person_module.newContent(id='a',portal_type='Person',title='a',description='z')
+    person.immediateReindexObject()
+    person = person_module.newContent(id='b',portal_type='Person',title='a',description='y')
+    person.immediateReindexObject()
+    person = person_module.newContent(id='c',portal_type='Person',title='a',description='x')
+    person.immediateReindexObject()
+    index_columns = getattr(catalog, 'sql_catalog_index_on_order_keys', None)
+    self.assertNotEqual(index_columns, None)
+    self.assertEqual(len(index_columns), 0)
+    # Check catalog don't tell to use index if nothing defined
+    sql = person_module.searchFolder(src__=1)
+    self.failUnless('use index' not in sql)
+    sql = person_module.searchFolder(src__=1, sort_on=[('id','ascending')])
+    self.failUnless('use index' not in sql)
+    sql = person_module.searchFolder(src__=1, sort_on=[('title','ascending')])
+    self.failUnless('use index' not in sql)
+    # Defined that catalog must tell to use index when order by catalog.title
+    index_columns = ('catalog.title',)
+    setattr(catalog, 'sql_catalog_index_on_order_keys', index_columns)
+    index_columns = getattr(catalog, 'sql_catalog_index_on_order_keys', None)
+    self.assertNotEqual(index_columns, None)
+    self.assertEqual(len(index_columns), 1)
+    # Check catalog tell to use index only when ordering by catalog.title
+    sql = person_module.searchFolder(src__=1)
+    self.failUnless('use index' not in sql)
+    sql = person_module.searchFolder(src__=1, sort_on=[('id','ascending')])
+    self.failUnless('use index' not in sql)
+    sql = person_module.searchFolder(src__=1, sort_on=[('title','ascending')])
+    self.failUnless('use index' in sql)
+




More information about the Erp5-report mailing list