[Erp5-report] r12036 - /erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Jan 11 23:02:08 CET 2007
Author: seb
Date: Thu Jan 11 23:02:05 2007
New Revision: 12036
URL: http://svn.erp5.org?rev=12036&view=rev
Log:
add test for new ComplexQuery functionnality
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=12036&r1=12035&r2=12036&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py (original)
+++ erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py Thu Jan 11 23:02:05 2007
@@ -852,7 +852,7 @@
self.getCatalogTool().buildSQLQuery(
sort_on=(('catalog.title', 'descending'),))['order_by_expression'])
- def test__26_SortOnUnknownKeys(self, quiet=quiet, run=run_all_test):
+ def test_26_SortOnUnknownKeys(self, quiet=quiet, run=run_all_test):
if not run: return
if not run: return
if not quiet:
@@ -1264,4 +1264,49 @@
[x.getObject() for x in self.getCatalogTool()(
parent_title=person_module.getTitle())])
-
+ def test_46_QueryAndComplexQuery(self,quiet=quiet, run=1):
+ """
+ """
+ if not run: return
+ if not quiet:
+ message = 'Query And Complex Query'
+ ZopeTestCase._print('\n%s ' % message)
+ LOG('Testing... ',0,message)
+ org_a = self._makeOrganisation(title='abc',description='abc')
+ org_b = self._makeOrganisation(title='bcd',description='bcd')
+ org_c = self._makeOrganisation(title='efg',description='efg')
+ org_e = self._makeOrganisation(title='foo',description='bir')
+ org_f = self._makeOrganisation(title='foo',description='bar')
+
+ from Products.ZSQLCatalog.SQLCatalog import Query,ComplexQuery
+ # title='abc'
+ catalog_kw= {'title':Query(title='abc')}
+ self.failIfDifferentSet([org_a.getPath()],
+ [x.path for x in self.getCatalogTool()(
+ portal_type='Organisation',**catalog_kw)])
+ # title with b and c
+ catalog_kw= {'title':Query(title=['%b%','%c%'],operator='AND')}
+ self.failIfDifferentSet([org_a.getPath(), org_b.getPath()],
+ [x.path for x in self.getCatalogTool()(
+ portal_type='Organisation',**catalog_kw)])
+ # title='bcd' OR description='efg'
+ catalog_kw = {'query':ComplexQuery(Query(title='bcd'),
+ Query(description='efg'),
+ operator='OR')}
+ self.failIfDifferentSet([org_b.getPath(), org_c.getPath()],
+ [x.path for x in self.getCatalogTool()(
+ portal_type='Organisation',**catalog_kw)])
+ # Recursive Complex Query
+ # (title='abc' and description='abc') OR
+ # title='foo' and description='bar'
+ catalog_kw = {'query':ComplexQuery(ComplexQuery(Query(title='abc'),
+ Query(description='abc'),
+ operator='AND'),
+ ComplexQuery(Query(title='foo'),
+ Query(description='bar'),
+ operator='AND'),
+ operator='OR')}
+ self.failIfDifferentSet([org_a.getPath(), org_f.getPath()],
+ [x.path for x in self.getCatalogTool()(
+ portal_type='Organisation',**catalog_kw)])
+
More information about the Erp5-report
mailing list