From 2aea4bc1aeda550a5dc5cf3b9deefc65d869b4dc Mon Sep 17 00:00:00 2001 From: mike cullerton Date: Tue, 22 Feb 2022 14:37:53 -0500 Subject: [PATCH] Test for new script --- tests/data/start_workflow/start_workflow.bpmn | 76 +++++++++++++++++++ tests/scripts/test_start_workflow.py | 35 +++++++++ 2 files changed, 111 insertions(+) create mode 100644 tests/data/start_workflow/start_workflow.bpmn create mode 100644 tests/scripts/test_start_workflow.py diff --git a/tests/data/start_workflow/start_workflow.bpmn b/tests/data/start_workflow/start_workflow.bpmn new file mode 100644 index 00000000..c0b6ea17 --- /dev/null +++ b/tests/data/start_workflow/start_workflow.bpmn @@ -0,0 +1,76 @@ + + + + + Flow_0ac3s7d + + + + + + Flow_1ppd3wf + + + + + + + + + + + + + Flow_0ac3s7d + Flow_03vp8ep + + + Flow_03vp8ep + Flow_0etvuwr + workflow_api = start_workflow(workflow_spec_id=workflow_spec_to_start) + + + ## Result + + +{{ workflow_api }} + Flow_0etvuwr + Flow_1ppd3wf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/scripts/test_start_workflow.py b/tests/scripts/test_start_workflow.py new file mode 100644 index 00000000..b4dfcf9f --- /dev/null +++ b/tests/scripts/test_start_workflow.py @@ -0,0 +1,35 @@ +from tests.base_test import BaseTest + +from crc import session +from crc.models.study import StudyModel +from crc.models.workflow import WorkflowModel +from crc.services.study_service import StudyService +from crc.services.workflow_spec_service import WorkflowSpecService + + +class TestStartWorkflow(BaseTest): + + def test_start_workflow_validation(self): + spec_model = self.load_test_spec('start_workflow') + rv = self.app.get('/v1.0/workflow-specification/%s/validate' % spec_model.id, headers=self.logged_in_headers()) + self.assertEqual([], rv.json) + + def test_start_workflow(self): + self.add_users() + self.create_workflow('hello_world') + workflow_spec_to_start = WorkflowSpecService().get_spec('hello_world') + + workflow = self.create_workflow('start_workflow') + study_id = workflow.study_id + study = session.query(StudyModel).filter(StudyModel.id==study_id).first() + StudyService.add_all_workflow_specs_to_study(study, [workflow_spec_to_start]) + + workflow_before = session.query(WorkflowModel).filter(WorkflowModel.workflow_spec_id=='hello_world').first() + self.assertEqual('not_started', workflow_before.status.value) + + workflow_api = self.get_workflow_api(workflow) + task = workflow_api.next_task + self.complete_form(workflow, task, {'workflow_spec_to_start': 'hello_world'}) + + workflow_after = session.query(WorkflowModel).filter(WorkflowModel.workflow_spec_id=='hello_world').first() + self.assertEqual('user_input_required', workflow_after.status.value)