[Erp5-report] r28821 - /erp5/trunk/products/ERP5/tests/testSupply.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Sep 4 11:00:41 CEST 2009
Author: ivan
Date: Fri Sep 4 11:00:35 2009
New Revision: 28821
URL: http://svn.erp5.org?rev=28821&view=rev
Log:
Add a basic security test for Supply predicate.
Modified:
erp5/trunk/products/ERP5/tests/testSupply.py
Modified: erp5/trunk/products/ERP5/tests/testSupply.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testSupply.py?rev=28821&r1=28820&r2=28821&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testSupply.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testSupply.py [utf8] Fri Sep 4 11:00:35 2009
@@ -30,6 +30,7 @@
import transaction
from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
+from AccessControl.SecurityManagement import newSecurityManager
from Products.ERP5Type.tests.utils import reindex
from DateTime import DateTime
@@ -57,6 +58,22 @@
id='testing_folder')
self.folder = self.portal.testing_folder
+ def changeUser(self, user_id):
+ """
+ Change the current user to user_id
+ """
+ user_folder = self.getPortal().acl_users
+ user = user_folder.getUserById(user_id).__of__(user_folder)
+ newSecurityManager(None, user)
+
+ def createTestUser(self, **kw):
+ """
+ """
+ person = self.portal.person_module.newContent(portal_type="Person", **kw)
+ person.validate()
+
+
+
class TestSaleSupply(TestSupplyMixin, ERP5TypeTestCase):
"""
Test Supplies usage
@@ -176,7 +193,40 @@
self.assertEquals(1, len(result) )
result = result[0]
self.assertEquals(result.start_date_range_min, new_date.toZone('UTC'))
-
+
+
+ def test_03_SupplyLineApplied(self, quiet=0, run=run_all_test):
+ """
+ Test supply line being found based on different users and security.
+ XXX: Still incimplete.
+ """
+ if not run: return
+
+ portal = self.portal
+ original_date = DateTime().earliestTime() # lower precision of date
+
+ # clean up
+ portal.sale_supply_module.manage_delObjects(list(portal.sale_supply_module.objectIds()))
+ portal.person_module.manage_delObjects(list(portal.person_module.objectIds()))
+ self.stepTic()
+
+ # movement is in middle of timeframe...
+ movement = self._makeMovement(start_date=original_date)
+ supply = self._makeSupply(start_date_range_min=original_date)
+ supply_line = self._makeSupplyLine(supply)
+ self.stepTic()
+
+ user_reference = "dummy_%s" %self.supply_portal_type[:5]
+ self.createTestUser(reference=user_reference)
+ self.stepTic()
+ self.changeUser(user_reference)
+
+ res = self.domain_tool.searchPredicateList(movement,
+ portal_type=self.supply_line_portal_type)
+
+ # ...and predicate shall NOT be found
+ self.assertSameSet([], res)
+
class TestPurchaseSupply(TestSaleSupply):
"""
Test Purchase Supplies usage
More information about the Erp5-report
mailing list