[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