[Erp5-report] r35475 luke - /erp5/trunk/products/ERP5Security/tests/testERP5Security.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu May 20 13:07:09 CEST 2010


Author: luke
Date: Thu May 20 13:07:07 2010
New Revision: 35475

URL: http://svn.erp5.org?rev=35475&view=rev
Log:
 - check how cloning is impacting local roles

Modified:
    erp5/trunk/products/ERP5Security/tests/testERP5Security.py

Modified: erp5/trunk/products/ERP5Security/tests/testERP5Security.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Security/tests/testERP5Security.py?rev=35475&r1=35474&r2=35475&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Security/tests/testERP5Security.py [utf8] (original)
+++ erp5/trunk/products/ERP5Security/tests/testERP5Security.py [utf8] Thu May 20 13:07:07 2010
@@ -32,6 +32,7 @@
 
 import unittest
 import transaction
+import uuid
 
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase,\
                                                      get_request
@@ -668,6 +669,56 @@
     self.assertEqual(response.getStatus(), 200)
     self.assertTrue(reference in response.getBody())
 
+  def _createZodbUser(self, login, role_list=None):
+    if role_list is None:
+      role_list = ['Member', 'Assignee', 'Assignor', 'Author', 'Auditor',
+          'Associate']
+    uf = self.portal.acl_users
+    uf._doAddUser(login, '', role_list, [])
+
+  def test_owner_local_role_on_clone(self):
+    # check that tested stuff is ok
+    parent_type = 'Person'
+    acquiring_type = 'Email'
+    self.assertEquals(self.portal.portal_types[acquiring_type].acquire_local_roles, 1)
+    self.assertEquals(self.portal.portal_types[parent_type].acquire_local_roles, 0)
+
+    original_owner_id = str(uuid.uuid4())
+    cloning_owner_id = str(uuid.uuid4())
+    self._createZodbUser(original_owner_id)
+    self._createZodbUser(cloning_owner_id)
+    transaction.commit()
+    module = self.portal.getDefaultModule(portal_type=parent_type)
+    self.login(original_owner_id)
+    document = module.newContent(portal_type=parent_type)
+    subdocument = document.newContent(portal_type=acquiring_type)
+    self.stepTic()
+    self.login(cloning_owner_id)
+    cloned_document = document.Base_createCloneDocument(batch_mode=1)
+    self.stepTic()
+    self.login()
+    self.assertEqual(1, len(document.contentValues()))
+    self.assertEqual(1, len(cloned_document.contentValues()))
+    cloned_subdocument = cloned_document.contentValues()[0]
+    # real assertions
+    # roles on original document
+    self.assertEqual(
+        document.get_local_roles(),
+        (((original_owner_id), ('Owner',)),)
+    )
+    self.assertEqual(
+        subdocument.get_local_roles(),
+        (((original_owner_id), ('Owner',)),)
+    )
+
+    self.assertEqual(
+        cloned_document.get_local_roles(),
+        (((cloning_owner_id), ('Owner',)),)
+    )
+    self.assertEqual(
+        subdocument.get_local_roles(),
+        (((cloning_owner_id), ('Owner',)),)
+    )
 
 def test_suite():
   suite = unittest.TestSuite()




More information about the Erp5-report mailing list