[Erp5-report] r19415 - /erp5/trunk/products/ERP5/tests/testWorklist.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Feb 19 18:15:29 CET 2008
Author: romain
Date: Tue Feb 19 18:15:29 2008
New Revision: 19415
URL: http://svn.erp5.org?rev=19415&view=rev
Log:
Test worklist generation based on new portal catalog properties.
Modified:
erp5/trunk/products/ERP5/tests/testWorklist.py
Modified: erp5/trunk/products/ERP5/tests/testWorklist.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testWorklist.py?rev=19415&r1=19414&r2=19415&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testWorklist.py (original)
+++ erp5/trunk/products/ERP5/tests/testWorklist.py Tue Feb 19 18:15:29 2008
@@ -397,6 +397,152 @@
self.logout()
+ #
+ # Check monovalued security role
+ #
+ self.login('manager')
+ module = self.getPortal().getDefaultModule(self.checked_portal_type)
+ module.manage_setLocalRoles('bar', ['Author'])
+
+ self.login('bar')
+
+ bar_document = self.createDocument()
+ bar_document.manage_permission('View', ['Owner', 'Assignee'], 0)
+
+ bar_assignee_document = self.createDocument()
+ bar_assignee_document.manage_setLocalRoles('manager', ['Assignee'])
+ bar_assignee_document.manage_permission('View', ['Owner', 'Assignee'], 0)
+
+ self.logout()
+ self.login('manager')
+
+ module.manage_delLocalRoles('bar')
+
+ # User can not see worklist as user can not view the document
+ document.manage_setLocalRoles('manager', ['Owner', 'Assignee'])
+ document.manage_permission('View', [], 0)
+ document.reindexObject()
+ get_transaction().commit()
+ self.tic()
+ self.clearCache()
+ self.logout()
+
+ for user_id in ('manager', ):
+ self.login(user_id)
+ result = workflow_tool.listActions(object=document)
+ self.logMessage("Check %s worklist as Owner" % user_id)
+ entry_list = [x for x in result \
+ if x['name'].startswith(self.actbox_owner_name)]
+ self.assertEquals(len(entry_list), 0)
+ self.logout()
+
+ # User can not see worklist as Owner can not view the document
+ document.manage_setLocalRoles('manager', ['Owner', 'Assignee'])
+ document.manage_permission('View', ['Assignee'], 0)
+ document.reindexObject()
+ get_transaction().commit()
+ self.tic()
+ self.clearCache()
+ self.logout()
+
+ for user_id in ('manager', ):
+ self.login(user_id)
+ result = workflow_tool.listActions(object=document)
+ self.logMessage("Check %s worklist as Owner" % user_id)
+ entry_list = [x for x in result \
+ if x['name'].startswith(self.actbox_owner_name)]
+ self.assertEquals(len(entry_list), 0)
+ self.logout()
+
+ # User can see worklist as Owner can view the document
+ document.manage_permission('View', ['Owner', 'Assignee'], 0)
+ document.reindexObject()
+ get_transaction().commit()
+ self.tic()
+ self.clearCache()
+ self.logout()
+
+ for user_id in ('manager', ):
+ self.login(user_id)
+ result = workflow_tool.listActions(object=document)
+ self.logMessage("Check %s worklist as Owner" % user_id)
+ entry_list = [x for x in result \
+ if x['name'].startswith(self.actbox_owner_name)]
+ self.assertEquals(len(entry_list), 1)
+ self.assertTrue(
+ self.getWorklistDocumentCountFromActionName(entry_list[0]['name']), 1)
+ self.logout()
+
+ # Define a local role key
+ sql_catalog = self.portal.portal_catalog.getSQLCatalog()
+ current_sql_catalog_local_role_keys = \
+ sql_catalog.sql_catalog_local_role_keys
+ sql_catalog.sql_catalog_local_role_keys = ('Owner | owner', )
+ get_transaction().commit()
+ self.portal.portal_caches.clearAllCache()
+
+ try:
+
+ # User can not see worklist as user can not view the document
+ document.manage_setLocalRoles('manager', ['Owner', 'Assignee'])
+ document.manage_permission('View', [], 0)
+ document.reindexObject()
+ get_transaction().commit()
+ self.tic()
+ self.clearCache()
+ self.logout()
+
+ for user_id in ('manager', ):
+ self.login(user_id)
+ result = workflow_tool.listActions(object=document)
+ self.logMessage("Check %s worklist as Owner" % user_id)
+ entry_list = [x for x in result \
+ if x['name'].startswith(self.actbox_owner_name)]
+ self.assertEquals(len(entry_list), 0)
+ self.logout()
+
+ # User can see worklist as Assignee can view the document
+ document.manage_permission('View', ['Assignee'], 0)
+ document.reindexObject()
+ get_transaction().commit()
+ self.tic()
+ self.clearCache()
+ self.logout()
+
+ for user_id in ('manager', ):
+ self.login(user_id)
+ result = workflow_tool.listActions(object=document)
+ self.logMessage("Check %s worklist as Owner" % user_id)
+ entry_list = [x for x in result \
+ if x['name'].startswith(self.actbox_owner_name)]
+ self.assertEquals(len(entry_list), 1)
+ self.assertTrue(
+ self.getWorklistDocumentCountFromActionName(entry_list[0]['name']), 1)
+ self.logout()
+
+ # User can see worklist as Owner can view the document
+ document.manage_permission('View', ['Owner', 'Assignee'], 0)
+ document.reindexObject()
+ get_transaction().commit()
+ self.tic()
+ self.clearCache()
+ self.logout()
+
+ for user_id in ('manager', ):
+ self.login(user_id)
+ result = workflow_tool.listActions(object=document)
+ self.logMessage("Check %s worklist as Owner" % user_id)
+ entry_list = [x for x in result \
+ if x['name'].startswith(self.actbox_owner_name)]
+ self.assertEquals(len(entry_list), 1)
+ self.assertTrue(
+ self.getWorklistDocumentCountFromActionName(entry_list[0]['name']), 1)
+ self.logout()
+ finally:
+ sql_catalog.sql_catalog_local_role_keys = \
+ current_sql_catalog_local_role_keys
+ get_transaction().commit()
+
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestWorklist))
More information about the Erp5-report
mailing list