Merge "Add "Task ID" field for "action-execution-get" command output"
This commit is contained in:
@@ -35,20 +35,24 @@ def format(action_ex=None, lister=False):
|
|||||||
'Name',
|
'Name',
|
||||||
'Workflow name',
|
'Workflow name',
|
||||||
'Task name',
|
'Task name',
|
||||||
|
'Task ID',
|
||||||
'State',
|
'State',
|
||||||
'State info',
|
'State info',
|
||||||
'Is accepted',
|
'Accepted',
|
||||||
)
|
)
|
||||||
|
|
||||||
if action_ex:
|
if action_ex:
|
||||||
state_info = (action_ex.state_info if not lister
|
state_info = (
|
||||||
else base.cut(action_ex.state_info))
|
action_ex.state_info if not lister
|
||||||
|
else base.cut(action_ex.state_info)
|
||||||
|
)
|
||||||
|
|
||||||
data = (
|
data = (
|
||||||
action_ex.id,
|
action_ex.id,
|
||||||
action_ex.name,
|
action_ex.name,
|
||||||
action_ex.workflow_name,
|
action_ex.workflow_name,
|
||||||
action_ex.task_name if hasattr(action_ex, 'task_name') else None,
|
action_ex.task_name if hasattr(action_ex, 'task_name') else None,
|
||||||
|
action_ex.task_execution_id,
|
||||||
action_ex.state,
|
action_ex.state,
|
||||||
state_info,
|
state_info,
|
||||||
action_ex.accepted,
|
action_ex.accepted,
|
||||||
@@ -144,12 +148,14 @@ class List(base.MistralLister):
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'task_execution_id',
|
'task_execution_id',
|
||||||
nargs='?',
|
nargs='?',
|
||||||
help='Task execution ID.')
|
help='Task execution ID.'
|
||||||
|
)
|
||||||
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def _get_resources(self, parsed_args):
|
def _get_resources(self, parsed_args):
|
||||||
mistral_client = self.app.client_manager.workflow_engine
|
mistral_client = self.app.client_manager.workflow_engine
|
||||||
|
|
||||||
return mistral_client.action_executions.list(
|
return mistral_client.action_executions.list(
|
||||||
parsed_args.task_execution_id
|
parsed_args.task_execution_id
|
||||||
)
|
)
|
||||||
@@ -161,13 +167,13 @@ class Get(command.ShowOne):
|
|||||||
def get_parser(self, prog_name):
|
def get_parser(self, prog_name):
|
||||||
parser = super(Get, self).get_parser(prog_name)
|
parser = super(Get, self).get_parser(prog_name)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument('action_execution', help='Action execution ID.')
|
||||||
'action_execution',
|
|
||||||
help='Action execution ID.')
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
mistral_client = self.app.client_manager.workflow_engine
|
mistral_client = self.app.client_manager.workflow_engine
|
||||||
|
|
||||||
execution = mistral_client.action_executions.get(
|
execution = mistral_client.action_executions.get(
|
||||||
parsed_args.action_execution
|
parsed_args.action_execution
|
||||||
)
|
)
|
||||||
|
@@ -32,47 +32,60 @@ class MistralClientTestBase(base.MistralCLIAuth, base.MistralCLIAltAuth):
|
|||||||
super(MistralClientTestBase, cls).setUpClass()
|
super(MistralClientTestBase, cls).setUpClass()
|
||||||
|
|
||||||
cls.wb_def = os.path.relpath(
|
cls.wb_def = os.path.relpath(
|
||||||
'functionaltests/resources/v2/wb_v2.yaml', os.getcwd())
|
'functionaltests/resources/v2/wb_v2.yaml', os.getcwd()
|
||||||
|
)
|
||||||
|
|
||||||
cls.wb_with_tags_def = os.path.relpath(
|
cls.wb_with_tags_def = os.path.relpath(
|
||||||
'functionaltests/resources/v2/wb_with_tags_v2.yaml', os.getcwd())
|
'functionaltests/resources/v2/wb_with_tags_v2.yaml', os.getcwd()
|
||||||
|
)
|
||||||
|
|
||||||
cls.wf_def = os.path.relpath(
|
cls.wf_def = os.path.relpath(
|
||||||
'functionaltests/resources/v2/wf_v2.yaml', os.getcwd())
|
'functionaltests/resources/v2/wf_v2.yaml', os.getcwd()
|
||||||
|
)
|
||||||
|
|
||||||
cls.wf_single_def = os.path.relpath(
|
cls.wf_single_def = os.path.relpath(
|
||||||
'functionaltests/resources/v2/wf_single_v2.yaml', os.getcwd())
|
'functionaltests/resources/v2/wf_single_v2.yaml', os.getcwd()
|
||||||
|
)
|
||||||
|
|
||||||
cls.wf_with_delay_def = os.path.relpath(
|
cls.wf_with_delay_def = os.path.relpath(
|
||||||
'functionaltests/resources/v2/wf_delay_v2.yaml', os.getcwd())
|
'functionaltests/resources/v2/wf_delay_v2.yaml', os.getcwd()
|
||||||
|
)
|
||||||
|
|
||||||
cls.act_def = os.path.relpath(
|
cls.act_def = os.path.relpath(
|
||||||
'functionaltests/resources/v2/action_v2.yaml', os.getcwd())
|
'functionaltests/resources/v2/action_v2.yaml', os.getcwd()
|
||||||
|
)
|
||||||
|
|
||||||
cls.act_tag_def = os.path.relpath(
|
cls.act_tag_def = os.path.relpath(
|
||||||
'functionaltests/resources/v2/action_v2_tags.yaml', os.getcwd())
|
'functionaltests/resources/v2/action_v2_tags.yaml', os.getcwd()
|
||||||
|
)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(MistralClientTestBase, self).setUp()
|
super(MistralClientTestBase, self).setUp()
|
||||||
|
|
||||||
def get_value_of_field(self, obj, field):
|
def get_field_value(self, obj, field):
|
||||||
return [o['Value'] for o in obj
|
return [
|
||||||
if o['Field'] == "{0}".format(field)][0]
|
o['Value'] for o in obj
|
||||||
|
if o['Field'] == "{0}".format(field)
|
||||||
|
][0]
|
||||||
|
|
||||||
def get_item_info(self, get_from, get_by, value):
|
def get_item_info(self, get_from, get_by, value):
|
||||||
return [i for i in get_from if i[get_by] == value][0]
|
return [i for i in get_from if i[get_by] == value][0]
|
||||||
|
|
||||||
def mistral_admin(self, cmd, params=""):
|
def mistral_admin(self, cmd, params=""):
|
||||||
self.clients = self._get_admin_clients()
|
self.clients = self._get_admin_clients()
|
||||||
return self.parser.listing(self.mistral(
|
|
||||||
'{0}'.format(cmd), params='{0}'.format(params)))
|
return self.parser.listing(
|
||||||
|
self.mistral('{0}'.format(cmd), params='{0}'.format(params))
|
||||||
|
)
|
||||||
|
|
||||||
def mistral_alt_user(self, cmd, params=""):
|
def mistral_alt_user(self, cmd, params=""):
|
||||||
self.clients = self._get_alt_clients()
|
self.clients = self._get_alt_clients()
|
||||||
return self.parser.listing(self.mistral_alt(
|
|
||||||
'{0}'.format(cmd), params='{0}'.format(params)))
|
|
||||||
|
|
||||||
def mistral_cli(self, admin, cmd, params):
|
return self.parser.listing(
|
||||||
|
self.mistral_alt('{0}'.format(cmd), params='{0}'.format(params))
|
||||||
|
)
|
||||||
|
|
||||||
|
def mistral_cli(self, admin, cmd, params=''):
|
||||||
if admin:
|
if admin:
|
||||||
return self.mistral_admin(cmd, params)
|
return self.mistral_admin(cmd, params)
|
||||||
else:
|
else:
|
||||||
@@ -82,16 +95,24 @@ class MistralClientTestBase(base.MistralCLIAuth, base.MistralCLIAltAuth):
|
|||||||
wb = self.mistral_cli(
|
wb = self.mistral_cli(
|
||||||
admin,
|
admin,
|
||||||
'workbook-create',
|
'workbook-create',
|
||||||
params='{0}'.format(wb_def))
|
params='{0}'.format(wb_def)
|
||||||
wb_name = self.get_value_of_field(wb, "Name")
|
)
|
||||||
self.addCleanup(self.mistral_cli,
|
|
||||||
admin,
|
wb_name = self.get_field_value(wb, "Name")
|
||||||
'workbook-delete',
|
|
||||||
params=wb_name)
|
self.addCleanup(
|
||||||
self.addCleanup(self.mistral_cli,
|
self.mistral_cli,
|
||||||
admin,
|
admin,
|
||||||
'workflow-delete',
|
'workbook-delete',
|
||||||
params='wb.wf1')
|
params=wb_name
|
||||||
|
)
|
||||||
|
|
||||||
|
self.addCleanup(
|
||||||
|
self.mistral_cli,
|
||||||
|
admin,
|
||||||
|
'workflow-delete',
|
||||||
|
params='wb.wf1'
|
||||||
|
)
|
||||||
|
|
||||||
return wb
|
return wb
|
||||||
|
|
||||||
@@ -156,17 +177,20 @@ class MistralClientTestBase(base.MistralCLIAuth, base.MistralCLIAltAuth):
|
|||||||
def cron_trigger_create(self, name, wf_name, wf_input, pattern=None,
|
def cron_trigger_create(self, name, wf_name, wf_input, pattern=None,
|
||||||
count=None, first_time=None, admin=True):
|
count=None, first_time=None, admin=True):
|
||||||
optional_params = ""
|
optional_params = ""
|
||||||
|
|
||||||
if pattern:
|
if pattern:
|
||||||
optional_params += ' --pattern "{}"'.format(pattern)
|
optional_params += ' --pattern "{}"'.format(pattern)
|
||||||
if count:
|
if count:
|
||||||
optional_params += ' --count {}'.format(count)
|
optional_params += ' --count {}'.format(count)
|
||||||
if first_time:
|
if first_time:
|
||||||
optional_params += ' --first-time "{}"'.format(first_time)
|
optional_params += ' --first-time "{}"'.format(first_time)
|
||||||
|
|
||||||
trigger = self.mistral_cli(
|
trigger = self.mistral_cli(
|
||||||
admin,
|
admin,
|
||||||
'cron-trigger-create',
|
'cron-trigger-create',
|
||||||
params='{} {} {} {}'.format(name, wf_name, wf_input,
|
params='{} {} {} {}'.format(name, wf_name, wf_input,
|
||||||
optional_params))
|
optional_params))
|
||||||
|
|
||||||
self.addCleanup(self.mistral_cli,
|
self.addCleanup(self.mistral_cli,
|
||||||
admin,
|
admin,
|
||||||
'cron-trigger-delete',
|
'cron-trigger-delete',
|
||||||
@@ -176,21 +200,27 @@ class MistralClientTestBase(base.MistralCLIAuth, base.MistralCLIAltAuth):
|
|||||||
|
|
||||||
def execution_create(self, params, admin=True):
|
def execution_create(self, params, admin=True):
|
||||||
ex = self.mistral_cli(admin, 'execution-create', params=params)
|
ex = self.mistral_cli(admin, 'execution-create', params=params)
|
||||||
exec_id = self.get_value_of_field(ex, 'ID')
|
exec_id = self.get_field_value(ex, 'ID')
|
||||||
self.addCleanup(self.mistral_cli,
|
|
||||||
admin,
|
self.addCleanup(
|
||||||
'execution-delete',
|
self.mistral_cli,
|
||||||
params=exec_id)
|
admin,
|
||||||
|
'execution-delete',
|
||||||
|
params=exec_id
|
||||||
|
)
|
||||||
|
|
||||||
return ex
|
return ex
|
||||||
|
|
||||||
def environment_create(self, params, admin=True):
|
def environment_create(self, params, admin=True):
|
||||||
env = self.mistral_cli(admin, 'environment-create', params=params)
|
env = self.mistral_cli(admin, 'environment-create', params=params)
|
||||||
env_name = self.get_value_of_field(env, 'Name')
|
env_name = self.get_field_value(env, 'Name')
|
||||||
self.addCleanup(self.mistral_cli,
|
|
||||||
admin,
|
self.addCleanup(
|
||||||
'environment-delete',
|
self.mistral_cli,
|
||||||
params=env_name)
|
admin,
|
||||||
|
'environment-delete',
|
||||||
|
params=env_name
|
||||||
|
)
|
||||||
|
|
||||||
return env
|
return env
|
||||||
|
|
||||||
@@ -198,13 +228,14 @@ class MistralClientTestBase(base.MistralCLIAuth, base.MistralCLIAltAuth):
|
|||||||
f = open(file_name, 'w')
|
f = open(file_name, 'w')
|
||||||
f.write(file_body)
|
f.write(file_body)
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
self.addCleanup(os.remove, file_name)
|
self.addCleanup(os.remove, file_name)
|
||||||
|
|
||||||
def wait_execution_success(self, exec_id, timeout=180):
|
def wait_execution_success(self, exec_id, timeout=180):
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
|
|
||||||
ex = self.mistral_admin('execution-get', params=exec_id)
|
ex = self.mistral_admin('execution-get', params=exec_id)
|
||||||
exec_state = self.get_value_of_field(ex, 'State')
|
exec_state = self.get_field_value(ex, 'State')
|
||||||
|
|
||||||
expected_states = ['SUCCESS', 'RUNNING']
|
expected_states = ['SUCCESS', 'RUNNING']
|
||||||
|
|
||||||
@@ -212,14 +243,16 @@ class MistralClientTestBase(base.MistralCLIAuth, base.MistralCLIAltAuth):
|
|||||||
if time.time() - start_time > timeout:
|
if time.time() - start_time > timeout:
|
||||||
msg = ("Execution exceeds timeout {0} to change state "
|
msg = ("Execution exceeds timeout {0} to change state "
|
||||||
"to SUCCESS. Execution: {1}".format(timeout, ex))
|
"to SUCCESS. Execution: {1}".format(timeout, ex))
|
||||||
|
|
||||||
raise exceptions.TimeoutException(msg)
|
raise exceptions.TimeoutException(msg)
|
||||||
|
|
||||||
ex = self.mistral_admin('execution-get', params=exec_id)
|
ex = self.mistral_admin('execution-get', params=exec_id)
|
||||||
exec_state = self.get_value_of_field(ex, 'State')
|
exec_state = self.get_field_value(ex, 'State')
|
||||||
|
|
||||||
if exec_state not in expected_states:
|
if exec_state not in expected_states:
|
||||||
msg = ("Execution state %s is not in expected "
|
msg = ("Execution state %s is not in expected "
|
||||||
"states: %s" % (exec_state, expected_states))
|
"states: %s" % (exec_state, expected_states))
|
||||||
|
|
||||||
raise exceptions.TempestException(msg)
|
raise exceptions.TempestException(msg)
|
||||||
|
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
|
@@ -83,7 +83,7 @@ class WorkbookIsolationCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
def test_wb_isolation(self):
|
def test_wb_isolation(self):
|
||||||
wb = self.workbook_create(self.wb_def)
|
wb = self.workbook_create(self.wb_def)
|
||||||
wb_name = self.get_value_of_field(wb, "Name")
|
wb_name = self.get_field_value(wb, "Name")
|
||||||
wbs = self.mistral_admin("workbook-list")
|
wbs = self.mistral_admin("workbook-list")
|
||||||
|
|
||||||
self.assertIn(wb_name, [w["Name"] for w in wbs])
|
self.assertIn(wb_name, [w["Name"] for w in wbs])
|
||||||
@@ -94,7 +94,7 @@ class WorkbookIsolationCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
def test_get_wb_from_another_tenant(self):
|
def test_get_wb_from_another_tenant(self):
|
||||||
wb = self.workbook_create(self.wb_def)
|
wb = self.workbook_create(self.wb_def)
|
||||||
name = self.get_value_of_field(wb, "Name")
|
name = self.get_field_value(wb, "Name")
|
||||||
|
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.CommandFailed,
|
exceptions.CommandFailed,
|
||||||
@@ -105,7 +105,7 @@ class WorkbookIsolationCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
def test_delete_wb_from_another_tenant(self):
|
def test_delete_wb_from_another_tenant(self):
|
||||||
wb = self.workbook_create(self.wb_def)
|
wb = self.workbook_create(self.wb_def)
|
||||||
name = self.get_value_of_field(wb, "Name")
|
name = self.get_field_value(wb, "Name")
|
||||||
|
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.CommandFailed,
|
exceptions.CommandFailed,
|
||||||
@@ -166,7 +166,7 @@ class WorkflowIsolationCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
wf[0]["Name"],
|
wf[0]["Name"],
|
||||||
self.get_value_of_field(same_wf, "Name")
|
self.get_field_value(same_wf, "Name")
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_delete_wf_from_another_tenant(self):
|
def test_delete_wf_from_another_tenant(self):
|
||||||
@@ -188,13 +188,13 @@ class WorkflowSharingCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
def _update_shared_workflow(self, new_status='accepted'):
|
def _update_shared_workflow(self, new_status='accepted'):
|
||||||
member = self.workflow_member_create(self.wf[0]["ID"])
|
member = self.workflow_member_create(self.wf[0]["ID"])
|
||||||
status = self.get_value_of_field(member, 'Status')
|
status = self.get_field_value(member, 'Status')
|
||||||
|
|
||||||
self.assertEqual('pending', status)
|
self.assertEqual('pending', status)
|
||||||
|
|
||||||
cmd_param = '%s workflow --status %s' % (self.wf[0]["ID"], new_status)
|
cmd_param = '%s workflow --status %s' % (self.wf[0]["ID"], new_status)
|
||||||
member = self.mistral_alt_user("member-update", params=cmd_param)
|
member = self.mistral_alt_user("member-update", params=cmd_param)
|
||||||
status = self.get_value_of_field(member, 'Status')
|
status = self.get_field_value(member, 'Status')
|
||||||
|
|
||||||
self.assertEqual(new_status, status)
|
self.assertEqual(new_status, status)
|
||||||
|
|
||||||
@@ -222,7 +222,7 @@ class WorkflowSharingCLITests(base_v2.MistralClientTestBase):
|
|||||||
self._update_shared_workflow(new_status='accepted')
|
self._update_shared_workflow(new_status='accepted')
|
||||||
|
|
||||||
execution = self.execution_create(self.wf[0]["ID"], admin=False)
|
execution = self.execution_create(self.wf[0]["ID"], admin=False)
|
||||||
wf_name = self.get_value_of_field(execution, 'Workflow name')
|
wf_name = self.get_field_value(execution, 'Workflow name')
|
||||||
|
|
||||||
self.assertEqual(self.wf[0]["Name"], wf_name)
|
self.assertEqual(self.wf[0]["Name"], wf_name)
|
||||||
|
|
||||||
@@ -236,7 +236,7 @@ class WorkflowSharingCLITests(base_v2.MistralClientTestBase):
|
|||||||
"5 * * * *",
|
"5 * * * *",
|
||||||
admin=False
|
admin=False
|
||||||
)
|
)
|
||||||
wf_name = self.get_value_of_field(trigger, 'Workflow')
|
wf_name = self.get_field_value(trigger, 'Workflow')
|
||||||
|
|
||||||
self.assertEqual(self.wf[0]["Name"], wf_name)
|
self.assertEqual(self.wf[0]["Name"], wf_name)
|
||||||
|
|
||||||
@@ -311,7 +311,7 @@ class ActionIsolationCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
act[0]["Name"],
|
act[0]["Name"],
|
||||||
self.get_value_of_field(same_act, "Name")
|
self.get_field_value(same_act, "Name")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -372,7 +372,7 @@ class ExecutionIsolationCLITests(base_v2.MistralClientTestBase):
|
|||||||
def test_execution_isolation(self):
|
def test_execution_isolation(self):
|
||||||
wf = self.workflow_create(self.wf_def)
|
wf = self.workflow_create(self.wf_def)
|
||||||
ex = self.execution_create(wf[0]["Name"])
|
ex = self.execution_create(wf[0]["Name"])
|
||||||
exec_id = self.get_value_of_field(ex, "ID")
|
exec_id = self.get_field_value(ex, "ID")
|
||||||
|
|
||||||
execs = self.mistral_admin("execution-list")
|
execs = self.mistral_admin("execution-list")
|
||||||
self.assertIn(exec_id, [e["ID"] for e in execs])
|
self.assertIn(exec_id, [e["ID"] for e in execs])
|
||||||
@@ -383,7 +383,7 @@ class ExecutionIsolationCLITests(base_v2.MistralClientTestBase):
|
|||||||
def test_get_execution_from_another_tenant(self):
|
def test_get_execution_from_another_tenant(self):
|
||||||
wf = self.workflow_create(self.wf_def)
|
wf = self.workflow_create(self.wf_def)
|
||||||
ex = self.execution_create(wf[0]["Name"])
|
ex = self.execution_create(wf[0]["Name"])
|
||||||
exec_id = self.get_value_of_field(ex, "ID")
|
exec_id = self.get_field_value(ex, "ID")
|
||||||
|
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.CommandFailed,
|
exceptions.CommandFailed,
|
||||||
@@ -426,7 +426,7 @@ class EnvironmentIsolationCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
def test_environment_isolation(self):
|
def test_environment_isolation(self):
|
||||||
env = self.environment_create(self.env_file)
|
env = self.environment_create(self.env_file)
|
||||||
env_name = self.get_value_of_field(env, "Name")
|
env_name = self.get_field_value(env, "Name")
|
||||||
envs = self.mistral_admin("environment-list")
|
envs = self.mistral_admin("environment-list")
|
||||||
|
|
||||||
self.assertIn(env_name, [en["Name"] for en in envs])
|
self.assertIn(env_name, [en["Name"] for en in envs])
|
||||||
@@ -437,7 +437,7 @@ class EnvironmentIsolationCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
def test_get_env_from_another_tenant(self):
|
def test_get_env_from_another_tenant(self):
|
||||||
env = self.environment_create(self.env_file)
|
env = self.environment_create(self.env_file)
|
||||||
env_name = self.get_value_of_field(env, "Name")
|
env_name = self.get_field_value(env, "Name")
|
||||||
|
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.CommandFailed,
|
exceptions.CommandFailed,
|
||||||
@@ -448,7 +448,7 @@ class EnvironmentIsolationCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
def test_delete_env_from_another_tenant(self):
|
def test_delete_env_from_another_tenant(self):
|
||||||
env = self.environment_create(self.env_file)
|
env = self.environment_create(self.env_file)
|
||||||
env_name = self.get_value_of_field(env, "Name")
|
env_name = self.get_field_value(env, "Name")
|
||||||
|
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.CommandFailed,
|
exceptions.CommandFailed,
|
||||||
@@ -463,7 +463,7 @@ class ActionExecutionIsolationCLITests(base_v2.MistralClientTestBase):
|
|||||||
def test_action_execution_isolation(self):
|
def test_action_execution_isolation(self):
|
||||||
wf = self.workflow_create(self.wf_def)
|
wf = self.workflow_create(self.wf_def)
|
||||||
wf_exec = self.execution_create(wf[0]["Name"])
|
wf_exec = self.execution_create(wf[0]["Name"])
|
||||||
direct_ex_id = self.get_value_of_field(wf_exec, 'ID')
|
direct_ex_id = self.get_field_value(wf_exec, 'ID')
|
||||||
|
|
||||||
self.wait_execution_success(direct_ex_id)
|
self.wait_execution_success(direct_ex_id)
|
||||||
|
|
||||||
@@ -478,7 +478,7 @@ class ActionExecutionIsolationCLITests(base_v2.MistralClientTestBase):
|
|||||||
def test_get_action_execution_from_another_tenant(self):
|
def test_get_action_execution_from_another_tenant(self):
|
||||||
wf = self.workflow_create(self.wf_def)
|
wf = self.workflow_create(self.wf_def)
|
||||||
ex = self.execution_create(wf[0]["Name"])
|
ex = self.execution_create(wf[0]["Name"])
|
||||||
exec_id = self.get_value_of_field(ex, "ID")
|
exec_id = self.get_field_value(ex, "ID")
|
||||||
|
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exceptions.CommandFailed,
|
exceptions.CommandFailed,
|
||||||
|
@@ -93,8 +93,7 @@ class SimpleMistralCLITests(base.MistralCLIAuth):
|
|||||||
self.mistral('action-execution-list'))
|
self.mistral('action-execution-list'))
|
||||||
self.assertTableStruct(
|
self.assertTableStruct(
|
||||||
act_execs,
|
act_execs,
|
||||||
['ID', 'Name', 'Workflow name', 'State',
|
['ID', 'Name', 'Workflow name', 'State', 'State info', 'Accepted']
|
||||||
'State info', 'Is accepted']
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -108,7 +107,7 @@ class WorkbookCLITests(base_v2.MistralClientTestBase):
|
|||||||
def test_workbook_create_delete(self):
|
def test_workbook_create_delete(self):
|
||||||
wb = self.mistral_admin(
|
wb = self.mistral_admin(
|
||||||
'workbook-create', params=self.wb_def)
|
'workbook-create', params=self.wb_def)
|
||||||
wb_name = self.get_value_of_field(wb, "Name")
|
wb_name = self.get_field_value(wb, "Name")
|
||||||
|
|
||||||
self.assertTableStruct(wb, ['Field', 'Value'])
|
self.assertTableStruct(wb, ['Field', 'Value'])
|
||||||
|
|
||||||
@@ -126,22 +125,22 @@ class WorkbookCLITests(base_v2.MistralClientTestBase):
|
|||||||
def test_workbook_create_with_tags(self):
|
def test_workbook_create_with_tags(self):
|
||||||
wb = self.workbook_create(self.wb_with_tags_def)
|
wb = self.workbook_create(self.wb_with_tags_def)
|
||||||
|
|
||||||
tags = self.get_value_of_field(wb, 'Tags')
|
tags = self.get_field_value(wb, 'Tags')
|
||||||
self.assertIn('tag', tags)
|
self.assertIn('tag', tags)
|
||||||
|
|
||||||
def test_workbook_update(self):
|
def test_workbook_update(self):
|
||||||
wb = self.workbook_create(self.wb_def)
|
wb = self.workbook_create(self.wb_def)
|
||||||
wb_name = self.get_value_of_field(wb, "Name")
|
wb_name = self.get_field_value(wb, "Name")
|
||||||
|
|
||||||
init_update_at = self.get_value_of_field(wb, "Updated at")
|
init_update_at = self.get_field_value(wb, "Updated at")
|
||||||
tags = self.get_value_of_field(wb, 'Tags')
|
tags = self.get_field_value(wb, 'Tags')
|
||||||
self.assertNotIn('tag', tags)
|
self.assertNotIn('tag', tags)
|
||||||
|
|
||||||
wb = self.mistral_admin(
|
wb = self.mistral_admin(
|
||||||
'workbook-update', params=self.wb_def)
|
'workbook-update', params=self.wb_def)
|
||||||
update_at = self.get_value_of_field(wb, "Updated at")
|
update_at = self.get_field_value(wb, "Updated at")
|
||||||
name = self.get_value_of_field(wb, 'Name')
|
name = self.get_field_value(wb, 'Name')
|
||||||
tags = self.get_value_of_field(wb, 'Tags')
|
tags = self.get_field_value(wb, 'Tags')
|
||||||
|
|
||||||
self.assertEqual(wb_name, name)
|
self.assertEqual(wb_name, name)
|
||||||
self.assertNotIn('tag', tags)
|
self.assertNotIn('tag', tags)
|
||||||
@@ -151,9 +150,9 @@ class WorkbookCLITests(base_v2.MistralClientTestBase):
|
|||||||
'workbook-update', params=self.wb_with_tags_def)
|
'workbook-update', params=self.wb_with_tags_def)
|
||||||
self.assertTableStruct(wb, ['Field', 'Value'])
|
self.assertTableStruct(wb, ['Field', 'Value'])
|
||||||
|
|
||||||
update_at = self.get_value_of_field(wb, "Updated at")
|
update_at = self.get_field_value(wb, "Updated at")
|
||||||
name = self.get_value_of_field(wb, 'Name')
|
name = self.get_field_value(wb, 'Name')
|
||||||
tags = self.get_value_of_field(wb, 'Tags')
|
tags = self.get_field_value(wb, 'Tags')
|
||||||
|
|
||||||
self.assertEqual(wb_name, name)
|
self.assertEqual(wb_name, name)
|
||||||
self.assertIn('tag', tags)
|
self.assertIn('tag', tags)
|
||||||
@@ -161,23 +160,23 @@ class WorkbookCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
def test_workbook_get(self):
|
def test_workbook_get(self):
|
||||||
created = self.workbook_create(self.wb_with_tags_def)
|
created = self.workbook_create(self.wb_with_tags_def)
|
||||||
wb_name = self.get_value_of_field(created, "Name")
|
wb_name = self.get_field_value(created, "Name")
|
||||||
|
|
||||||
fetched = self.mistral_admin('workbook-get', params=wb_name)
|
fetched = self.mistral_admin('workbook-get', params=wb_name)
|
||||||
|
|
||||||
created_wb_name = self.get_value_of_field(created, 'Name')
|
created_wb_name = self.get_field_value(created, 'Name')
|
||||||
fetched_wb_name = self.get_value_of_field(fetched, 'Name')
|
fetched_wb_name = self.get_field_value(fetched, 'Name')
|
||||||
|
|
||||||
self.assertEqual(created_wb_name, fetched_wb_name)
|
self.assertEqual(created_wb_name, fetched_wb_name)
|
||||||
|
|
||||||
created_wb_tag = self.get_value_of_field(created, 'Tags')
|
created_wb_tag = self.get_field_value(created, 'Tags')
|
||||||
fetched_wb_tag = self.get_value_of_field(fetched, 'Tags')
|
fetched_wb_tag = self.get_field_value(fetched, 'Tags')
|
||||||
|
|
||||||
self.assertEqual(created_wb_tag, fetched_wb_tag)
|
self.assertEqual(created_wb_tag, fetched_wb_tag)
|
||||||
|
|
||||||
def test_workbook_get_definition(self):
|
def test_workbook_get_definition(self):
|
||||||
wb = self.workbook_create(self.wb_def)
|
wb = self.workbook_create(self.wb_def)
|
||||||
wb_name = self.get_value_of_field(wb, "Name")
|
wb_name = self.get_field_value(wb, "Name")
|
||||||
|
|
||||||
definition = self.mistral_admin(
|
definition = self.mistral_admin(
|
||||||
'workbook-get-definition', params=wb_name)
|
'workbook-get-definition', params=wb_name)
|
||||||
@@ -186,8 +185,8 @@ class WorkbookCLITests(base_v2.MistralClientTestBase):
|
|||||||
def test_workbook_validate_with_valid_def(self):
|
def test_workbook_validate_with_valid_def(self):
|
||||||
wb = self.mistral_admin(
|
wb = self.mistral_admin(
|
||||||
'workbook-validate', params=self.wb_def)
|
'workbook-validate', params=self.wb_def)
|
||||||
wb_valid = self.get_value_of_field(wb, 'Valid')
|
wb_valid = self.get_field_value(wb, 'Valid')
|
||||||
wb_error = self.get_value_of_field(wb, 'Error')
|
wb_error = self.get_field_value(wb, 'Error')
|
||||||
|
|
||||||
self.assertEqual('True', wb_valid)
|
self.assertEqual('True', wb_valid)
|
||||||
self.assertEqual('None', wb_error)
|
self.assertEqual('None', wb_error)
|
||||||
@@ -198,8 +197,8 @@ class WorkbookCLITests(base_v2.MistralClientTestBase):
|
|||||||
wb = self.mistral_admin(
|
wb = self.mistral_admin(
|
||||||
'workbook-validate', params='wb.yaml')
|
'workbook-validate', params='wb.yaml')
|
||||||
|
|
||||||
wb_valid = self.get_value_of_field(wb, 'Valid')
|
wb_valid = self.get_field_value(wb, 'Valid')
|
||||||
wb_error = self.get_value_of_field(wb, 'Error')
|
wb_error = self.get_field_value(wb, 'Error')
|
||||||
|
|
||||||
self.assertEqual('False', wb_valid)
|
self.assertEqual('False', wb_valid)
|
||||||
self.assertNotEqual('None', wb_error)
|
self.assertNotEqual('None', wb_error)
|
||||||
@@ -347,7 +346,7 @@ class WorkflowCLITests(base_v2.MistralClientTestBase):
|
|||||||
wf_name = created[0]['Name']
|
wf_name = created[0]['Name']
|
||||||
|
|
||||||
fetched = self.mistral_admin('workflow-get', params=wf_name)
|
fetched = self.mistral_admin('workflow-get', params=wf_name)
|
||||||
fetched_wf_name = self.get_value_of_field(fetched, 'Name')
|
fetched_wf_name = self.get_field_value(fetched, 'Name')
|
||||||
self.assertEqual(wf_name, fetched_wf_name)
|
self.assertEqual(wf_name, fetched_wf_name)
|
||||||
|
|
||||||
def test_workflow_get_with_id(self):
|
def test_workflow_get_with_id(self):
|
||||||
@@ -356,7 +355,7 @@ class WorkflowCLITests(base_v2.MistralClientTestBase):
|
|||||||
wf_id = created[0]['ID']
|
wf_id = created[0]['ID']
|
||||||
|
|
||||||
fetched = self.mistral_admin('workflow-get', params=wf_id)
|
fetched = self.mistral_admin('workflow-get', params=wf_id)
|
||||||
fetched_wf_name = self.get_value_of_field(fetched, 'Name')
|
fetched_wf_name = self.get_field_value(fetched, 'Name')
|
||||||
self.assertEqual(wf_name, fetched_wf_name)
|
self.assertEqual(wf_name, fetched_wf_name)
|
||||||
|
|
||||||
def test_workflow_get_definition(self):
|
def test_workflow_get_definition(self):
|
||||||
@@ -370,8 +369,8 @@ class WorkflowCLITests(base_v2.MistralClientTestBase):
|
|||||||
def test_workflow_validate_with_valid_def(self):
|
def test_workflow_validate_with_valid_def(self):
|
||||||
wf = self.mistral_admin(
|
wf = self.mistral_admin(
|
||||||
'workflow-validate', params=self.wf_def)
|
'workflow-validate', params=self.wf_def)
|
||||||
wf_valid = self.get_value_of_field(wf, 'Valid')
|
wf_valid = self.get_field_value(wf, 'Valid')
|
||||||
wf_error = self.get_value_of_field(wf, 'Error')
|
wf_error = self.get_field_value(wf, 'Error')
|
||||||
|
|
||||||
self.assertEqual('True', wf_valid)
|
self.assertEqual('True', wf_valid)
|
||||||
self.assertEqual('None', wf_error)
|
self.assertEqual('None', wf_error)
|
||||||
@@ -382,8 +381,8 @@ class WorkflowCLITests(base_v2.MistralClientTestBase):
|
|||||||
wf = self.mistral_admin(
|
wf = self.mistral_admin(
|
||||||
'workflow-validate', params='wf.yaml')
|
'workflow-validate', params='wf.yaml')
|
||||||
|
|
||||||
wf_valid = self.get_value_of_field(wf, 'Valid')
|
wf_valid = self.get_field_value(wf, 'Valid')
|
||||||
wf_error = self.get_value_of_field(wf, 'Error')
|
wf_error = self.get_field_value(wf, 'Error')
|
||||||
|
|
||||||
self.assertEqual('False', wf_valid)
|
self.assertEqual('False', wf_valid)
|
||||||
self.assertNotEqual('None', wf_error)
|
self.assertNotEqual('None', wf_error)
|
||||||
@@ -400,6 +399,7 @@ class ExecutionCLITests(base_v2.MistralClientTestBase):
|
|||||||
super(ExecutionCLITests, self).setUp()
|
super(ExecutionCLITests, self).setUp()
|
||||||
|
|
||||||
wfs = self.workflow_create(self.wf_def)
|
wfs = self.workflow_create(self.wf_def)
|
||||||
|
|
||||||
self.direct_wf = wfs[0]
|
self.direct_wf = wfs[0]
|
||||||
self.reverse_wf = wfs[1]
|
self.reverse_wf = wfs[1]
|
||||||
|
|
||||||
@@ -411,13 +411,13 @@ class ExecutionCLITests(base_v2.MistralClientTestBase):
|
|||||||
'execution-create',
|
'execution-create',
|
||||||
params='{0} -d "execution test"'.format(self.direct_wf['Name'])
|
params='{0} -d "execution test"'.format(self.direct_wf['Name'])
|
||||||
)
|
)
|
||||||
exec_id = self.get_value_of_field(execution, 'ID')
|
exec_id = self.get_field_value(execution, 'ID')
|
||||||
self.assertTableStruct(execution, ['Field', 'Value'])
|
self.assertTableStruct(execution, ['Field', 'Value'])
|
||||||
|
|
||||||
wf_name = self.get_value_of_field(execution, 'Workflow name')
|
wf_name = self.get_field_value(execution, 'Workflow name')
|
||||||
wf_id = self.get_value_of_field(execution, 'Workflow ID')
|
wf_id = self.get_field_value(execution, 'Workflow ID')
|
||||||
created_at = self.get_value_of_field(execution, 'Created at')
|
created_at = self.get_field_value(execution, 'Created at')
|
||||||
description = self.get_value_of_field(execution, 'Description')
|
description = self.get_field_value(execution, 'Description')
|
||||||
|
|
||||||
self.assertEqual(self.direct_wf['Name'], wf_name)
|
self.assertEqual(self.direct_wf['Name'], wf_name)
|
||||||
self.assertIsNotNone(wf_id)
|
self.assertIsNotNone(wf_id)
|
||||||
@@ -433,7 +433,7 @@ class ExecutionCLITests(base_v2.MistralClientTestBase):
|
|||||||
def test_execution_create_with_input_and_start_task(self):
|
def test_execution_create_with_input_and_start_task(self):
|
||||||
execution = self.execution_create(
|
execution = self.execution_create(
|
||||||
"%s input task_name" % self.reverse_wf['Name'])
|
"%s input task_name" % self.reverse_wf['Name'])
|
||||||
exec_id = self.get_value_of_field(execution, 'ID')
|
exec_id = self.get_field_value(execution, 'ID')
|
||||||
|
|
||||||
result = self.wait_execution_success(exec_id)
|
result = self.wait_execution_success(exec_id)
|
||||||
self.assertTrue(result)
|
self.assertTrue(result)
|
||||||
@@ -441,8 +441,8 @@ class ExecutionCLITests(base_v2.MistralClientTestBase):
|
|||||||
def test_execution_update(self):
|
def test_execution_update(self):
|
||||||
execution = self.execution_create(self.direct_wf['Name'])
|
execution = self.execution_create(self.direct_wf['Name'])
|
||||||
|
|
||||||
exec_id = self.get_value_of_field(execution, 'ID')
|
exec_id = self.get_field_value(execution, 'ID')
|
||||||
status = self.get_value_of_field(execution, 'State')
|
status = self.get_field_value(execution, 'State')
|
||||||
|
|
||||||
self.assertEqual('RUNNING', status)
|
self.assertEqual('RUNNING', status)
|
||||||
|
|
||||||
@@ -450,8 +450,8 @@ class ExecutionCLITests(base_v2.MistralClientTestBase):
|
|||||||
execution = self.mistral_admin(
|
execution = self.mistral_admin(
|
||||||
'execution-update', params='{0} -s PAUSED'.format(exec_id))
|
'execution-update', params='{0} -s PAUSED'.format(exec_id))
|
||||||
|
|
||||||
updated_exec_id = self.get_value_of_field(execution, 'ID')
|
updated_exec_id = self.get_field_value(execution, 'ID')
|
||||||
status = self.get_value_of_field(execution, 'State')
|
status = self.get_field_value(execution, 'State')
|
||||||
|
|
||||||
self.assertEqual(exec_id, updated_exec_id)
|
self.assertEqual(exec_id, updated_exec_id)
|
||||||
self.assertEqual('PAUSED', status)
|
self.assertEqual('PAUSED', status)
|
||||||
@@ -462,20 +462,22 @@ class ExecutionCLITests(base_v2.MistralClientTestBase):
|
|||||||
params='{0} -d "execution update test"'.format(exec_id)
|
params='{0} -d "execution update test"'.format(exec_id)
|
||||||
)
|
)
|
||||||
|
|
||||||
description = self.get_value_of_field(execution, 'Description')
|
description = self.get_field_value(execution, 'Description')
|
||||||
|
|
||||||
self.assertEqual("execution update test", description)
|
self.assertEqual("execution update test", description)
|
||||||
|
|
||||||
def test_execution_get(self):
|
def test_execution_get(self):
|
||||||
execution = self.execution_create(self.direct_wf['Name'])
|
execution = self.execution_create(self.direct_wf['Name'])
|
||||||
exec_id = self.get_value_of_field(execution, 'ID')
|
exec_id = self.get_field_value(execution, 'ID')
|
||||||
|
|
||||||
execution = self.mistral_admin(
|
execution = self.mistral_admin(
|
||||||
'execution-get', params='{0}'.format(exec_id))
|
'execution-get',
|
||||||
|
params='{0}'.format(exec_id)
|
||||||
|
)
|
||||||
|
|
||||||
gotten_id = self.get_value_of_field(execution, 'ID')
|
gotten_id = self.get_field_value(execution, 'ID')
|
||||||
wf_name = self.get_value_of_field(execution, 'Workflow name')
|
wf_name = self.get_field_value(execution, 'Workflow name')
|
||||||
wf_id = self.get_value_of_field(execution, 'Workflow ID')
|
wf_id = self.get_field_value(execution, 'Workflow ID')
|
||||||
|
|
||||||
self.assertIsNotNone(wf_id)
|
self.assertIsNotNone(wf_id)
|
||||||
self.assertEqual(exec_id, gotten_id)
|
self.assertEqual(exec_id, gotten_id)
|
||||||
@@ -483,87 +485,96 @@ class ExecutionCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
def test_execution_get_input(self):
|
def test_execution_get_input(self):
|
||||||
execution = self.execution_create(self.direct_wf['Name'])
|
execution = self.execution_create(self.direct_wf['Name'])
|
||||||
exec_id = self.get_value_of_field(execution, 'ID')
|
exec_id = self.get_field_value(execution, 'ID')
|
||||||
|
|
||||||
ex_input = self.mistral_admin('execution-get-input', params=exec_id)
|
ex_input = self.mistral_admin('execution-get-input', params=exec_id)
|
||||||
self.assertEqual([], ex_input)
|
self.assertEqual([], ex_input)
|
||||||
|
|
||||||
def test_execution_get_output(self):
|
def test_execution_get_output(self):
|
||||||
execution = self.execution_create(self.direct_wf['Name'])
|
execution = self.execution_create(self.direct_wf['Name'])
|
||||||
exec_id = self.get_value_of_field(execution, 'ID')
|
exec_id = self.get_field_value(execution, 'ID')
|
||||||
|
|
||||||
ex_output = self.mistral_admin(
|
ex_output = self.mistral_admin(
|
||||||
'execution-get-output', params=exec_id)
|
'execution-get-output',
|
||||||
|
params=exec_id
|
||||||
|
)
|
||||||
|
|
||||||
self.assertEqual([], ex_output)
|
self.assertEqual([], ex_output)
|
||||||
|
|
||||||
def test_executions_list_with_pagination(self):
|
def test_executions_list_with_pagination(self):
|
||||||
|
wf_ex1 = self.mistral_admin(
|
||||||
execution1 = self.mistral_admin(
|
|
||||||
'execution-create',
|
'execution-create',
|
||||||
params='{0} -d "a"'.format(self.direct_wf['Name'])
|
params='{0} -d "a"'.format(self.direct_wf['Name'])
|
||||||
)
|
)
|
||||||
|
|
||||||
execution2 = self.mistral_admin(
|
wf_ex2 = self.mistral_admin(
|
||||||
'execution-create',
|
'execution-create',
|
||||||
params='{0} -d "b"'.format(self.direct_wf['Name'])
|
params='{0} -d "b"'.format(self.direct_wf['Name'])
|
||||||
)
|
)
|
||||||
|
|
||||||
executions = self.mistral_cli(
|
wf_execs = self.mistral_cli(True, 'execution-list')
|
||||||
|
|
||||||
|
self.assertEqual(2, len(wf_execs))
|
||||||
|
|
||||||
|
wf_execs = self.mistral_cli(
|
||||||
True,
|
True,
|
||||||
'execution-list',
|
'execution-list',
|
||||||
params="--limit 1"
|
params="--limit 1"
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertEqual(1, len(executions))
|
self.assertEqual(1, len(wf_execs))
|
||||||
|
|
||||||
exec_id_1 = self.get_value_of_field(execution1, 'ID')
|
wf_ex1_id = self.get_field_value(wf_ex1, 'ID')
|
||||||
exec_id_2 = self.get_value_of_field(execution2, 'ID')
|
wf_ex2_id = self.get_field_value(wf_ex2, 'ID')
|
||||||
executions = self.mistral_cli(
|
|
||||||
|
wf_execs = self.mistral_cli(
|
||||||
True,
|
True,
|
||||||
'execution-list',
|
'execution-list',
|
||||||
params="--marker %s" % exec_id_1
|
params="--marker %s" % wf_ex1_id
|
||||||
)
|
)
|
||||||
self.assertNotIn(exec_id_1, [ex['ID'] for ex in executions])
|
|
||||||
self.assertIn(exec_id_2, [ex['ID'] for ex in executions])
|
|
||||||
|
|
||||||
executions = self.mistral_cli(
|
self.assertNotIn(wf_ex1_id, [ex['ID'] for ex in wf_execs])
|
||||||
|
self.assertIn(wf_ex2_id, [ex['ID'] for ex in wf_execs])
|
||||||
|
|
||||||
|
wf_execs = self.mistral_cli(
|
||||||
True,
|
True,
|
||||||
'execution-list',
|
'execution-list',
|
||||||
params="--sort_keys Description"
|
params="--sort_keys Description"
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertIn(exec_id_1, [ex['ID'] for ex in executions])
|
self.assertIn(wf_ex1_id, [ex['ID'] for ex in wf_execs])
|
||||||
self.assertIn(exec_id_2, [ex['ID'] for ex in executions])
|
self.assertIn(wf_ex2_id, [ex['ID'] for ex in wf_execs])
|
||||||
|
|
||||||
ex1_index = -1
|
wf_ex1_index = -1
|
||||||
ex2_index = -1
|
wf_ex2_index = -1
|
||||||
for idx, ex in enumerate(executions):
|
|
||||||
if ex['ID'] == exec_id_1:
|
|
||||||
ex1_index = idx
|
|
||||||
elif ex['ID'] == exec_id_2:
|
|
||||||
ex2_index = idx
|
|
||||||
|
|
||||||
self.assertTrue(ex1_index < ex2_index)
|
for idx, ex in enumerate(wf_execs):
|
||||||
|
if ex['ID'] == wf_ex1_id:
|
||||||
|
wf_ex1_index = idx
|
||||||
|
elif ex['ID'] == wf_ex2_id:
|
||||||
|
wf_ex2_index = idx
|
||||||
|
|
||||||
executions = self.mistral_cli(
|
self.assertTrue(wf_ex1_index < wf_ex2_index)
|
||||||
|
|
||||||
|
wf_execs = self.mistral_cli(
|
||||||
True,
|
True,
|
||||||
'execution-list',
|
'execution-list',
|
||||||
params="--sort_keys Description --sort_dirs=desc"
|
params="--sort_keys Description --sort_dirs=desc"
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertIn(exec_id_1, [ex['ID'] for ex in executions])
|
self.assertIn(wf_ex1_id, [ex['ID'] for ex in wf_execs])
|
||||||
self.assertIn(exec_id_2, [ex['ID'] for ex in executions])
|
self.assertIn(wf_ex2_id, [ex['ID'] for ex in wf_execs])
|
||||||
|
|
||||||
ex1_index = -1
|
wf_ex1_index = -1
|
||||||
ex2_index = -1
|
wf_ex2_index = -1
|
||||||
for idx, ex in enumerate(executions):
|
|
||||||
if ex['ID'] == exec_id_1:
|
|
||||||
ex1_index = idx
|
|
||||||
elif ex['ID'] == exec_id_2:
|
|
||||||
ex2_index = idx
|
|
||||||
|
|
||||||
self.assertTrue(ex1_index > ex2_index)
|
for idx, ex in enumerate(wf_execs):
|
||||||
|
if ex['ID'] == wf_ex1_id:
|
||||||
|
wf_ex1_index = idx
|
||||||
|
elif ex['ID'] == wf_ex2_id:
|
||||||
|
wf_ex2_index = idx
|
||||||
|
|
||||||
|
self.assertTrue(wf_ex1_index > wf_ex2_index)
|
||||||
|
|
||||||
|
|
||||||
class CronTriggerCLITests(base_v2.MistralClientTestBase):
|
class CronTriggerCLITests(base_v2.MistralClientTestBase):
|
||||||
@@ -586,11 +597,11 @@ class CronTriggerCLITests(base_v2.MistralClientTestBase):
|
|||||||
' --first-time "4242-12-25 13:37"' % self.wf_name))
|
' --first-time "4242-12-25 13:37"' % self.wf_name))
|
||||||
self.assertTableStruct(trigger, ['Field', 'Value'])
|
self.assertTableStruct(trigger, ['Field', 'Value'])
|
||||||
|
|
||||||
tr_name = self.get_value_of_field(trigger, 'Name')
|
tr_name = self.get_field_value(trigger, 'Name')
|
||||||
wf_name = self.get_value_of_field(trigger, 'Workflow')
|
wf_name = self.get_field_value(trigger, 'Workflow')
|
||||||
created_at = self.get_value_of_field(trigger, 'Created at')
|
created_at = self.get_field_value(trigger, 'Created at')
|
||||||
remain = self.get_value_of_field(trigger, 'Remaining executions')
|
remain = self.get_field_value(trigger, 'Remaining executions')
|
||||||
next_time = self.get_value_of_field(trigger, 'Next execution time')
|
next_time = self.get_field_value(trigger, 'Next execution time')
|
||||||
|
|
||||||
self.assertEqual('trigger', tr_name)
|
self.assertEqual('trigger', tr_name)
|
||||||
self.assertEqual(self.wf_name, wf_name)
|
self.assertEqual(self.wf_name, wf_name)
|
||||||
@@ -622,16 +633,16 @@ class CronTriggerCLITests(base_v2.MistralClientTestBase):
|
|||||||
'trigger', self.wf_name, '{}', "5 * * * *")
|
'trigger', self.wf_name, '{}', "5 * * * *")
|
||||||
self.assertTableStruct(trigger, ['Field', 'Value'])
|
self.assertTableStruct(trigger, ['Field', 'Value'])
|
||||||
|
|
||||||
tr_name = self.get_value_of_field(trigger, 'Name')
|
tr_name = self.get_field_value(trigger, 'Name')
|
||||||
|
|
||||||
fetched_tr = self.mistral_admin(
|
fetched_tr = self.mistral_admin(
|
||||||
'cron-trigger-get', params='trigger')
|
'cron-trigger-get', params='trigger')
|
||||||
|
|
||||||
self.assertTableStruct(trigger, ['Field', 'Value'])
|
self.assertTableStruct(trigger, ['Field', 'Value'])
|
||||||
|
|
||||||
tr_name = self.get_value_of_field(fetched_tr, 'Name')
|
tr_name = self.get_field_value(fetched_tr, 'Name')
|
||||||
wf_name = self.get_value_of_field(fetched_tr, 'Workflow')
|
wf_name = self.get_field_value(fetched_tr, 'Workflow')
|
||||||
created_at = self.get_value_of_field(fetched_tr, 'Created at')
|
created_at = self.get_field_value(fetched_tr, 'Created at')
|
||||||
|
|
||||||
self.assertEqual('trigger', tr_name)
|
self.assertEqual('trigger', tr_name)
|
||||||
self.assertEqual(self.wf_name, wf_name)
|
self.assertEqual(self.wf_name, wf_name)
|
||||||
@@ -645,6 +656,7 @@ class TaskCLITests(base_v2.MistralClientTestBase):
|
|||||||
super(TaskCLITests, self).setUp()
|
super(TaskCLITests, self).setUp()
|
||||||
|
|
||||||
wfs = self.workflow_create(self.wf_def)
|
wfs = self.workflow_create(self.wf_def)
|
||||||
|
|
||||||
self.direct_wf = wfs[0]
|
self.direct_wf = wfs[0]
|
||||||
self.reverse_wf = wfs[1]
|
self.reverse_wf = wfs[1]
|
||||||
|
|
||||||
@@ -652,19 +664,19 @@ class TaskCLITests(base_v2.MistralClientTestBase):
|
|||||||
self.create_file('task_name', '{\n "task_name": "goodbye"\n}\n')
|
self.create_file('task_name', '{\n "task_name": "goodbye"\n}\n')
|
||||||
|
|
||||||
def test_task_get(self):
|
def test_task_get(self):
|
||||||
execution = self.execution_create(self.direct_wf['Name'])
|
wf_ex = self.execution_create(self.direct_wf['Name'])
|
||||||
exec_id = self.get_value_of_field(execution, 'ID')
|
wf_ex_id = self.get_field_value(wf_ex, 'ID')
|
||||||
|
|
||||||
|
tasks = self.mistral_admin('task-list', params=wf_ex_id)
|
||||||
|
|
||||||
tasks = self.mistral_admin('task-list')
|
|
||||||
created_task_id = tasks[-1]['ID']
|
created_task_id = tasks[-1]['ID']
|
||||||
|
|
||||||
fetched_task = self.mistral_admin('task-get', params=created_task_id)
|
fetched_task = self.mistral_admin('task-get', params=created_task_id)
|
||||||
fetched_task_id = self.get_value_of_field(fetched_task, 'ID')
|
fetched_task_id = self.get_field_value(fetched_task, 'ID')
|
||||||
task_execution_id = self.get_value_of_field(fetched_task,
|
task_execution_id = self.get_field_value(fetched_task, 'Execution ID')
|
||||||
'Execution ID')
|
|
||||||
|
|
||||||
self.assertEqual(created_task_id, fetched_task_id)
|
self.assertEqual(created_task_id, fetched_task_id)
|
||||||
self.assertEqual(exec_id, task_execution_id)
|
self.assertEqual(wf_ex_id, task_execution_id)
|
||||||
|
|
||||||
|
|
||||||
class ActionCLITests(base_v2.MistralClientTestBase):
|
class ActionCLITests(base_v2.MistralClientTestBase):
|
||||||
@@ -780,8 +792,8 @@ class EnvironmentCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
def test_environment_create(self):
|
def test_environment_create(self):
|
||||||
env = self.mistral_admin('environment-create', params='env.yaml')
|
env = self.mistral_admin('environment-create', params='env.yaml')
|
||||||
env_name = self.get_value_of_field(env, 'Name')
|
env_name = self.get_field_value(env, 'Name')
|
||||||
env_desc = self.get_value_of_field(env, 'Description')
|
env_desc = self.get_field_value(env, 'Description')
|
||||||
|
|
||||||
self.assertTableStruct(env, ['Field', 'Value'])
|
self.assertTableStruct(env, ['Field', 'Value'])
|
||||||
|
|
||||||
@@ -803,8 +815,8 @@ class EnvironmentCLITests(base_v2.MistralClientTestBase):
|
|||||||
env = self.mistral_admin('environment-create',
|
env = self.mistral_admin('environment-create',
|
||||||
params='env_without_des.yaml')
|
params='env_without_des.yaml')
|
||||||
|
|
||||||
env_name = self.get_value_of_field(env, 'Name')
|
env_name = self.get_field_value(env, 'Name')
|
||||||
env_desc = self.get_value_of_field(env, 'Description')
|
env_desc = self.get_field_value(env, 'Description')
|
||||||
|
|
||||||
self.assertTableStruct(env, ['Field', 'Value'])
|
self.assertTableStruct(env, ['Field', 'Value'])
|
||||||
|
|
||||||
@@ -819,10 +831,10 @@ class EnvironmentCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
def test_environment_update(self):
|
def test_environment_update(self):
|
||||||
env = self.environment_create('env.yaml')
|
env = self.environment_create('env.yaml')
|
||||||
env_name = self.get_value_of_field(env, 'Name')
|
env_name = self.get_field_value(env, 'Name')
|
||||||
env_desc = self.get_value_of_field(env, 'Description')
|
env_desc = self.get_field_value(env, 'Description')
|
||||||
env_created_at = self.get_value_of_field(env, 'Created at')
|
env_created_at = self.get_field_value(env, 'Created at')
|
||||||
env_updated_at = self.get_value_of_field(env, 'Updated at')
|
env_updated_at = self.get_field_value(env, 'Updated at')
|
||||||
|
|
||||||
self.assertIsNotNone(env_created_at)
|
self.assertIsNotNone(env_created_at)
|
||||||
self.assertEqual('None', env_updated_at)
|
self.assertEqual('None', env_updated_at)
|
||||||
@@ -836,10 +848,10 @@ class EnvironmentCLITests(base_v2.MistralClientTestBase):
|
|||||||
env = self.mistral_admin('environment-update', params='env_upd.yaml')
|
env = self.mistral_admin('environment-update', params='env_upd.yaml')
|
||||||
self.assertTableStruct(env, ['Field', 'Value'])
|
self.assertTableStruct(env, ['Field', 'Value'])
|
||||||
|
|
||||||
updated_env_name = self.get_value_of_field(env, 'Name')
|
updated_env_name = self.get_field_value(env, 'Name')
|
||||||
updated_env_desc = self.get_value_of_field(env, 'Description')
|
updated_env_desc = self.get_field_value(env, 'Description')
|
||||||
updated_env_created_at = self.get_value_of_field(env, 'Created at')
|
updated_env_created_at = self.get_field_value(env, 'Created at')
|
||||||
updated_env_updated_at = self.get_value_of_field(env, 'Updated at')
|
updated_env_updated_at = self.get_field_value(env, 'Updated at')
|
||||||
|
|
||||||
self.assertEqual(env_name, updated_env_name)
|
self.assertEqual(env_name, updated_env_name)
|
||||||
self.assertNotEqual(env_desc, updated_env_desc)
|
self.assertNotEqual(env_desc, updated_env_desc)
|
||||||
@@ -849,12 +861,12 @@ class EnvironmentCLITests(base_v2.MistralClientTestBase):
|
|||||||
|
|
||||||
def test_environment_get(self):
|
def test_environment_get(self):
|
||||||
env = self.environment_create('env.yaml')
|
env = self.environment_create('env.yaml')
|
||||||
env_name = self.get_value_of_field(env, 'Name')
|
env_name = self.get_field_value(env, 'Name')
|
||||||
env_desc = self.get_value_of_field(env, 'Description')
|
env_desc = self.get_field_value(env, 'Description')
|
||||||
|
|
||||||
env = self.mistral_admin('environment-get', params=env_name)
|
env = self.mistral_admin('environment-get', params=env_name)
|
||||||
fetched_env_name = self.get_value_of_field(env, 'Name')
|
fetched_env_name = self.get_field_value(env, 'Name')
|
||||||
fetched_env_desc = self.get_value_of_field(env, 'Description')
|
fetched_env_desc = self.get_field_value(env, 'Description')
|
||||||
|
|
||||||
self.assertTableStruct(env, ['Field', 'Value'])
|
self.assertTableStruct(env, ['Field', 'Value'])
|
||||||
self.assertEqual(env_name, fetched_env_name)
|
self.assertEqual(env_name, fetched_env_name)
|
||||||
@@ -868,29 +880,34 @@ class ActionExecutionCLITests(base_v2.MistralClientTestBase):
|
|||||||
super(ActionExecutionCLITests, self).setUp()
|
super(ActionExecutionCLITests, self).setUp()
|
||||||
|
|
||||||
wfs = self.workflow_create(self.wf_def)
|
wfs = self.workflow_create(self.wf_def)
|
||||||
|
|
||||||
self.direct_wf = wfs[0]
|
self.direct_wf = wfs[0]
|
||||||
|
|
||||||
direct_wf_exec = self.execution_create(self.direct_wf['Name'])
|
direct_wf_exec = self.execution_create(self.direct_wf['Name'])
|
||||||
self.direct_ex_id = self.get_value_of_field(direct_wf_exec, 'ID')
|
|
||||||
|
self.direct_ex_id = self.get_field_value(direct_wf_exec, 'ID')
|
||||||
|
|
||||||
def test_act_execution_get(self):
|
def test_act_execution_get(self):
|
||||||
self.wait_execution_success(self.direct_ex_id)
|
self.wait_execution_success(self.direct_ex_id)
|
||||||
|
|
||||||
task = self.mistral_admin(
|
task = self.mistral_admin('task-list', params=self.direct_ex_id)[0]
|
||||||
'task-list', params=self.direct_ex_id)[0]
|
|
||||||
|
|
||||||
act_ex_from_list = self.mistral_admin(
|
act_ex_from_list = self.mistral_admin(
|
||||||
'action-execution-list', params=task['ID'])[0]
|
'action-execution-list',
|
||||||
|
params=task['ID']
|
||||||
|
)[0]
|
||||||
|
|
||||||
act_ex = self.mistral_admin(
|
act_ex = self.mistral_admin(
|
||||||
'action-execution-get', params=act_ex_from_list['ID'])
|
'action-execution-get',
|
||||||
|
params=act_ex_from_list['ID']
|
||||||
|
)
|
||||||
|
|
||||||
wf_name = self.get_value_of_field(act_ex, 'Workflow name')
|
wf_name = self.get_field_value(act_ex, 'Workflow name')
|
||||||
status = self.get_value_of_field(act_ex, 'State')
|
status = self.get_field_value(act_ex, 'State')
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
act_ex_from_list['ID'],
|
act_ex_from_list['ID'],
|
||||||
self.get_value_of_field(act_ex, 'ID')
|
self.get_field_value(act_ex, 'ID')
|
||||||
)
|
)
|
||||||
self.assertEqual(self.direct_wf['Name'], wf_name)
|
self.assertEqual(self.direct_wf['Name'], wf_name)
|
||||||
self.assertEqual('SUCCESS', status)
|
self.assertEqual('SUCCESS', status)
|
||||||
@@ -901,13 +918,13 @@ class ActionExecutionCLITests(base_v2.MistralClientTestBase):
|
|||||||
params="std.echo '{0}' --save-result".format(
|
params="std.echo '{0}' --save-result".format(
|
||||||
'{"output": "Hello!"}')
|
'{"output": "Hello!"}')
|
||||||
)
|
)
|
||||||
action_ex_id = self.get_value_of_field(action_ex, 'ID')
|
action_ex_id = self.get_field_value(action_ex, 'ID')
|
||||||
|
|
||||||
self.assertTableStruct(action_ex, ['Field', 'Value'])
|
self.assertTableStruct(action_ex, ['Field', 'Value'])
|
||||||
|
|
||||||
name = self.get_value_of_field(action_ex, 'Name')
|
name = self.get_field_value(action_ex, 'Name')
|
||||||
wf_name = self.get_value_of_field(action_ex, 'Workflow name')
|
wf_name = self.get_field_value(action_ex, 'Workflow name')
|
||||||
task_name = self.get_value_of_field(action_ex, 'Task name')
|
task_name = self.get_field_value(action_ex, 'Task name')
|
||||||
|
|
||||||
self.assertEqual('std.echo', name)
|
self.assertEqual('std.echo', name)
|
||||||
self.assertEqual('None', wf_name)
|
self.assertEqual('None', wf_name)
|
||||||
@@ -1146,7 +1163,7 @@ class NegativeCLITests(base_v2.MistralClientTestBase):
|
|||||||
def test_ex_update_both_state_and_description(self):
|
def test_ex_update_both_state_and_description(self):
|
||||||
wf = self.workflow_create(self.wf_def)
|
wf = self.workflow_create(self.wf_def)
|
||||||
execution = self.execution_create(params=wf[0]['Name'])
|
execution = self.execution_create(params=wf[0]['Name'])
|
||||||
exec_id = self.get_value_of_field(execution, 'ID')
|
exec_id = self.get_field_value(execution, 'ID')
|
||||||
self.assertRaises(exceptions.CommandFailed,
|
self.assertRaises(exceptions.CommandFailed,
|
||||||
self.mistral_admin,
|
self.mistral_admin,
|
||||||
'execution-update',
|
'execution-update',
|
||||||
@@ -1374,7 +1391,7 @@ class NegativeCLITests(base_v2.MistralClientTestBase):
|
|||||||
def test_action_execution_update(self):
|
def test_action_execution_update(self):
|
||||||
wfs = self.workflow_create(self.wf_def)
|
wfs = self.workflow_create(self.wf_def)
|
||||||
direct_wf_exec = self.execution_create(wfs[0]['Name'])
|
direct_wf_exec = self.execution_create(wfs[0]['Name'])
|
||||||
direct_ex_id = self.get_value_of_field(direct_wf_exec, 'ID')
|
direct_ex_id = self.get_field_value(direct_wf_exec, 'ID')
|
||||||
|
|
||||||
self.assertRaises(exceptions.CommandFailed,
|
self.assertRaises(exceptions.CommandFailed,
|
||||||
self.mistral_admin,
|
self.mistral_admin,
|
||||||
|
@@ -48,8 +48,7 @@ class TestActionExecutions(base.BaseClientV2Test):
|
|||||||
self.action_executions, ACTION_EXEC
|
self.action_executions, ACTION_EXEC
|
||||||
).to_dict(), action_execution.to_dict())
|
).to_dict(), action_execution.to_dict())
|
||||||
|
|
||||||
mock.assert_called_once_with(
|
mock.assert_called_once_with(URL_TEMPLATE, json.dumps(body))
|
||||||
URL_TEMPLATE, json.dumps(body))
|
|
||||||
|
|
||||||
def test_update(self):
|
def test_update(self):
|
||||||
mock = self.mock_http_put(content=ACTION_EXEC)
|
mock = self.mock_http_put(content=ACTION_EXEC)
|
||||||
@@ -63,12 +62,21 @@ class TestActionExecutions(base.BaseClientV2Test):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.assertIsNotNone(action_execution)
|
self.assertIsNotNone(action_execution)
|
||||||
self.assertEqual(action_executions.ActionExecution(
|
|
||||||
self.action_executions, ACTION_EXEC
|
expected = action_executions.ActionExecution(
|
||||||
).to_dict(), action_execution.to_dict())
|
self.action_executions,
|
||||||
|
ACTION_EXEC
|
||||||
|
).to_dict()
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
expected,
|
||||||
|
action_execution.to_dict()
|
||||||
|
)
|
||||||
|
|
||||||
mock.assert_called_once_with(
|
mock.assert_called_once_with(
|
||||||
URL_TEMPLATE_ID % ACTION_EXEC['id'], json.dumps(body))
|
URL_TEMPLATE_ID % ACTION_EXEC['id'],
|
||||||
|
json.dumps(body)
|
||||||
|
)
|
||||||
|
|
||||||
def test_list(self):
|
def test_list(self):
|
||||||
mock = self.mock_http_get(
|
mock = self.mock_http_get(
|
||||||
@@ -80,9 +88,12 @@ class TestActionExecutions(base.BaseClientV2Test):
|
|||||||
self.assertEqual(1, len(action_execution_list))
|
self.assertEqual(1, len(action_execution_list))
|
||||||
action_execution = action_execution_list[0]
|
action_execution = action_execution_list[0]
|
||||||
|
|
||||||
self.assertEqual(action_executions.ActionExecution(
|
expected = action_executions.ActionExecution(
|
||||||
self.action_executions, ACTION_EXEC
|
self.action_executions,
|
||||||
).to_dict(), action_execution.to_dict())
|
ACTION_EXEC
|
||||||
|
).to_dict()
|
||||||
|
|
||||||
|
self.assertEqual(expected, action_execution.to_dict())
|
||||||
|
|
||||||
mock.assert_called_once_with(URL_TEMPLATE)
|
mock.assert_called_once_with(URL_TEMPLATE)
|
||||||
|
|
||||||
@@ -91,12 +102,14 @@ class TestActionExecutions(base.BaseClientV2Test):
|
|||||||
|
|
||||||
action_execution = self.action_executions.get(ACTION_EXEC['id'])
|
action_execution = self.action_executions.get(ACTION_EXEC['id'])
|
||||||
|
|
||||||
self.assertEqual(action_executions.ActionExecution(
|
expected = action_executions.ActionExecution(
|
||||||
self.action_executions, ACTION_EXEC
|
self.action_executions,
|
||||||
).to_dict(), action_execution.to_dict())
|
ACTION_EXEC
|
||||||
|
).to_dict()
|
||||||
|
|
||||||
mock.assert_called_once_with(
|
self.assertEqual(expected, action_execution.to_dict())
|
||||||
URL_TEMPLATE_ID % ACTION_EXEC['id'])
|
|
||||||
|
mock.assert_called_once_with(URL_TEMPLATE_ID % ACTION_EXEC['id'])
|
||||||
|
|
||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
mock = self.mock_http_delete(status_code=204)
|
mock = self.mock_http_delete(status_code=204)
|
||||||
|
@@ -27,6 +27,7 @@ ACTION_EX_DICT = {
|
|||||||
'name': 'some',
|
'name': 'some',
|
||||||
'workflow_name': 'thing',
|
'workflow_name': 'thing',
|
||||||
'task_name': 'task1',
|
'task_name': 'task1',
|
||||||
|
'task_execution_id': "1-2-3-4",
|
||||||
'state': 'RUNNING',
|
'state': 'RUNNING',
|
||||||
'state_info': 'RUNNING somehow.',
|
'state_info': 'RUNNING somehow.',
|
||||||
'accepted': True
|
'accepted': True
|
||||||
@@ -37,15 +38,18 @@ ACTION_EX_INPUT = {"param1": "val1", "param2": 2}
|
|||||||
|
|
||||||
ACTION_EX_WITH_OUTPUT_DICT = ACTION_EX_DICT.copy()
|
ACTION_EX_WITH_OUTPUT_DICT = ACTION_EX_DICT.copy()
|
||||||
ACTION_EX_WITH_OUTPUT_DICT.update({'output': json.dumps(ACTION_EX_RESULT)})
|
ACTION_EX_WITH_OUTPUT_DICT.update({'output': json.dumps(ACTION_EX_RESULT)})
|
||||||
|
|
||||||
ACTION_EX_WITH_INPUT_DICT = ACTION_EX_DICT.copy()
|
ACTION_EX_WITH_INPUT_DICT = ACTION_EX_DICT.copy()
|
||||||
ACTION_EX_WITH_INPUT_DICT.update({'input': json.dumps(ACTION_EX_INPUT)})
|
ACTION_EX_WITH_INPUT_DICT.update({'input': json.dumps(ACTION_EX_INPUT)})
|
||||||
|
|
||||||
ACTION_EX = action_ex.ActionExecution(mock, ACTION_EX_DICT)
|
ACTION_EX = action_ex.ActionExecution(mock, ACTION_EX_DICT)
|
||||||
ACTION_EX_WITH_OUTPUT = action_ex.ActionExecution(
|
ACTION_EX_WITH_OUTPUT = action_ex.ActionExecution(
|
||||||
mock, ACTION_EX_WITH_OUTPUT_DICT
|
mock,
|
||||||
|
ACTION_EX_WITH_OUTPUT_DICT
|
||||||
)
|
)
|
||||||
ACTION_EX_WITH_INPUT = action_ex.ActionExecution(
|
ACTION_EX_WITH_INPUT = action_ex.ActionExecution(
|
||||||
mock, ACTION_EX_WITH_INPUT_DICT
|
mock,
|
||||||
|
ACTION_EX_WITH_INPUT_DICT
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -76,7 +80,7 @@ class TestCLIActionExecutions(base.BaseCommandTest):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
('123', 'some', 'thing', 'task1', 'RUNNING',
|
('123', 'some', 'thing', 'task1', '1-2-3-4', 'RUNNING',
|
||||||
'RUNNING somehow.', True),
|
'RUNNING somehow.', True),
|
||||||
result[1]
|
result[1]
|
||||||
)
|
)
|
||||||
@@ -84,12 +88,15 @@ class TestCLIActionExecutions(base.BaseCommandTest):
|
|||||||
def test_update(self):
|
def test_update(self):
|
||||||
self.client.action_executions.update.return_value = ACTION_EX
|
self.client.action_executions.update.return_value = ACTION_EX
|
||||||
|
|
||||||
result = self.call(action_ex_cmd.Update,
|
result = self.call(
|
||||||
app_args=['id', '--state', 'ERROR'])
|
action_ex_cmd.Update,
|
||||||
|
app_args=['id', '--state', 'ERROR']
|
||||||
|
)
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
('123', 'some', 'thing', 'task1', 'RUNNING',
|
('123', 'some', 'thing', 'task1', '1-2-3-4', 'RUNNING',
|
||||||
'RUNNING somehow.', True), result[1]
|
'RUNNING somehow.', True),
|
||||||
|
result[1]
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_list(self):
|
def test_list(self):
|
||||||
@@ -98,7 +105,7 @@ class TestCLIActionExecutions(base.BaseCommandTest):
|
|||||||
result = self.call(action_ex_cmd.List)
|
result = self.call(action_ex_cmd.List)
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
[('123', 'some', 'thing', 'task1', 'RUNNING',
|
[('123', 'some', 'thing', 'task1', '1-2-3-4', 'RUNNING',
|
||||||
'RUNNING somehow.', True)],
|
'RUNNING somehow.', True)],
|
||||||
result[1]
|
result[1]
|
||||||
)
|
)
|
||||||
@@ -109,7 +116,7 @@ class TestCLIActionExecutions(base.BaseCommandTest):
|
|||||||
result = self.call(action_ex_cmd.Get, app_args=['id'])
|
result = self.call(action_ex_cmd.Get, app_args=['id'])
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
('123', 'some', 'thing', 'task1', 'RUNNING',
|
('123', 'some', 'thing', 'task1', '1-2-3-4', 'RUNNING',
|
||||||
'RUNNING somehow.', True), result[1]
|
'RUNNING somehow.', True), result[1]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user