[Erp5-report] r21990 - in /erp5/trunk/products/ERP5/tests: testDomainTool.py testPredicate.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Jun 26 18:17:24 CEST 2008
Author: vincent
Date: Thu Jun 26 18:17:18 2008
New Revision: 21990
URL: http://svn.erp5.org?rev=21990&view=rev
Log:
Make testPredicate methods available on testDomainTool (split in 2 classes & make testDomainTool inherit from the MixIn class).
Add a test for searchPredicateList: it must not return predicates which would be possible to filter out from SQL.
Modified:
erp5/trunk/products/ERP5/tests/testDomainTool.py
erp5/trunk/products/ERP5/tests/testPredicate.py
Modified: erp5/trunk/products/ERP5/tests/testDomainTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testDomainTool.py?rev=21990&r1=21989&r2=21990&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testDomainTool.py (original)
+++ erp5/trunk/products/ERP5/tests/testDomainTool.py Thu Jun 26 18:17:18 2008
@@ -28,13 +28,13 @@
import unittest
-from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
+from Products.ERP5.tests.testPredicate import TestPredicateMixIn, REGION_FRANCE_PATH, REGION_GERMANY_PATH, GROUP_STOREVER_PATH, GROUP_OTHER_PATH
from DateTime import DateTime
from AccessControl.SecurityManagement import newSecurityManager
from zLOG import LOG
from Products.ZSQLCatalog.SQLCatalog import Query
-class TestDomainTool(ERP5TypeTestCase):
+class TestDomainTool(TestPredicateMixIn):
# Different variables used for this test
run_all_test = 1
@@ -47,12 +47,6 @@
"""
return "Domain Tool"
- def enableHotReindexing(self):
- """
- You can override this. Return if we should create (1) or not (0) an activity tool
- """
- return 0
-
def getBusinessTemplateList(self):
"""
Return the list of business templates.
@@ -65,15 +59,6 @@
def getResourceModule(self):
return getattr(self.getPortal(), self.resource_module, None)
-
- def afterSetUp(self):
- self.login()
-
- def login(self, quiet=0):
- uf = self.getPortal().acl_users
- uf._doAddUser('seb', '', ['Manager'], [])
- user = uf.getUserById('seb').__of__(uf)
- newSecurityManager(None, user)
def getSaleOrderModule(self):
return getattr(self.getPortal(),'sale_order_module',None)
@@ -410,6 +395,28 @@
'variation/%s/blue' % self.resource.getRelativeUrl()]),
sort_method=sort_method),45)
+ def test_06_SQLQueryDoesNotReturnTooManyPredicates(self, quiet=0, run=run_all_test):
+ if not run: return
+ if not quiet:
+ self.logMessage('Check that SQL query does not return unneeded predicates')
+ predicate_both_match = self.createPredicate(
+ multimembership_criterion_base_category_list=['group', 'region'],
+ membership_criterion_category_list=[GROUP_STOREVER_PATH, REGION_FRANCE_PATH])
+ predicate_one_match = self.createPredicate(
+ multimembership_criterion_base_category_list=['group', 'region'],
+ membership_criterion_category_list=[GROUP_STOREVER_PATH, REGION_GERMANY_PATH])
+ document = self.createDocument(group='nexedi/storever',
+ region='europe/western_europe/france')
+ get_transaction().commit()
+ self.tic()
+ portal_domains = self.getPortalObject().portal_domains
+ # Basic sanity checks
+ self.assertTrue(predicate_both_match.test(document))
+ self.assertFalse(predicate_one_match.test(document))
+ self.assertSameSet(portal_domains.searchPredicateList(document, test=1), [predicate_both_match])
+ # Real test
+ self.assertSameSet(portal_domains.searchPredicateList(document, test=0), [predicate_both_match])
+
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestDomainTool))
Modified: erp5/trunk/products/ERP5/tests/testPredicate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testPredicate.py?rev=21990&r1=21989&r2=21990&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testPredicate.py (original)
+++ erp5/trunk/products/ERP5/tests/testPredicate.py Thu Jun 26 18:17:18 2008
@@ -48,7 +48,7 @@
QUIET = 1
PREDICATE_FOLDER_NAME = "predicate_unit_test_folder"
-class TestPredicates(ERP5TypeTestCase):
+class TestPredicateMixIn(ERP5TypeTestCase):
"""Test Predicates. """
def getTitle(self):
@@ -264,6 +264,8 @@
predicate = sequence.get('predicate')
self.assertFalse(predicate.test(doc))
+class TestPredicates(TestPredicateMixIn):
+
############################################################################
## Test Methods ############################################################
############################################################################
More information about the Erp5-report
mailing list