def test_start_workflow_without_task(self): with db_api.transaction(): self._create_workflow_execution({}) wf_ctrl = reverse_wf.ReverseWorkflowController(self.wf_ex) self.assertRaises(exc.WorkflowException, wf_ctrl.continue_workflow)
def test_start_workflow_task1(self): with db_api.transaction(): self._create_workflow_execution({'task_name': 'task1'}) wf_ctrl = reverse_wf.ReverseWorkflowController(self.wf_ex) cmds = wf_ctrl.continue_workflow() self.assertEqual(1, len(cmds)) self.assertEqual('task1', cmds[0].task_spec.get_name())
def test_start_workflow_task1(self, get_workflow_execution): get_workflow_execution.return_value = self.wf_ex wf_ctrl = reverse_wf.ReverseWorkflowController(self.wf_ex) self.wf_ex.params = {'task_name': 'task1'} cmds = wf_ctrl.continue_workflow() self.assertEqual(1, len(cmds)) self.assertEqual('task1', cmds[0].task_spec.get_name())
def setUp(self): super(ReverseWorkflowControllerTest, self).setUp() wb_spec = spec_parser.get_workbook_spec_from_yaml(WB) wf_ex = models.WorkflowExecution( id='1-2-3-4', spec=wb_spec.get_workflows().get('wf').to_dict(), state=states.RUNNING, params={} ) self.wf_ex = wf_ex self.wb_spec = wb_spec self.wf_ctrl = reverse_wf.ReverseWorkflowController(wf_ex)
def test_continue_workflow(self): with db_api.transaction(): self._create_workflow_execution({'task_name': 'task2'}) wf_ctrl = reverse_wf.ReverseWorkflowController(self.wf_ex) # Assume task1 completed. task1_ex = self._create_task_execution('task1', states.SUCCESS) task1_ex.executions.append( models.ActionExecution( name='std.echo', workflow_name='wf', state=states.SUCCESS, output={'result': 'Hey'}, accepted=True ) ) cmds = wf_ctrl.continue_workflow() task1_ex.processed = True self.assertEqual(1, len(cmds)) self.assertEqual('task2', cmds[0].task_spec.get_name()) # Now assume task2 completed. task2_ex = self._create_task_execution('task2', states.SUCCESS) task2_ex.executions.append( models.ActionExecution( name='std.echo', workflow_name='wf', state=states.SUCCESS, output={'result': 'Hi!'}, accepted=True ) ) cmds = wf_ctrl.continue_workflow() task1_ex.processed = True self.assertEqual(0, len(cmds))
def test_start_workflow_without_task(self, get_workflow_execution): get_workflow_execution.return_value = self.wf_ex wf_ctrl = reverse_wf.ReverseWorkflowController(self.wf_ex) self.assertRaises(exc.WorkflowException, wf_ctrl.continue_workflow)