[Zope3-checkins] CVS: Zope3/src/zope/app/workflow/tests - __init__.py:1.1.2.1 test_workflowaction.py:1.1.2.1 test_workflowactivityinfo.py:1.1.2.1 test_workflowengine.py:1.1.2.1 test_workflowprocessinstance.py:1.1.2.1 test_workflowservice.py:1.1.2.1 test_workflowworkitem.py:1.1.2.1

Jim Fulton jim@zope.com
Mon, 23 Dec 2002 14:32:41 -0500


Update of /cvs-repository/Zope3/src/zope/app/workflow/tests
In directory cvs.zope.org:/tmp/cvs-serv19908/zope/app/workflow/tests

Added Files:
      Tag: NameGeddon-branch
	__init__.py test_workflowaction.py 
	test_workflowactivityinfo.py test_workflowengine.py 
	test_workflowprocessinstance.py test_workflowservice.py 
	test_workflowworkitem.py 
Log Message:
Initial renaming before debugging

=== Added File Zope3/src/zope/app/workflow/tests/__init__.py ===
#
# This file is necessary to make this directory a package.


=== Added File Zope3/src/zope/app/workflow/tests/test_workflowaction.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
# 
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
# 
##############################################################################
import unittest
 
class WorkflowActionTestsBase:

    def test_getAction( self ):
        ACTION = []
        event = self._makeOne( ACTION )
        self.assertEqual( event.getAction(), ACTION )
        
    def _makeOne( self, *args, **kw ):
        
        return self._getEventClass()( *args, **kw )

class WorkflowActionCreatedTests( unittest.TestCase, WorkflowActionTestsBase ):

    def testInterface( self ):
        from zope.app.interfaces.workflow import IWorkflowEvent
        from zope.app.interfaces.workflow import IWorkflowActionEvent
        from zope.app.interfaces.workflow \
            import IWorkflowActionCreatedEvent
        from zope.app.workflow.workflowevents import WorkflowActionCreatedEvent
        from zope.interface.verify import verifyClass

        verifyClass( IWorkflowEvent, WorkflowActionCreatedEvent )
        verifyClass( IWorkflowActionEvent, WorkflowActionCreatedEvent )
        verifyClass( IWorkflowActionCreatedEvent, WorkflowActionCreatedEvent )

    def _getEventClass( self ):
        from zope.app.workflow.workflowevents import WorkflowActionCreatedEvent
        return WorkflowActionCreatedEvent


class WorkflowActionAssignedEventTest( unittest.TestCase
                                     , WorkflowActionTestsBase ):

    def testInterface( self ):
        from zope.app.interfaces.workflow import IWorkflowEvent
        from zope.app.interfaces.workflow import IWorkflowActionEvent
        from zope.app.interfaces.workflow \
            import IWorkflowActionAssignedEvent
        from zope.app.workflow.workflowevents \
            import WorkflowActionAssignedEvent
        from zope.interface.verify import verifyClass
        
        verifyClass( IWorkflowEvent, WorkflowActionAssignedEvent )
        verifyClass( IWorkflowActionEvent, WorkflowActionAssignedEvent )
        verifyClass( IWorkflowActionAssignedEvent, WorkflowActionAssignedEvent )

    def _getEventClass( self ):
        from zope.app.workflow.workflowevents import WorkflowActionAssignedEvent
        return WorkflowActionAssignedEvent


class WorkflowActionBegunEventTest( unittest.TestCase, WorkflowActionTestsBase ):

    def testInterface( self ):
        from zope.app.interfaces.workflow import IWorkflowEvent
        from zope.app.interfaces.workflow import IWorkflowActionEvent
        from zope.app.interfaces.workflow import IWorkflowActionBegunEvent
        from zope.app.workflow.workflowevents import WorkflowActionBegunEvent
        from zope.interface.verify import verifyClass
        
        verifyClass( IWorkflowEvent, WorkflowActionBegunEvent )
        verifyClass( IWorkflowActionEvent, WorkflowActionBegunEvent )
        verifyClass( IWorkflowActionBegunEvent, WorkflowActionBegunEvent )

    def _getEventClass( self ):
        from zope.app.workflow.workflowevents import WorkflowActionBegunEvent
        return WorkflowActionBegunEvent


class WorkflowActionSuspendedTests( unittest.TestCase, WorkflowActionTestsBase ):

    def testInterface(self):
        from zope.app.interfaces.workflow import IWorkflowEvent
        from zope.app.interfaces.workflow import IWorkflowActionEvent
        from zope.app.interfaces.workflow \
             import IWorkflowActionSuspendedEvent
        from zope.app.workflow.workflowevents \
             import WorkflowActionSuspendedEvent
        from zope.interface.verify import verifyClass

        verifyClass( IWorkflowEvent, WorkflowActionSuspendedEvent )
        verifyClass( IWorkflowActionEvent, WorkflowActionSuspendedEvent )
        verifyClass( IWorkflowActionSuspendedEvent, WorkflowActionSuspendedEvent )

    def _getEventClass( self ):
        from zope.app.workflow.workflowevents \
            import WorkflowActionSuspendedEvent
        return WorkflowActionSuspendedEvent


class WorkflowActionCompletedEvent(unittest.TestCase, WorkflowActionTestsBase):

    def testInterface(self):
        from zope.app.interfaces.workflow import IWorkflowEvent
        from zope.app.interfaces.workflow import IWorkflowActionEvent
        from zope.app.interfaces.workflow \
            import IWorkflowActionCompletedEvent
        from zope.app.workflow.workflowevents \
            import WorkflowActionCompletedEvent
        from zope.interface.verify import verifyClass

        verifyClass(IWorkflowEvent, WorkflowActionCompletedEvent)
        verifyClass(IWorkflowActionEvent, WorkflowActionCompletedEvent)
        verifyClass(IWorkflowActionCompletedEvent, WorkflowActionCompletedEvent)

    def _getEventClass( self ):
        from zope.app.workflow.workflowevents \
            import WorkflowActionCompletedEvent
        return WorkflowActionCompletedEvent


class WorkflowActionExceptionEvent(unittest.TestCase, WorkflowActionTestsBase):

    def testInterface(self):
        from zope.app.interfaces.workflow import IWorkflowEvent
        from zope.app.interfaces.workflow import IWorkflowActionEvent
        from zope.app.interfaces.workflow \
            import IWorkflowActionExceptionEvent
        from zope.app.workflow.workflowevents \
            import WorkflowActionExceptionEvent
        from zope.interface.verify import verifyClass

        verifyClass(IWorkflowEvent, WorkflowActionExceptionEvent)
        verifyClass(IWorkflowActionEvent, WorkflowActionExceptionEvent)
        verifyClass(IWorkflowActionExceptionEvent, WorkflowActionExceptionEvent)

    def _getEventClass( self ):
        from zope.app.workflow.workflowevents \
            import WorkflowActionExceptionEvent
        return WorkflowActionExceptionEvent

    def _getEventClass( self ):
        from zope.app.workflow.workflowevents \
            import WorkflowActionExceptionEvent
        return WorkflowActionExceptionEvent


def test_suite():

    suite = unittest.TestSuite()
    for klass in ( WorkflowActionCreatedTests
                 , WorkflowActionAssignedEventTest
                 , WorkflowActionBegunEventTest
                 , WorkflowActionSuspendedTests
                 , WorkflowActionCompletedEvent
                 , WorkflowActionExceptionEvent
                 ):
        suite.addTest(
            unittest.defaultTestLoader.loadTestsFromTestCase( klass ) )
    return suite


if __name__ == '__main__':
    unittest.main()


=== Added File Zope3/src/zope/app/workflow/tests/test_workflowactivityinfo.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
# 
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
# 
##############################################################################
import unittest
from zope.interface.verify import verifyClass

class WorkflowActivityInfoTests(unittest.TestCase):

    def testInterface(self):
        from zope.app.interfaces.workflow \
            import IWorkflowActivityInfo
        from zope.app.workflow.workflowactivityinfo \
            import WorkflowActivityInfo

        verifyClass(IWorkflowActivityInfo, WorkflowActivityInfo)

    def _getOne(self, *args, **kw):
        from zope.app.workflow.workflowactivityinfo import WorkflowActivityInfo
        return WorkflowActivityInfo(*args, **kw)

    def testEmpty(self):
        id = 'blah'
        ai = self._getOne(id)
        self.assertEqual(ai.getId(), id)
        self.assertEqual(ai.getTitle(), '')
        self.assertEqual(ai.getCategory(), '')
        self.assertEqual(ai.getActionURL(), '')
        self.assertEqual(len(ai.getPermissions()), 0)
        self.assertEqual(len(ai.getRoles()), 0)
        self.assertEqual(ai.getCondition(), None)
        self.assertEqual(ai.getSource(), None)

    def testTitle(self):
        id = 'blah'
        title = 'zoinx'
        ai = self._getOne(id, title=title)
        self.assertEqual(ai.getTitle(), title)

    def testCategory(self):
        id = 'blah'
        category = 'foobar'
        ai = self._getOne(id, category=category)
        self.assertEqual(ai.getCategory(), category)

    def testActionURL(self):
        id = 'blah'
        action_url = 'baz'
        ai = self._getOne(id, action_url=action_url)
        self.assertEqual(ai.getActionURL(), action_url)

    def testPermissions(self):
        id = 'blah'
        permissions = [1,2,3]
        ai = self._getOne(id, permissions=permissions)
        self.assertEqual(ai.getPermissions(), permissions)

    def testRoles(self):
        id = 'blah'
        roles = [4,5,6]
        ai = self._getOne(id, roles=roles)
        self.assertEqual(ai.getRoles(), roles)

    def testCondition(self):
        id = 'blah'
        condition = []
        ai = self._getOne(id, condition=condition)
        self.assertEqual(ai.getCondition(), condition)

    def testSource(self):
        id = 'blah'
        source = []
        ai = self._getOne(id, source=source)
        self.assertEqual(ai.getSource(), source)

    def testComplex(self):
        id = 'blah'
        title = 'zoinx'
        category = 'foobar'
        action_url = 'baz'
        permissions = [1,2,3]
        roles = [4,5,6]
        condition = []
        source = []
        ai = self._getOne(id, title=title, category=category,
                          action_url=action_url, permissions=permissions,
                          roles=roles, condition=condition,
                          source=source)
        self.assertEqual(ai.getId(), id)
        self.assertEqual(ai.getTitle(), title)
        self.assertEqual(ai.getCategory(), category)
        self.assertEqual(ai.getActionURL(), action_url)
        self.assertEqual(ai.getPermissions(), permissions)
        self.assertEqual(ai.getRoles(), roles)
        self.assertEqual(ai.getCondition(), condition)
        self.assertEqual(ai.getSource(), source)

def test_suite():

    suite = unittest.TestSuite()
    suite.addTest(
        unittest.defaultTestLoader.loadTestsFromTestCase(
            WorkflowActivityInfoTests ) )
    return suite

if __name__ == '__main__':
    unittest.main()


=== Added File Zope3/src/zope/app/workflow/tests/test_workflowengine.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
# 
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
# 
##############################################################################
import unittest

 
class WorkflowEngineTests( unittest.TestCase ):

    def testInterface( self ):
        from zope.app.interfaces.workflow import IWorkflowEngine
        from zope.app.workflow.workflowengine import WorkflowEngine
        from zope.interface.verify import verifyClass

        verifyClass( IWorkflowEngine, WorkflowEngine )



def test_suite():

    suite = unittest.TestSuite()
    suite.addTest(
        unittest.defaultTestLoader.loadTestsFromTestCase(
            WorkflowEngineTests ) )
    return suite



if __name__ == '__main__':
    unittest.main()


=== Added File Zope3/src/zope/app/workflow/tests/test_workflowprocessinstance.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
# 
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
# 
##############################################################################
import unittest


class WorkflowProcessInstanceTests( unittest.TestCase ):

    def testInterface( self ):
        from zope.interface.verify import verifyClass
        from zope.app.interfaces.workflow \
            import IWorkflowProcessInstance
        from zope.app.workflow.workflowprocessinstance \
            import WorkflowProcessInstance

        verifyClass( IWorkflowProcessInstance, WorkflowProcessInstance )


def test_suite():

    suite = unittest.TestSuite()
    suite.addTest(
        unittest.defaultTestLoader.loadTestsFromTestCase(
            WorkflowProcessInstanceTests ) )
    return suite



if __name__ == '__main__':
    unittest.main()


=== Added File Zope3/src/zope/app/workflow/tests/test_workflowservice.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
# 
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
# 
##############################################################################
import unittest
from zope.interface import Interface

class engineInterface(Interface):
    pass
        
class dummyEngine:
    __implements__ = engineInterface

    def listActions( self ):
        return [0, 1, 2]
    
class WorkflowServiceTests( unittest.TestCase ):

    def createService( self ):
        from zope.app.workflow.workflowservice import WorkflowService
        service = WorkflowService()
        return service

    
    def testInterface( self ):
        from zope.app.interfaces.workflow import IWorkflowService
        from zope.app.workflow.workflowservice import WorkflowService
        from zope.interface.verify import verifyClass

        verifyClass( IWorkflowService, WorkflowService )


    def testGetEngine( self ):
        service = self.createService()
        self.assertEqual(service.getEngine(engineInterface), [])

    def testAddEngine( self ):
        service = self.createService()
        engine = dummyEngine()
        service.addEngine(engine)
        self.assertEqual(service.getEngine(engineInterface), [engine])


    def testRemoveEngine( self ):
        service = self.createService()
        engine = dummyEngine()
        service.addEngine(engine)
        service.removeEngine(engine)
        self.assertEqual(service.getEngine(engineInterface), [])


    def testListWorkflowEngineActions( self ):
        service = self.createService()
        engine = dummyEngine()
        service.addEngine(engine)
        self.assertEqual(service.listWorkflowEngineActions(),
                         engine.listActions())
 

def test_suite():

    suite = unittest.TestSuite()
    suite.addTest(
        unittest.defaultTestLoader.loadTestsFromTestCase(
            WorkflowServiceTests ) )
    return suite

if __name__ == '__main__':
    unittest.main()


=== Added File Zope3/src/zope/app/workflow/tests/test_workflowworkitem.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
# 
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
# 
##############################################################################
import unittest
from zope.interface.verify import verifyClass

class WorkflowWorkitemTests(unittest.TestCase):
    def testInterface(self):
        from zope.app.interfaces.workflow import IWorkflowWorkitem
        from zope.app.workflow.workflowworkitem import WorkflowWorkitem

        verifyClass(IWorkflowWorkitem, WorkflowWorkitem)

    def _getOne(self, *args, **kw):
        from zope.app.workflow.workflowworkitem import WorkflowWorkitem
        return WorkflowWorkitem(*args, **kw)

    def testGetProcessInstance(self):
        from zope.app.workflow.workflowworkitem import WorkflowWorkitem

        pi = []
        wi = self._getOne(pi)
        npi = wi.getProcessInstance()
        self.assertEqual(pi, npi)

    def testEmpty(self):
        from zope.app.workflow.workflowworkitem import WorkflowWorkitem, INIT

        pi = []
        wi = self._getOne(pi)
        assignee = wi.getAssignee()
        state = wi.getState()
        self.assertEqual(assignee, None)
        self.assertEqual(state, INIT)

    def testAssignee(self):
        from zope.app.workflow.workflowworkitem import WorkflowWorkitem

        pi = []
        wi = self._getOne(pi)
        assignee = []
        wi.assign(assignee)
        nassignee = wi.getAssignee()
        self.assertEqual(assignee, nassignee)

    def testBegin(self):
        from zope.app.workflow.workflowworkitem import WorkflowWorkitem, \
             WorkflowWorkitemException, BEGUN

        pi = []
        wi = self._getOne(pi)
        wi.begin()
        state = wi.getState()
        self.assertEqual(state, BEGUN)
        self.assertRaises(WorkflowWorkitemException, wi.begin)

    def testComplete(self):
        from zope.app.workflow.workflowworkitem import WorkflowWorkitem, \
             WorkflowWorkitemException, COMPLETED

        pi = []
        wi = self._getOne(pi)
        self.assertRaises(WorkflowWorkitemException, wi.complete)
        self.assertRaises(WorkflowWorkitemException, wi.fail)
        wi.begin()
        wi.complete()
        state = wi.getState()
        self.assertEqual(state, COMPLETED)
        self.assertRaises(WorkflowWorkitemException, wi.begin)
        self.assertRaises(WorkflowWorkitemException, wi.complete)
        self.assertRaises(WorkflowWorkitemException, wi.fail)

    def testFail(self):
        from zope.app.workflow.workflowworkitem import WorkflowWorkitem, \
             WorkflowWorkitemException, FAILED

        pi = []
        wi = self._getOne(pi)
        self.assertRaises(WorkflowWorkitemException, wi.complete)
        self.assertRaises(WorkflowWorkitemException, wi.fail)
        wi.begin()
        wi.fail()
        state = wi.getState()
        self.assertEqual(state, FAILED)
        self.assertRaises(WorkflowWorkitemException, wi.begin)
        self.assertRaises(WorkflowWorkitemException, wi.complete)
        self.assertRaises(WorkflowWorkitemException, wi.fail)


def test_suite():

    suite = unittest.TestSuite()
    suite.addTest(
        unittest.defaultTestLoader.loadTestsFromTestCase(
            WorkflowWorkitemTests ) )
    return suite

if __name__ == '__main__':
    unittest.main()