From 2e9205fa08d9f661d81a80af4c6dd3f307fdf2b2 Mon Sep 17 00:00:00 2001 From: mike cullerton Date: Wed, 11 May 2022 15:07:47 -0400 Subject: [PATCH] Test and workflow for new script --- .../get_workflow_state.bpmn | 86 +++++++++++++++++++ tests/scripts/test_get_workflow_state.py | 53 ++++++++++++ 2 files changed, 139 insertions(+) create mode 100644 tests/data/get_workflow_state/get_workflow_state.bpmn create mode 100644 tests/scripts/test_get_workflow_state.py diff --git a/tests/data/get_workflow_state/get_workflow_state.bpmn b/tests/data/get_workflow_state/get_workflow_state.bpmn new file mode 100644 index 00000000..42c3067d --- /dev/null +++ b/tests/data/get_workflow_state/get_workflow_state.bpmn @@ -0,0 +1,86 @@ + + + + + Flow_0swyqww + + + + Flow_1pun04v + + + + Flow_17sm08f + Flow_0xj9g7j + workflow_state = get_workflow_state(workflow_spec_id=workflow_spec_id) + + + + + + + + + + + + + Flow_0swyqww + Flow_17sm08f + + + + ## Workflow State + + +### State +{{ workflow_state.state }} + + +### Message +{{ workflow_state.message }} + + + Flow_0xj9g7j + Flow_1pun04v + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/scripts/test_get_workflow_state.py b/tests/scripts/test_get_workflow_state.py new file mode 100644 index 00000000..9429b56a --- /dev/null +++ b/tests/scripts/test_get_workflow_state.py @@ -0,0 +1,53 @@ +from tests.base_test import BaseTest + +from crc import session + + +class TestGetWorkflowState(BaseTest): + + def get_workflow_state(self, workflow_spec_id): + + workflow = self.create_workflow('get_workflow_state') + workflow_api = self.get_workflow_api(workflow) + task = workflow_api.next_task + + task_data = {'workflow_spec_id': workflow_spec_id} + try: + workflow_api = self.complete_form(workflow, task, task_data) + except AssertionError: + raise + + task = workflow_api.next_task + + workflow_state = task.data['workflow_state'] + return workflow_state + + def test_get_workflow_state(self): + + test_state = 'required' + test_state_message = 'This workflow is required.' + simple_form = self.create_workflow('simple_form') + + # This runs the get_workflow_state script and returns the result from task data + workflow_state = self.get_workflow_state('simple_form') + + # At first, we have no state or state_message + self.assertEqual(None, workflow_state['state']) + self.assertEqual(None, workflow_state['message']) + + # Set the state and state_message + simple_form.state = test_state + simple_form.state_message = test_state_message + session.add(simple_form) + session.commit() + + # Get workflow_state again + workflow_state = self.get_workflow_state('simple_form') + + # Now, it should have a state and state_message + self.assertEqual(test_state, workflow_state['state']) + self.assertEqual(test_state_message, workflow_state['message']) + + def test_get_workflow_state_bad_spec_id(self): + with self.assertRaises(AssertionError) as ae: + self.get_workflow_state('bad_spec_id')