[Checkins] SVN: Products.DCWorkflow/trunk/Products/DCWorkflow/ forward port r120551: Allow renaming of states, transitions, variables and worklists

Leonardo Rochael Almeida leorochael at gmail.com
Wed Feb 23 13:01:10 EST 2011


Log message for revision 120552:
  forward port r120551: Allow renaming of states, transitions, variables and worklists

Changed:
  U   Products.DCWorkflow/trunk/Products/DCWorkflow/States.py
  U   Products.DCWorkflow/trunk/Products/DCWorkflow/Transitions.py
  U   Products.DCWorkflow/trunk/Products/DCWorkflow/Variables.py
  U   Products.DCWorkflow/trunk/Products/DCWorkflow/Worklists.py
  U   Products.DCWorkflow/trunk/Products/DCWorkflow/tests/test_DCWorkflow.py

-=-
Modified: Products.DCWorkflow/trunk/Products/DCWorkflow/States.py
===================================================================
--- Products.DCWorkflow/trunk/Products/DCWorkflow/States.py	2011-02-23 17:53:21 UTC (rev 120551)
+++ Products.DCWorkflow/trunk/Products/DCWorkflow/States.py	2011-02-23 18:01:09 UTC (rev 120552)
@@ -265,6 +265,7 @@
 
     all_meta_types = ({'name':StateDefinition.meta_type,
                        'action':'addState',
+                       'permission': ManagePortal,
                        },)
 
     _manage_states = DTMLFile('states', _dtmldir)

Modified: Products.DCWorkflow/trunk/Products/DCWorkflow/Transitions.py
===================================================================
--- Products.DCWorkflow/trunk/Products/DCWorkflow/Transitions.py	2011-02-23 17:53:21 UTC (rev 120551)
+++ Products.DCWorkflow/trunk/Products/DCWorkflow/Transitions.py	2011-02-23 18:01:09 UTC (rev 120552)
@@ -227,6 +227,7 @@
 
     all_meta_types = ({'name':TransitionDefinition.meta_type,
                        'action':'addTransition',
+                       'permission': ManagePortal,
                        },)
 
     _manage_transitions = DTMLFile('transitions', _dtmldir)

Modified: Products.DCWorkflow/trunk/Products/DCWorkflow/Variables.py
===================================================================
--- Products.DCWorkflow/trunk/Products/DCWorkflow/Variables.py	2011-02-23 17:53:21 UTC (rev 120551)
+++ Products.DCWorkflow/trunk/Products/DCWorkflow/Variables.py	2011-02-23 18:01:09 UTC (rev 120552)
@@ -115,6 +115,7 @@
 
     all_meta_types = ({'name':VariableDefinition.meta_type,
                        'action':'addVariable',
+                       'permission': ManagePortal,
                        },)
 
     _manage_variables = DTMLFile('variables', _dtmldir)

Modified: Products.DCWorkflow/trunk/Products/DCWorkflow/Worklists.py
===================================================================
--- Products.DCWorkflow/trunk/Products/DCWorkflow/Worklists.py	2011-02-23 17:53:21 UTC (rev 120551)
+++ Products.DCWorkflow/trunk/Products/DCWorkflow/Worklists.py	2011-02-23 18:01:09 UTC (rev 120552)
@@ -199,6 +199,7 @@
 
     all_meta_types = ({'name':WorklistDefinition.meta_type,
                        'action':'addWorklist',
+                       'permission': ManagePortal,
                        },)
 
     _manage_worklists = DTMLFile('worklists', _dtmldir)

Modified: Products.DCWorkflow/trunk/Products/DCWorkflow/tests/test_DCWorkflow.py
===================================================================
--- Products.DCWorkflow/trunk/Products/DCWorkflow/tests/test_DCWorkflow.py	2011-02-23 17:53:21 UTC (rev 120551)
+++ Products.DCWorkflow/trunk/Products/DCWorkflow/tests/test_DCWorkflow.py	2011-02-23 18:01:09 UTC (rev 120552)
@@ -16,28 +16,35 @@
 import unittest
 import Testing
 
+import transaction
 from zope.component import adapter
 from zope.component import provideHandler
 from zope.interface.verify import verifyClass
+from AccessControl.SecurityManagement import newSecurityManager
 
 from Products.CMFCore.testing import TraversingEventZCMLLayer
 from Products.CMFCore.tests.base.dummy import DummyContent
 from Products.CMFCore.tests.base.dummy import DummySite
 from Products.CMFCore.tests.base.dummy import DummyTool
+from Products.CMFCore.tests.base.security import OmnipotentUser
+from Products.CMFCore.tests.base.testcase import SecurityTest
 from Products.CMFCore.WorkflowTool import WorkflowTool
 from Products.DCWorkflow.interfaces import IAfterTransitionEvent
 from Products.DCWorkflow.interfaces import IBeforeTransitionEvent
 
+class DCWorkflowDefinitionTests(SecurityTest):
 
-class DCWorkflowDefinitionTests(unittest.TestCase):
-
     layer = TraversingEventZCMLLayer
 
     def setUp(self):
+        SecurityTest.setUp(self)
         self.site = DummySite('site')
+        self.root._setObject( 'site', self.site )
         self.site._setObject( 'portal_types', DummyTool() )
         self.site._setObject( 'portal_workflow', WorkflowTool() )
         self._constructDummyWorkflow()
+        transaction.savepoint(optimistic=True)
+        newSecurityManager(None, OmnipotentUser().__of__(self.site))
 
     def test_interfaces(self):
         from Products.CMFCore.interfaces import IWorkflowDefinition
@@ -70,6 +77,9 @@
                  default_expr="python:state_change.kwargs.get('comment', '')",
                  for_status=1, update_always=1)
 
+        wf.worklists.addWorklist('published_documents')
+
+
     def _getDummyWorkflow(self):
         wftool = self.site.portal_workflow
         return wftool.wf
@@ -175,6 +185,26 @@
         # Check with kwargs.
         self.assert_(wf.isActionSupported(dummy, 'publish', arg1=1, arg2=2))
 
+    def test_rename(self):
+
+        wftool = self.site.portal_workflow
+        wf = self._getDummyWorkflow()
+
+        wf.states.manage_renameObject('private', 'private_new')
+        self.assertNotEquals(None, wf.states._getOb('private_new', None))
+
+        wf.transitions.manage_renameObject('publish', 'publish_new')
+        self.assertNotEquals(None, wf.transitions._getOb('publish_new', None))
+        
+        wf.variables.manage_renameObject('comments', 'comments_new')
+        self.assertNotEquals(None, wf.variables._getOb('comments_new', None))
+
+        wf.worklists.manage_renameObject('published_documents',
+                                         'published_documents_new')
+        self.assertNotEquals(None,
+            wf.worklists._getOb('published_documents_new', None))
+
+
     # XXX more tests...
 
 



More information about the checkins mailing list