[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