Rob Miller wrote:
that being said, your original problem may not be related to the security settings on the script at all. it may be that even if you get the security all dialed in, there's some explicit security check in the code that is causing the problem. if you end up performing your operation from trusted code but still have the problem, then you'll need to dig more deeply to find out exactly why the action is being disallowed. see http://plone.org/documentation/how-to/debug-unauthorized.

I tested this with few luck; fortunately Carlos de la Guardia came into rescue and recommended me to use import transaction and transaction.savepoint(optimistic=True).

in case someone needs to do something like this, this is the way it worked:

import transaction

class TestWorkflow(JuliusLiteTestCase):
    """ ensure workflow script works """

    def afterSetUp(self):
        self.catalog  = getattr(self.folder, 'portal_catalog')
        self.workflow = getattr(self.folder, 'portal_workflow')
        self.folder.invokeFactory('News Item', 'object')
        self.object = getattr(self.folder, 'object')
        self.object.setTitle('test')

    def testArchiveItem(self):
        """ test the script inside the workflow """
        #need to commit transaction to be able to copy and paste
        transaction.savepoint(optimistic=True)
        self.folder.archiveItem(self)
        self.failUnless(getattr(self.folder, 'object', None) is None)
        results = self.catalog.searchResults(Title='test')
        self.failUnlessEqual(len(results), 1)


_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers

Reply via email to