Skip to content

Commit 66cce62

Browse files
committed
Add orquesta test which verifies "{{ config_context }}" notation for
default parameter values works for executions scheduled via Orquesta workflow.
1 parent 29e9834 commit 66cce62

File tree

5 files changed

+69
-0
lines changed

5 files changed

+69
-0
lines changed

contrib/runners/orquesta_runner/tests/unit/test_basic.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,40 @@ def test_run_workflow_with_unicode_input(self):
298298
self.assertDictEqual(lv_ac_db.result, expected_result)
299299
self.assertDictEqual(ac_ex_db.result, expected_result)
300300

301+
def test_run_workflow_action_config_context(self):
302+
wf_meta = base.get_wf_fixture_meta_data(TEST_PACK_PATH, 'config-context.yaml')
303+
wf_input = {}
304+
lv_ac_db = lv_db_models.LiveActionDB(action=wf_meta['name'], parameters=wf_input)
305+
lv_ac_db, ac_ex_db = ac_svc.request(lv_ac_db)
306+
307+
# Assert action execution is running.
308+
lv_ac_db = lv_db_access.LiveAction.get_by_id(str(lv_ac_db.id))
309+
self.assertEqual(lv_ac_db.status, ac_const.LIVEACTION_STATUS_RUNNING, lv_ac_db.result)
310+
wf_ex_db = wf_db_access.WorkflowExecution.query(action_execution=str(ac_ex_db.id))[0]
311+
self.assertEqual(wf_ex_db.status, ac_const.LIVEACTION_STATUS_RUNNING)
312+
313+
# Assert task1 is already completed.
314+
query_filters = {'workflow_execution': str(wf_ex_db.id), 'task_id': 'task1'}
315+
tk1_ex_db = wf_db_access.TaskExecution.query(**query_filters)[0]
316+
tk1_ac_ex_db = ex_db_access.ActionExecution.query(task_execution=str(tk1_ex_db.id))[0]
317+
tk1_lv_ac_db = lv_db_access.LiveAction.get_by_id(tk1_ac_ex_db.liveaction['id'])
318+
self.assertEqual(tk1_lv_ac_db.status, ac_const.LIVEACTION_STATUS_SUCCEEDED)
319+
self.assertTrue(wf_svc.is_action_execution_under_workflow_context(tk1_ac_ex_db))
320+
321+
# Manually handle action execution completion.
322+
wf_svc.handle_action_execution_completion(tk1_ac_ex_db)
323+
324+
# Assert workflow is completed.
325+
wf_ex_db = wf_db_access.WorkflowExecution.get_by_id(wf_ex_db.id)
326+
self.assertEqual(wf_ex_db.status, wf_states.SUCCEEDED)
327+
lv_ac_db = lv_db_access.LiveAction.get_by_id(str(lv_ac_db.id))
328+
self.assertEqual(lv_ac_db.status, ac_const.LIVEACTION_STATUS_SUCCEEDED)
329+
ac_ex_db = ex_db_access.ActionExecution.get_by_id(str(ac_ex_db.id))
330+
self.assertEqual(ac_ex_db.status, ac_const.LIVEACTION_STATUS_SUCCEEDED)
331+
332+
# Verify config_context works
333+
self.assertEqual(wf_ex_db.output, {'msg': 'value of config key a'})
334+
301335
def test_run_workflow_with_action_less_tasks(self):
302336
wf_meta = base.get_wf_fixture_meta_data(TEST_PACK_PATH, 'action-less-tasks.yaml')
303337
wf_input = {'name': 'Thanos'}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
name: "config-context-action"
3+
runner_type: "local-shell-cmd"
4+
enabled: true
5+
entry_point: ""
6+
parameters:
7+
cmd:
8+
immutable: true
9+
default: "echo \"{{ config_context.config_key_a }}\""
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
name: config-context
3+
description: Workflow which tests {{ config_context.foo }} notation works default parameter values for workflow actions.
4+
pack: orquesta_tests
5+
runner_type: orquesta
6+
entry_point: workflows/config-context.yaml
7+
enabled: true
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
version: 1.0
2+
3+
description: Workflow which tests {{ config_context }} functionality.
4+
5+
output:
6+
- msg: <% ctx().message %>
7+
8+
tasks:
9+
task1:
10+
action: orquesta_tests.config-context-action
11+
next:
12+
- when: <% succeeded() %>
13+
publish: message=<% result().stdout %>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
config_key_a:
3+
description: "Sample config key."
4+
type: "string"
5+
default: "value of config key a"
6+
required: true

0 commit comments

Comments
 (0)