Example #1
0
    def test_workflow_callback(self):
        from kotti.workflow import workflow_callback

        context = Dummy(__acl__=[])
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = "bar"
        info.workflow._state_data = {
            "next_state": {"role:me": "myfirstpermission mysecondpermission", "role:you": " \t yourpermission "}
        }
        workflow_callback(context, info)

        assert sorted(context.__acl__) == [
            ("Allow", "role:me", "myfirstpermission"),
            ("Allow", "role:me", "mysecondpermission"),
            ("Allow", "role:you", "yourpermission"),
            ("Deny", "system.Everyone", ALL_PERMISSIONS),
        ]
Example #2
0
    def test_workflow_callback_with_inheritance(self):
        from kotti.workflow import workflow_callback

        context = Dummy(__acl__=[])
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = 'bar'
        info.workflow._state_data = {
            "next_state": {
                "role:me": "myfirstpermission mysecondpermission",
                "role:you": " \t yourpermission ",
                "inherit": "true",
                },
            }
        workflow_callback(context, info)

        self.assertEqual(sorted(context.__acl__), [
            ('Allow', 'role:me', 'myfirstpermission'),
            ('Allow', 'role:me', 'mysecondpermission'),
            ('Allow', 'role:you', 'yourpermission'),
            ])
Example #3
0
    def test_workflow_callback(self):
        from kotti.workflow import workflow_callback

        context = Dummy(__acl__=[])
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = 'bar'
        info.workflow._state_data = {
            "next_state": {
                "role:me": "myfirstpermission mysecondpermission",
                "role:you": " \t yourpermission ",
                },
            }
        workflow_callback(context, info)

        self.assertEqual(sorted(context.__acl__), [
            ('Allow', 'role:me', 'myfirstpermission'),
            ('Allow', 'role:me', 'mysecondpermission'),
            ('Allow', 'role:you', 'yourpermission'),
            ('Deny', 'system.Everyone', ALL_PERMISSIONS),
            ])
Example #4
0
    def test_workflow_callback(self):
        from kotti.workflow import workflow_callback

        context = Dummy(__acl__=[])
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = "bar"
        info.workflow._state_data = {
            "next_state": {
                "role:me": "myfirstpermission mysecondpermission",
                "role:you": " \t yourpermission ",
            }
        }
        workflow_callback(context, info)

        assert sorted(context.__acl__) == [
            ("Allow", "role:me", "myfirstpermission"),
            ("Allow", "role:me", "mysecondpermission"),
            ("Allow", "role:you", "yourpermission"),
            ("Deny", "system.Everyone", ALL_PERMISSIONS),
        ]
Example #5
0
    def test_workflow_callback_with_inheritance(self):
        from kotti.workflow import workflow_callback

        context = Dummy(__acl__=[])
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = "bar"
        info.workflow._state_data = {
            "next_state": {
                "role:me": "myfirstpermission mysecondpermission",
                "role:you": " \t yourpermission ",
                "inherit": "true",
            }
        }
        workflow_callback(context, info)

        assert sorted(context.__acl__) == [
            ("Allow", "role:me", "myfirstpermission"),
            ("Allow", "role:me", "mysecondpermission"),
            ("Allow", "role:you", "yourpermission"),
        ]
Example #6
0
    def test_workflow_callback_event(self):
        from kotti.events import listeners
        from kotti.events import ObjectEvent
        from kotti.workflow import workflow_callback
        from kotti.workflow import WorkflowTransition

        events = []
        listeners[WorkflowTransition].append(lambda event: events.append(event))

        context = Dummy()
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = 'bar'
        info.workflow._state_data = {"next_state": {}}
        workflow_callback(context, info)

        assert len(events) == 1
        [event] = events
        assert event.object is context
        assert event.info is info
        assert isinstance(event, ObjectEvent)
Example #7
0
    def test_workflow_callback_with_inheritance(self):
        from kotti.workflow import workflow_callback

        context = Dummy(__acl__=[])
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = "bar"
        info.workflow._state_data = {
            "next_state": {
                "role:me": "myfirstpermission mysecondpermission",
                "role:you": " \t yourpermission ",
                "inherit": "true",
            }
        }
        workflow_callback(context, info)

        assert sorted(context.__acl__) == [
            ("Allow", "role:me", "myfirstpermission"),
            ("Allow", "role:me", "mysecondpermission"),
            ("Allow", "role:you", "yourpermission"),
        ]
Example #8
0
    def test_workflow_callback_event(self):
        from kotti.events import listeners
        from kotti.events import ObjectEvent
        from kotti.workflow import workflow_callback
        from kotti.workflow import WorkflowTransition

        events = []
        my_listener = lambda event: events.append(event)
        listeners[WorkflowTransition].append(my_listener)

        context = Dummy()
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = 'bar'
        info.workflow._state_data = {"next_state": {}}
        workflow_callback(context, info)

        self.assertEqual(len(events), 1)
        [event] = events
        self.assertEqual(event.object, context)
        self.assertEqual(event.info, info)
        assert isinstance(event, ObjectEvent)
Example #9
0
    def test_workflow_callback_event(self):
        from kotti.events import listeners
        from kotti.events import ObjectEvent
        from kotti.workflow import workflow_callback
        from kotti.workflow import WorkflowTransition

        events = []

        listeners[WorkflowTransition].append(lambda evt: events.append(evt))

        context = Dummy()
        info = Dummy()
        info.transition = {"to_state": "next_state"}
        info.workflow = Dummy()
        info.workflow.initial_state = "bar"
        info.workflow._state_data = {"next_state": {}}
        workflow_callback(context, info)

        assert len(events) == 1
        [event] = events
        assert event.object is context
        assert event.info is info
        assert isinstance(event, ObjectEvent)