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.")
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]
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) ]))
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) ]))
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) ]))
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)
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") ])
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") ])
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)
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)