From 9ddc32e9f78c1511fd47f58b5cb293264a00ac96 Mon Sep 17 00:00:00 2001 From: Renat Akhmerov Date: Mon, 21 Nov 2016 15:35:45 +0700 Subject: [PATCH] Add a test for invalid task input expression * In fact, the bug does not exist. This patch only add a test to validate that the behavior in case of invalid task input Change-Id: If5dd3486114bf03ec98c251070e8613d1acee8ce Closes-Bug: 1527173 --- .../tests/unit/engine/test_error_handling.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/mistral/tests/unit/engine/test_error_handling.py b/mistral/tests/unit/engine/test_error_handling.py index 44ddd1a98..a3a43bd44 100644 --- a/mistral/tests/unit/engine/test_error_handling.py +++ b/mistral/tests/unit/engine/test_error_handling.py @@ -658,3 +658,38 @@ class ErrorHandlingEngineTest(base.EngineTestCase): self.assertEqual(states.ERROR, task_ex.state) self.assertIsNotNone(task_ex.state_info) self.assertEqual(states.ERROR, wf_ex.state) + + def test_invalid_task_input(self): + wf_text = """--- + version: '2.0' + + wf: + tasks: + task1: + action: std.noop + on-success: task2 + + task2: + action: std.echo output=<% $.non_existing_function_AAA() %> + """ + + wf_service.create_workflows(wf_text) + + wf_ex = self.engine.start_workflow('wf', {}) + + self.await_workflow_error(wf_ex.id) + + with db_api.transaction(): + wf_ex = db_api.get_workflow_execution(wf_ex.id) + + tasks = wf_ex.task_executions + + self.assertEqual(2, len(tasks)) + + self._assert_single_item(tasks, name='task1', state=states.SUCCESS) + t2 = self._assert_single_item(tasks, name='task2', state=states.ERROR) + + self.assertIsNotNone(t2.state_info) + self.assertIn('Can not evaluate YAQL expression', t2.state_info) + self.assertIsNotNone(wf_ex.state_info) + self.assertIn('Can not evaluate YAQL expression', wf_ex.state_info)