[Erp5-report] r27757 - /erp5/trunk/products/ERP5/tests/testWorklist.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Jun 22 18:03:24 CEST 2009
Author: romain
Date: Mon Jun 22 18:03:22 2009
New Revision: 27757
URL: http://svn.erp5.org?rev=27757&view=rev
Log:
Remove created worklist at the end of the test, in order to prevent other tests
to fail.
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=27757&r1=27756&r2=27757&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testWorklist.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testWorklist.py [utf8] Mon Jun 22 18:03:22 2009
@@ -174,6 +174,10 @@
(k.startswith('guard_') and k or 'var_match_'+k, v)
for k, v in kw.iteritems()))
+ def removeWorklist(self, workflow_id, worklist_id_list):
+ worklists = self.getWorkflowTool()[workflow_id].worklists
+ worklists.deleteWorklists(worklist_id_list)
+
def createWorklists(self):
for worklist_id, actbox_name, role, expr, state, int_variable in [
(self.worklist_assignor_id, self.actbox_assignor_name,
@@ -195,6 +199,16 @@
validation_state=state,
**{self.int_catalogued_variable_id: int_variable})
+ def removeWorklists(self):
+ self.removeWorklist(self.checked_workflow, [
+ self.worklist_assignor_id,
+ self.worklist_owner_id,
+ self.worklist_desactivated_id,
+ self.worklist_wrong_state_id,
+ self.worklist_assignor_owner_id,
+ self.worklist_int_variable_id,
+ ])
+
def clearCache(self):
self.portal.portal_caches.clearAllCache()
@@ -222,124 +236,127 @@
self.addWorkflowCataloguedVariable(self.checked_workflow,
self.int_catalogued_variable_id)
self.createWorklists()
- self.logMessage("Create document as Manager")
- document = self.createDocument()
-
- transaction.commit()
- self.tic()
- self.clearCache()
-
- result = workflow_tool.listActions(object=document)
-
- # Users can not see worklist as they are not Assignor
- for user_id in ('manager', ):
- self.login(user_id)
- result = workflow_tool.listActions(object=document)
- self.logMessage("Check %s worklist as Assignor" % user_id)
- self.checkWorklist(result, self.actbox_assignor_name, 0)
- self.logMessage("Check %s worklist as Owner" % user_id)
- self.checkWorklist(result, self.actbox_owner_name, 1)
- for user_id in ('foo', 'bar'):
- self.logMessage("Check %s worklist" % user_id)
- self.login(user_id)
- result = workflow_tool.listActions(object=document)
- self.assertEquals(result, [])
-
- for role, user_id_list in (('Assignor', ('foo', 'manager')),
- ('Assignee', ('foo', 'bar'))):
- self.login('manager')
- for user_id in user_id_list:
- self.logMessage("Give %s %s role" % (user_id, role))
- document.manage_addLocalRoles(user_id, [role])
- document.reindexObject()
+ try:
+ self.logMessage("Create document as Manager")
+ document = self.createDocument()
+
transaction.commit()
self.tic()
self.clearCache()
- for user_id, assignor, owner, both in (('manager', 1, 1, 1),
- ('bar' , 0, 0, 0),
- ('foo' , 1, 0, 1)):
+ result = workflow_tool.listActions(object=document)
+
+ # Users can not see worklist as they are not Assignor
+ for user_id in ('manager', ):
self.login(user_id)
result = workflow_tool.listActions(object=document)
- self.logMessage(" Check %s worklist as Assignor" % user_id)
- self.checkWorklist(result, self.actbox_assignor_name, assignor)
- self.logMessage(" Check %s worklist as Owner" % user_id)
- self.checkWorklist(result, self.actbox_owner_name, owner)
- self.logMessage(" Check %s worklist as Owner and Assignor" % user_id)
- self.checkWorklist(result, self.actbox_assignor_owner_name, both)
-
- # Check if int variable are managed by the worklist
- user_id = 'manager'
- self.login(user_id)
- result = workflow_tool.listActions(object=document)
- self.logMessage("Check %s worklist with int value as %s" % \
- (user_id, self.int_value))
- self.checkWorklist(result, self.actbox_int_variable_name, 1)
-
- # Change int value on document
- new_value = self.int_value + 1
- document.setProperty(self.int_catalogued_variable_id, new_value)
- transaction.commit()
- self.tic()
- self.clearCache()
-
- result = workflow_tool.listActions(object=document)
- self.logMessage("Check %s worklist with int value as %s" % \
- (user_id, new_value))
- self.checkWorklist(result, self.actbox_int_variable_name, 0)
-
- #
- # 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)
-
- user_id = 'manager'
- self.login(user_id)
-
- module.manage_delLocalRoles('bar')
-
- def test(*count_list):
- local_role_list = 'Assignee', 'Owner'
- document.manage_setLocalRoles('manager', local_role_list)
-
- for i, count in enumerate(count_list):
- document.manage_permission('View', local_role_list[:i], 0)
+ self.logMessage("Check %s worklist as Assignor" % user_id)
+ self.checkWorklist(result, self.actbox_assignor_name, 0)
+ self.logMessage("Check %s worklist as Owner" % user_id)
+ self.checkWorklist(result, self.actbox_owner_name, 1)
+ for user_id in ('foo', 'bar'):
+ self.logMessage("Check %s worklist" % user_id)
+ self.login(user_id)
+ result = workflow_tool.listActions(object=document)
+ self.assertEquals(result, [])
+
+ for role, user_id_list in (('Assignor', ('foo', 'manager')),
+ ('Assignee', ('foo', 'bar'))):
+ self.login('manager')
+ for user_id in user_id_list:
+ self.logMessage("Give %s %s role" % (user_id, role))
+ document.manage_addLocalRoles(user_id, [role])
document.reindexObject()
transaction.commit()
self.tic()
self.clearCache()
- result = workflow_tool.listActions(object=document)
- self.logMessage("Check %s worklist as Owner (%s)" % (user_id, count))
- self.checkWorklist(result, self.actbox_owner_name, count)
-
- test(0, 0, 1)
-
- # 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', )
- transaction.commit()
- self.portal.portal_caches.clearAllCache()
-
- try:
- test(0, 1, 1)
+ for user_id, assignor, owner, both in (('manager', 1, 1, 1),
+ ('bar' , 0, 0, 0),
+ ('foo' , 1, 0, 1)):
+ self.login(user_id)
+ result = workflow_tool.listActions(object=document)
+ self.logMessage(" Check %s worklist as Assignor" % user_id)
+ self.checkWorklist(result, self.actbox_assignor_name, assignor)
+ self.logMessage(" Check %s worklist as Owner" % user_id)
+ self.checkWorklist(result, self.actbox_owner_name, owner)
+ self.logMessage(" Check %s worklist as Owner and Assignor" % user_id)
+ self.checkWorklist(result, self.actbox_assignor_owner_name, both)
+
+ # Check if int variable are managed by the worklist
+ user_id = 'manager'
+ self.login(user_id)
+ result = workflow_tool.listActions(object=document)
+ self.logMessage("Check %s worklist with int value as %s" % \
+ (user_id, self.int_value))
+ self.checkWorklist(result, self.actbox_int_variable_name, 1)
+
+ # Change int value on document
+ new_value = self.int_value + 1
+ document.setProperty(self.int_catalogued_variable_id, new_value)
+ transaction.commit()
+ self.tic()
+ self.clearCache()
+
+ result = workflow_tool.listActions(object=document)
+ self.logMessage("Check %s worklist with int value as %s" % \
+ (user_id, new_value))
+ self.checkWorklist(result, self.actbox_int_variable_name, 0)
+
+ #
+ # 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)
+
+ user_id = 'manager'
+ self.login(user_id)
+
+ module.manage_delLocalRoles('bar')
+
+ def test(*count_list):
+ local_role_list = 'Assignee', 'Owner'
+ document.manage_setLocalRoles('manager', local_role_list)
+
+ for i, count in enumerate(count_list):
+ document.manage_permission('View', local_role_list[:i], 0)
+ document.reindexObject()
+ transaction.commit()
+ self.tic()
+ self.clearCache()
+
+ result = workflow_tool.listActions(object=document)
+ self.logMessage("Check %s worklist as Owner (%s)" % (user_id, count))
+ self.checkWorklist(result, self.actbox_owner_name, count)
+
+ test(0, 0, 1)
+
+ # 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', )
+ transaction.commit()
+ self.portal.portal_caches.clearAllCache()
+
+ try:
+ test(0, 1, 1)
+ finally:
+ sql_catalog.sql_catalog_local_role_keys = \
+ current_sql_catalog_local_role_keys
+ transaction.commit()
finally:
- sql_catalog.sql_catalog_local_role_keys = \
- current_sql_catalog_local_role_keys
- transaction.commit()
+ self.removeWorklists()
def test_02_related_key(self, quiet=0, run=run_all_test):
"""
@@ -369,28 +386,32 @@
portal_type=self.checked_portal_type,
base_category_id='role')
- document = self.createDocument()
- transaction.commit()
- self.tic()
- self.clearCache()
- self.logMessage(" Check no document has region/role categories defined")
- result = workflow_tool.listActions(object=document)
- self.checkWorklist(result, 'has_region', 0)
- self.checkWorklist(result, 'has_role', 0)
-
- self.logMessage(" Creates documents with region/role categories defined")
- self.createDocument(role='client')
- self.createDocument(region='somewhere')
- self.createDocument(region='elsewhere')
-
- transaction.commit()
- self.tic()
- self.clearCache()
- self.logMessage(
- " Check there are documents with region/role categories defined")
- result = workflow_tool.listActions(object=document)
- self.checkWorklist(result, 'has_region', 2)
- self.checkWorklist(result, 'has_role', 1)
+ try:
+ document = self.createDocument()
+ transaction.commit()
+ self.tic()
+ self.clearCache()
+ self.logMessage(" Check no document has region/role categories defined")
+ result = workflow_tool.listActions(object=document)
+ self.checkWorklist(result, 'has_region', 0)
+ self.checkWorklist(result, 'has_role', 0)
+
+ self.logMessage(" Creates documents with region/role categories defined")
+ self.createDocument(role='client')
+ self.createDocument(region='somewhere')
+ self.createDocument(region='elsewhere')
+
+ transaction.commit()
+ self.tic()
+ self.clearCache()
+ self.logMessage(
+ " Check there are documents with region/role categories defined")
+ result = workflow_tool.listActions(object=document)
+ self.checkWorklist(result, 'has_region', 2)
+ self.checkWorklist(result, 'has_role', 1)
+ finally:
+ self.removeWorklist(self.checked_workflow,
+ ['region_worklist', 'role_worklist'])
def test_03_worklist_guard(self, quiet=0, run=run_all_test):
"""
@@ -411,28 +432,32 @@
guard_roles="Associate",
guard_expr='python: user.getId() == "bar"')
- document = self.createDocument()
- document.manage_addLocalRoles("bar", ["Associate"])
- document.manage_addLocalRoles("foo", ["Associate"])
- document.validate()
- document.reindexObject()
- transaction.commit()
- self.tic()
- self.clearCache()
-
- self.logMessage(" Check that manager can not access worklist")
- result = workflow_tool.listActions(object=document)
- self.checkWorklist(result, 'valid_guard_expression', 0)
-
- self.logMessage(" Check that user bar can access worklist")
- self.login('bar')
- result = workflow_tool.listActions(object=document)
- self.checkWorklist(result, 'valid_guard_expression', 1)
-
- self.logMessage(" Check that user foo can not access worklist")
- self.login('foo')
- result = workflow_tool.listActions(object=document)
- self.checkWorklist(result, 'valid_guard_expression', 0)
+ try:
+ document = self.createDocument()
+ document.manage_addLocalRoles("bar", ["Associate"])
+ document.manage_addLocalRoles("foo", ["Associate"])
+ document.validate()
+ document.reindexObject()
+ transaction.commit()
+ self.tic()
+ self.clearCache()
+
+ self.logMessage(" Check that manager can not access worklist")
+ result = workflow_tool.listActions(object=document)
+ self.checkWorklist(result, 'valid_guard_expression', 0)
+
+ self.logMessage(" Check that user bar can access worklist")
+ self.login('bar')
+ result = workflow_tool.listActions(object=document)
+ self.checkWorklist(result, 'valid_guard_expression', 1)
+
+ self.logMessage(" Check that user foo can not access worklist")
+ self.login('foo')
+ result = workflow_tool.listActions(object=document)
+ self.checkWorklist(result, 'valid_guard_expression', 0)
+ finally:
+ self.removeWorklist(self.checked_workflow,
+ ['guard_expression_worklist'])
def test_suite():
suite = unittest.TestSuite()
More information about the Erp5-report
mailing list