[Erp5-report] r35567 fabien - /erp5/trunk/products/ERP5/tests/testPredicate.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon May 24 15:18:17 CEST 2010


Author: fabien
Date: Mon May 24 15:18:16 2010
New Revision: 35567

URL: http://svn.erp5.org?rev=35567&view=rev
Log:
check that it's possible to use parameter to filter searchResult results
(before your filters where erased by filter determined by the predicate)

Modified:
    erp5/trunk/products/ERP5/tests/testPredicate.py

Modified: erp5/trunk/products/ERP5/tests/testPredicate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testPredicate.py?rev=35567&r1=35566&r2=35567&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testPredicate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testPredicate.py [utf8] Mon May 24 15:18:16 2010
@@ -553,6 +553,42 @@
       )
     self.assert_(test(predicate_with_membership_values.searchResults))
 
+  def test_searchResultsWithParameters(self):
+    """
+    Check that we can restrict filter used by predicate passing parameters to
+    searchResults.
+    """
+    # create one person and one organisation
+    person_module = self.portal.getDefaultModule('Person')
+    fabien = person_module.newContent(title='Fabien')
+    organisation_module = self.portal.getDefaultModule('Organisation')
+    nexedi = organisation_module.newContent(title='Nexedi')
+
+    predicate = self.createPredicate(criterion_property_list=['portal_type'])
+    predicate.setCriterion('portal_type', ['Person', 'Organisation'])
+    transaction.commit()
+    self.tic()
+
+    # check that if we define the same filter than on predicate we get same result
+    self.assertEquals(len(predicate.searchResults()), 2)
+    self.assertSameSet(set([x.getObject() for x in predicate.searchResults(portal_type=['Person',
+    'Organisation'])]), set([fabien, nexedi]))
+
+    # check that it's possible to filter results
+    self.assertEquals([x.getObject() for x in \
+      predicate.searchResults(portal_type='Person')], [fabien])
+    self.assertEquals([x.getObject() for x in \
+        predicate.searchResults(portal_type='Organisation')], [nexedi])
+
+    # check that if the filter define more properties, we cannot have more than
+    # the one defined on the predicate
+    currency_module = self.portal.getDefaultModule('Currency')
+    euro = currency_module.newContent(title='euro')
+
+    self.assertSameSet(set([x.getObject() for x in predicate.searchResults(portal_type=['Person',
+    'Organisation'])]), set([fabien, nexedi]))
+
+
 # TODO :
 #  multi membership category
 #  asPredicate scripts




More information about the Erp5-report mailing list