Example #1
0
    def _testing_check_verify(self, objects, expected):
        workflow_engine = InstanceWorkflowEngine(Mock(), Mock())
        workflow_engine.status_cache[StatusConstants.NEW] = Status(
            id=StatusConstants.NEW, name="Test NEW", type=StatusTypes.SUCCESS)
        workflow_engine.status_cache[StatusConstants.SUCCESS] = Status(
            id=StatusConstants.SUCCESS,
            name="Test SUCCESS",
            type=StatusTypes.SUCCESS)
        workflow_engine.status_cache[StatusConstants.FAILED] = Status(
            id=StatusConstants.FAILED,
            name="Test FAILED",
            type=StatusTypes.FAILED)
        workflow_engine.status_cache[StatusConstants.CANCELED] = Status(
            id=StatusConstants.NEW,
            name="Test CANCELED",
            type=StatusTypes.CANCELED)

        if expected[2]:
            workflow_engine.status_cache[expected[2].id] = expected[2]

        all_complete, all_passed, failed_type = workflow_engine._check_and_verify_statuses(
            objects)

        eq_(expected[0], all_complete, "All Complete did not match")
        eq_(expected[1], all_passed, "All passed did not match.")
        eq_(expected[2], failed_type, "Failed Type did not match.")
Example #2
0
 def mocked_get(id):
     return {
         9:
         Status(id=9,
                name="UNSTABLE",
                display_name='Unstable',
                type=StatusTypes.FAILED),
         8:
         Status(id=8,
                name="CANCELED",
                display_name='Canceled',
                type=StatusTypes.FAILED),
         4:
         Status(id=4,
                name="SUCCESS",
                display_name='Success',
                type=StatusTypes.SUCCESS),
         5:
         Status(id=5,
                name="FAILED",
                display_name='Failed',
                type=StatusTypes.FAILED),
         2:
         Status(id=2,
                name="READY",
                display_name='Ready',
                type=StatusTypes.SUCCESS)
     }[id]
Example #3
0
    def test_can_continue_workflow_should_fail(self):
        workflow_engine = InstanceWorkflowEngine(Mock(), Mock())
        workflow_engine.status_cache[StatusConstants.SUCCESS] = Status(
            id=StatusConstants.SUCCESS, type=StatusTypes.SUCCESS)
        workflow_engine.status_cache[100] = Status(id=100,
                                                   type=StatusTypes.FAILED)

        ok_(not workflow_engine._can_continue_workflow([
            ActionInstance(status_id=100),
            ActionInstance(status_id=StatusConstants.SUCCESS)
        ]))
Example #4
0
    def test_can_continue_workflow_status_not_in_severity(self):
        workflow_engine = InstanceWorkflowEngine(Mock(), Mock())
        workflow_engine.status_cache[StatusConstants.SUCCESS] = Status(
            id=StatusConstants.SUCCESS, type=StatusTypes.SUCCESS)
        workflow_engine.status_cache[100] = Status(id=100, type="semiborked")

        ok_(
            workflow_engine._can_continue_workflow([
                ActionInstance(status_id=100),
                ActionInstance(status_id=StatusConstants.SUCCESS)
            ]))
Example #5
0
    def test_can_continue_workflow_should_continue_with_sliced_actions(self):
        workflow_engine = InstanceWorkflowEngine(Mock(), Mock())
        workflow_engine.status_cache[StatusConstants.SUCCESS] = Status(
            id=StatusConstants.READY, type=StatusTypes.SUCCESS)
        workflow_engine.status_cache[100] = Status(id=100,
                                                   type=StatusTypes.FAILED)

        ok_(
            workflow_engine._can_continue_workflow([
                ActionInstance(status_id=100, slice='1/2', action_id=1),
                ActionInstance(status_id=StatusConstants.READY,
                               slice='1/1',
                               action_id=1)
            ]))
Example #6
0
    def test_get_status(self):
        status_dal = Mock()
        status = Status(id=1, name="Something")
        status_dal.get_status_by_id.return_value = status

        workflow_engine = InstanceWorkflowEngine(status_dal, Mock())

        eq_(status, workflow_engine._get_status(1))
        eq_({1: status}, workflow_engine.status_cache)
Example #7
0
 def test_check_verify_status_complex_one_canceled(self):
     self._testing_check_verify([
         ActionInstance(status_id=StatusConstants.SUCCESS),
         ActionInstance(status_id=StatusConstants.CANCELED)
     ], [
         True, False,
         Status(id=StatusConstants.CANCELED,
                type=StatusTypes.CANCELED,
                name="Testing CANCELED")
     ])
Example #8
0
 def test_check_verify_status_complex_one_failed(self):
     self._testing_check_verify([
         ActionInstance(status_id=StatusConstants.SUCCESS),
         ActionInstance(status_id=StatusConstants.FAILED),
         ActionInstance(status_id=StatusConstants.NEW)
     ], [
         False, False,
         Status(id=StatusConstants.FAILED,
                type=StatusTypes.FAILED,
                name="Testing FAILED")
     ])
Example #9
0
    def test_activate_next_action_all_complete_with_unknown(self):
        workflow_engine = InstanceWorkflowEngine(Mock(), Mock())
        workflow_engine.status_cache[StatusConstants.UNKNOWN] = Status(
            type=StatusTypes.WARNING)

        action_instances = [
            ActionInstance(status_id=StatusConstants.SUCCESS, order=0),
            ActionInstance(status_id=StatusConstants.UNKNOWN, order=1),
            ActionInstance(status_id=StatusConstants.NEW, order=2)
        ]
        workflow_engine._activate_next_action_all_complete(action_instances)

        eq_(StatusConstants.UNKNOWN, action_instances[1].status_id)
        eq_(StatusConstants.NEW, action_instances[2].status_id)
Example #10
0
    def test_activate_next_action_all_complete_with_canceled(self):
        workflow_engine = InstanceWorkflowEngine(Mock(), Mock())
        workflow_engine.status_cache[StatusConstants.CANCELED] = Status(
            type=StatusTypes.CANCELED)

        action_instances = [
            ActionInstance(status_id=StatusConstants.SUCCESS, order=0),
            ActionInstance(status_id=StatusConstants.CANCELED, order=1),
            ActionInstance(status_id=StatusConstants.NEW, order=2)
        ]
        workflow_engine._activate_next_action_all_complete(action_instances)

        eq_(StatusConstants.CANCELED, action_instances[1].status_id)
        eq_(StatusConstants.NEW, action_instances[2].status_id)