本文整理汇总了Python中mistral.db.v2.api.transaction函数的典型用法代码示例。如果您正苦于以下问题:Python transaction函数的具体用法?Python transaction怎么用?Python transaction使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了transaction函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_rerun_sub_workflow
def test_rerun_sub_workflow(self):
wf_service.create_workflows("""---
version: '2.0'
wf1:
tasks:
task1:
workflow: wf2
wf2:
tasks:
task2:
workflow: wf3
wf3:
tasks:
task3:
action: std.noop""")
# Run workflow and fail task.
wf1_ex = self.engine.start_workflow('wf1')
self.await_workflow_error(wf1_ex.id)
with db_api.transaction():
wf_exs = db_api.get_workflow_executions()
task_exs = db_api.get_task_executions()
self.assertEqual(3, len(wf_exs),
'The number of workflow executions')
self.assertEqual(3, len(task_exs),
'The number of task executions')
for wf_ex in wf_exs:
self.assertEqual(states.ERROR, wf_ex.state,
'The executions must fail the first time')
for task_ex in task_exs:
self.assertEqual(states.ERROR, task_ex.state,
'The tasks must fail the first time')
wf3_ex = self._assert_single_item(wf_exs, name='wf3')
task3_ex = self._assert_single_item(wf3_ex.task_executions,
name="task3")
self.engine.rerun_workflow(task3_ex.id)
self.await_workflow_success(wf1_ex.id)
with db_api.transaction():
wf_exs = db_api.get_workflow_executions()
task_exs = db_api.get_task_executions()
self.assertEqual(3, len(wf_exs),
'The number of workflow executions')
self.assertEqual(3, len(task_exs),
'The number of task executions')
for wf_ex in wf_exs:
self.assertEqual(states.SUCCESS, wf_ex.state,
'The executions must success the second time')
for task_ex in task_exs:
self.assertEqual(states.SUCCESS, task_ex.state,
'The tasks must success the second time')
开发者ID:openstack,项目名称:mistral,代码行数:60,代码来源:test_direct_workflow_rerun.py
示例2: test_resume_reverse
def test_resume_reverse(self):
wb_service.create_workbook_v2(RESUME_WORKBOOK_REVERSE)
# Start workflow.
wf_ex = self.engine.start_workflow(
'resume_reverse.wf',
task_name='task2'
)
self.engine.pause_workflow(wf_ex.id)
with db_api.transaction():
# Note: We need to reread execution to access related tasks.
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
self.assertEqual(states.PAUSED, wf_ex.state)
self.assertEqual(1, len(task_execs))
self.engine.resume_workflow(wf_ex.id)
wf_ex = db_api.get_workflow_execution(wf_ex.id)
self.assertEqual(states.RUNNING, wf_ex.state)
self.await_workflow_success(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
self.assertEqual(states.SUCCESS, wf_ex.state)
self.assertEqual(2, len(task_execs))
开发者ID:openstack,项目名称:mistral,代码行数:35,代码来源:test_workflow_resume.py
示例3: start_workflow
def start_workflow(self, wf_identifier, wf_namespace='', wf_ex_id=None,
wf_input=None, description='', async_=False, **params):
if wf_namespace:
params['namespace'] = wf_namespace
if cfg.CONF.notifier.notify:
if 'notify' not in params or not params['notify']:
params['notify'] = []
params['notify'].extend(cfg.CONF.notifier.notify)
try:
with db_api.transaction():
wf_ex = wf_handler.start_workflow(
wf_identifier,
wf_namespace,
wf_ex_id,
wf_input or {},
description,
params
)
# Checking a case when all tasks are completed immediately.
wf_handler.check_and_complete(wf_ex.id)
return wf_ex.get_clone()
except exceptions.DBDuplicateEntryError:
# NOTE(akovi): the workflow execution with a provided
# wf_ex_id may already exist. In this case, simply
# return the existing entity.
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex_id)
return wf_ex.get_clone()
开发者ID:openstack,项目名称:mistral,代码行数:35,代码来源:default_engine.py
示例4: test_resume_two_branches
def test_resume_two_branches(self):
wb_service.create_workbook_v2(WORKBOOK_TWO_BRANCHES)
# Start workflow.
wf_ex = self.engine.start_workflow('wb.wf1', {})
self.await_workflow_paused(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
self.assertEqual(states.PAUSED, wf_ex.state)
self.assertEqual(3, len(task_execs))
wf_ex = self.engine.resume_workflow(wf_ex.id)
self.await_workflow_success(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
self.assertEqual(states.SUCCESS, wf_ex.state)
# We can see 3 tasks in execution.
self.assertEqual(3, len(task_execs))
开发者ID:Tesora,项目名称:tesora-mistral,代码行数:29,代码来源:test_workflow_resume.py
示例5: test_with_items_action_context
def test_with_items_action_context(self):
wb_service.create_workbook_v2(WB_ACTION_CONTEXT)
# Start workflow.
wf_ex = self.engine.start_workflow('wb.wf', WF_INPUT_URLS)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_ex = wf_ex.task_executions[0]
act_exs = task_ex.executions
self.engine.on_action_complete(act_exs[0].id, wf_utils.Result("Ivan"))
self.engine.on_action_complete(act_exs[1].id, wf_utils.Result("John"))
self.engine.on_action_complete(
act_exs[2].id,
wf_utils.Result("Mistral")
)
self.await_workflow_success(wf_ex.id)
with db_api.transaction():
task_ex = db_api.get_task_execution(task_ex.id)
result = data_flow.get_task_execution_result(task_ex)
self.assertIsInstance(result, list)
self.assertIn('John', result)
self.assertIn('Ivan', result)
self.assertIn('Mistral', result)
self.assertEqual(states.SUCCESS, task_ex.state)
开发者ID:Tesora,项目名称:tesora-mistral,代码行数:34,代码来源:test_with_items.py
示例6: test_resume_direct
def test_resume_direct(self):
wb_service.create_workbook_v2(RESUME_WORKBOOK)
# Start workflow.
wf_ex = self.engine.start_workflow('wb.wf1', {})
self.await_workflow_paused(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
self.assertEqual(states.PAUSED, wf_ex.state)
self.assertEqual(2, len(task_execs))
self.engine.resume_workflow(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
self.assertEqual(2, len(wf_ex.task_executions))
self.await_workflow_success(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
self.assertEqual(states.SUCCESS, wf_ex.state)
self.assertEqual(2, len(task_execs))
开发者ID:Tesora,项目名称:tesora-mistral,代码行数:32,代码来源:test_workflow_resume.py
示例7: test_retry_policy_from_var
def test_retry_policy_from_var(self):
wb_service.create_workbook_v2(RETRY_WB_FROM_VAR)
# Start workflow.
wf_ex = self.engine.start_workflow(
'wb.wf1',
wf_input={'count': 3, 'delay': 1}
)
with db_api.transaction():
# Note: We need to reread execution to access related tasks.
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_ex = wf_ex.task_executions[0]
self.assertEqual(states.RUNNING, task_ex.state)
self.assertDictEqual({}, task_ex.runtime_context)
self.await_task_delayed(task_ex.id, delay=0.5)
self.await_task_error(task_ex.id)
self.await_workflow_error(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_ex = wf_ex.task_executions[0]
self.assertEqual(
3,
task_ex.runtime_context["retry_task_policy"]["retry_no"]
)
开发者ID:openstack,项目名称:mistral,代码行数:32,代码来源:test_policies.py
示例8: test_timeout_policy_success_after_timeout
def test_timeout_policy_success_after_timeout(self):
wb_service.create_workbook_v2(TIMEOUT_WB2)
# Start workflow.
wf_ex = self.engine.start_workflow('wb.wf1')
with db_api.transaction():
# Note: We need to reread execution to access related tasks.
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_ex = wf_ex.task_executions[0]
self.assertEqual(states.RUNNING, task_ex.state)
self.await_task_error(task_ex.id)
self.await_workflow_error(wf_ex.id)
# Wait until timeout exceeds.
self._sleep(1)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
# Make sure that engine did not create extra tasks.
self.assertEqual(1, len(task_execs))
开发者ID:openstack,项目名称:mistral,代码行数:28,代码来源:test_policies.py
示例9: test_with_items_subflow_concurrency_gt_list_length
def test_with_items_subflow_concurrency_gt_list_length(self):
wb_text = """---
version: "2.0"
name: wb1
workflows:
main:
type: direct
input:
- names
tasks:
task1:
with-items: name in <% $.names %>
workflow: subflow1 name=<% $.name %>
concurrency: 3
subflow1:
type: direct
input:
- name
output:
result: <% task(task1).result %>
tasks:
task1:
action: std.echo output=<% $.name %>
"""
wb_service.create_workbook_v2(wb_text)
# Start workflow.
names = ["Peter", "Susan", "Edmund", "Lucy", "Aslan", "Caspian"]
wf_ex = self.engine.start_workflow('wb1.main', {'names': names})
self.await_workflow_success(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
task_ex = self._assert_single_item(
task_execs,
name='task1',
state=states.SUCCESS
)
with db_api.transaction():
task_ex = db_api.get_task_execution(task_ex.id)
task_result = data_flow.get_task_execution_result(task_ex)
result = [item['result'] for item in task_result]
self.assertListEqual(sorted(result), sorted(names))
开发者ID:Tesora,项目名称:tesora-mistral,代码行数:58,代码来源:test_with_items.py
示例10: test_with_items_two_tasks_second_starts_on_success
def test_with_items_two_tasks_second_starts_on_success(self):
wb_text = """---
version: "2.0"
name: wb1
workflows:
with_items:
type: direct
tasks:
task1:
with-items: i in [1, 2]
action: std.echo output=<% $.i %>
on-success: task2
task2:
with-items: i in [3, 4]
action: std.echo output=<% $.i %>
"""
wb_service.create_workbook_v2(wb_text)
# Start workflow.
wf_ex = self.engine.start_workflow('wb1.with_items', {})
self.await_workflow_success(wf_ex.id)
with db_api.transaction():
# Note: We need to reread execution to access related tasks.
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
task1_ex = self._assert_single_item(
task_execs,
name='task1',
state=states.SUCCESS
)
task2_ex = self._assert_single_item(
task_execs,
name='task2',
state=states.SUCCESS
)
with db_api.transaction():
task1_ex = db_api.get_task_execution(task1_ex.id)
task2_ex = db_api.get_task_execution(task2_ex.id)
result_task1 = data_flow.get_task_execution_result(task1_ex)
result_task2 = data_flow.get_task_execution_result(task2_ex)
# Since we know that we can receive results in random order,
# check is not depend on order of items.
self.assertIn(1, result_task1)
self.assertIn(2, result_task1)
self.assertIn(3, result_task2)
self.assertIn(4, result_task2)
开发者ID:Tesora,项目名称:tesora-mistral,代码行数:57,代码来源:test_with_items.py
示例11: test_join_all_task_with_input_jinja_error
def test_join_all_task_with_input_jinja_error(self):
wf_def = """---
version: '2.0'
wf:
tasks:
task_1_1:
action: std.sleep seconds=1
on-success:
- task_2
task_1_2:
on-success:
- task_2
task_2:
action: std.echo
join: all
input:
output: |
!! {{ _.nonexistent_variable }} !!"""
wf_service.create_workflows(wf_def)
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(3, len(tasks))
task_1_1 = self._assert_single_item(
tasks, name="task_1_1", state=states.SUCCESS
)
task_1_2 = self._assert_single_item(
tasks, name="task_1_2", state=states.SUCCESS
)
task_2 = self._assert_single_item(
tasks, name="task_2", state=states.ERROR
)
with db_api.transaction():
task_1_1_action_exs = db_api.get_action_executions(
task_execution_id=task_1_1.id)
task_1_2_action_exs = db_api.get_action_executions(
task_execution_id=task_1_2.id)
task_2_action_exs = db_api.get_action_executions(
task_execution_id=task_2.id)
self.assertEqual(1, len(task_1_1_action_exs))
self.assertEqual(states.SUCCESS, task_1_1_action_exs[0].state)
self.assertEqual(1, len(task_1_2_action_exs))
self.assertEqual(states.SUCCESS, task_1_2_action_exs[0].state)
self.assertEqual(0, len(task_2_action_exs))
开发者ID:openstack,项目名称:mistral,代码行数:57,代码来源:test_direct_workflow.py
示例12: test_task_execution_integrity
def test_task_execution_integrity(self):
self.override_config('execution_integrity_check_delay', 1, 'engine')
# The idea of the test is that we use the no-op asynchronous action
# so that action and task execution state is not automatically set
# to SUCCESS after we start the workflow. We'll update the action
# execution state to SUCCESS directly through the DB and will wait
# till task execution integrity is checked and fixed automatically
# by a periodic job after about 2 seconds.
wf_text = """
version: '2.0'
wf:
tasks:
task1:
action: std.noop
on-success: task2
task2:
action: std.async_noop
"""
wf_service.create_workflows(wf_text)
wf_ex = self.engine.start_workflow('wf')
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task1_ex = self._assert_single_item(
wf_ex.task_executions,
name='task1'
)
self.await_task_success(task1_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task2_ex = self._assert_single_item(
wf_ex.task_executions,
name='task2',
state=states.RUNNING
)
action2_ex = self._assert_single_item(
task2_ex.executions,
state=states.RUNNING
)
db_api.update_action_execution(
action2_ex.id,
{'state': states.SUCCESS}
)
self.await_task_success(task2_ex.id)
self.await_workflow_success(wf_ex.id)
开发者ID:openstack,项目名称:mistral,代码行数:56,代码来源:test_integrity_check.py
示例13: test_cancel_paused_workflow
def test_cancel_paused_workflow(self):
workflow = """
version: '2.0'
wf:
type: direct
tasks:
task1:
action: std.echo output="Echo"
on-complete:
- task2
task2:
action: std.echo output="foo"
wait-before: 3
"""
wf_service.create_workflows(workflow)
wf_ex = self.engine.start_workflow('wf')
self.engine.pause_workflow(wf_ex.id)
self.await_workflow_paused(wf_ex.id)
self.engine.stop_workflow(
wf_ex.id,
states.CANCELLED,
"Cancelled by user."
)
self.await_workflow_cancelled(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
task_1_ex = self._assert_single_item(task_execs, name='task1')
self.await_task_success(task_1_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
task_1_ex = self._assert_single_item(
task_execs,
name='task1'
)
self.assertEqual(states.CANCELLED, wf_ex.state)
self.assertEqual("Cancelled by user.", wf_ex.state_info)
self.assertEqual(1, len(task_execs))
self.assertEqual(states.SUCCESS, task_1_ex.state)
开发者ID:openstack,项目名称:mistral,代码行数:56,代码来源:test_workflow_cancel.py
示例14: test_retry_async_action
def test_retry_async_action(self):
retry_wf = """---
version: '2.0'
repeated_retry:
tasks:
async_http:
retry:
delay: 0
count: 100
action: std.mistral_http url='https://google.com'
"""
wf_service.create_workflows(retry_wf)
wf_ex = self.engine.start_workflow('repeated_retry')
self.await_workflow_running(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_ex = wf_ex.task_executions[0]
self.await_task_running(task_ex.id)
first_action_ex = task_ex.executions[0]
self.await_action_state(first_action_ex.id, states.RUNNING)
complete_action_params = (
first_action_ex.id,
ml_actions.Result(error="mock")
)
rpc.get_engine_client().on_action_complete(*complete_action_params)
for _ in range(2):
self.assertRaises(
exc.MistralException,
rpc.get_engine_client().on_action_complete,
*complete_action_params
)
self.await_task_running(task_ex.id)
with db_api.transaction():
task_ex = db_api.get_task_execution(task_ex.id)
action_exs = task_ex.executions
self.assertEqual(2, len(action_exs))
for action_ex in action_exs:
if action_ex.id == first_action_ex.id:
expected_state = states.ERROR
else:
expected_state = states.RUNNING
self.assertEqual(expected_state, action_ex.state)
开发者ID:openstack,项目名称:mistral,代码行数:53,代码来源:test_policies.py
示例15: test_pause_before_with_delay_policy
def test_pause_before_with_delay_policy(self):
wb_service.create_workbook_v2(PAUSE_BEFORE_DELAY_WB)
# Start workflow.
wf_ex = self.engine.start_workflow('wb.wf1')
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
task_ex = self._assert_single_item(task_execs, name='task1')
self.assertEqual(states.IDLE, task_ex.state)
# Verify wf paused by pause-before
self.await_workflow_paused(wf_ex.id)
# Allow wait-before to expire
self._sleep(2)
wf_ex = db_api.get_workflow_execution(wf_ex.id)
# Verify wf still paused (wait-before didn't reactivate)
self.await_workflow_paused(wf_ex.id)
task_ex = db_api.get_task_execution(task_ex.id)
self.assertEqual(states.IDLE, task_ex.state)
self.engine.resume_workflow(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
self._assert_single_item(task_execs, name='task1')
self.await_workflow_success(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
task_ex = self._assert_single_item(task_execs, name='task1')
next_task_ex = self._assert_single_item(task_execs, name='task2')
self.assertEqual(states.SUCCESS, task_ex.state)
self.assertEqual(states.SUCCESS, next_task_ex.state)
开发者ID:openstack,项目名称:mistral,代码行数:51,代码来源:test_policies.py
示例16: test_run_with_items
def test_run_with_items(self):
wb_def = """
version: '2.0'
name: wb1
workflows:
wf1:
type: direct
tasks:
t1:
with-items: i in <% list(range(0, 3)) %>
action: std.echo output="Task 1.<% $.i %>"
publish:
v1: <% task(t1).result %>
on-success:
- t2
t2:
action: std.echo output="Task 2"
"""
wb_svc.create_workbook_v2(wb_def)
wf_ex = self.engine.start_workflow('wb1.wf1')
self.await_workflow_success(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
self.assertEqual(states.SUCCESS, wf_ex.state)
self.assertEqual(2, len(wf_ex.task_executions))
task_1_ex = self._assert_single_item(task_execs, name='t1')
task_2_ex = self._assert_single_item(task_execs, name='t2')
self.assertEqual(states.SUCCESS, task_1_ex.state)
self.assertEqual(states.SUCCESS, task_2_ex.state)
with db_api.transaction():
task_1_action_exs = db_api.get_action_executions(
task_execution_id=task_1_ex.id
)
self.assertEqual(3, len(task_1_action_exs))
# Make sure the remote executor is not called.
self.assertFalse(r_exe.RemoteExecutor.run_action.called)
开发者ID:openstack,项目名称:mistral,代码行数:50,代码来源:test_local_executor.py
示例17: test_rerun_task_with_retry_policy
def test_rerun_task_with_retry_policy(self):
wf_service.create_workflows("""---
version: '2.0'
wf_fail:
tasks:
task1:
action: std.fail
retry:
delay: 0
count: 2""")
wf_ex = self.engine.start_workflow("wf_fail")
self.await_workflow_error(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_ex = self._assert_single_item(wf_ex.task_executions,
name="task1")
action_executions = task_ex.executions
self.assertEqual(states.ERROR, wf_ex.state)
self.assertIsNotNone(wf_ex.state_info)
self.assertEqual(3, len(action_executions))
self.assertTrue(all(a.state == states.ERROR
for a in action_executions))
self.engine.rerun_workflow(task_ex.id)
wf_ex = db_api.get_workflow_execution(wf_ex.id)
self.assertEqual(states.RUNNING, wf_ex.state)
self.await_workflow_error(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_ex = self._assert_single_item(wf_ex.task_executions,
name="task1")
action_executions = task_ex.executions
self.assertEqual(states.ERROR, wf_ex.state)
self.assertIsNotNone(wf_ex.state_info)
self.assertEqual(6, len(action_executions))
self.assertTrue(all(a.state == states.ERROR
for a in action_executions))
开发者ID:openstack,项目名称:mistral,代码行数:48,代码来源:test_direct_workflow_rerun.py
示例18: test_resume_different_task_states
def test_resume_different_task_states(self):
wb_service.create_workbook_v2(WORKBOOK_DIFFERENT_TASK_STATES)
# Start workflow.
wf_ex = self.engine.start_workflow('wb.wf1', {})
self.await_workflow_paused(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
self.assertEqual(states.PAUSED, wf_ex.state)
self.assertEqual(3, len(task_execs))
task2_ex = self._assert_single_item(task_execs, name='task2')
# Task2 is not finished yet.
self.assertFalse(states.is_completed(task2_ex.state))
wf_ex = self.engine.resume_workflow(wf_ex.id)
self.assertEqual(states.RUNNING, wf_ex.state)
# Wait for task3 to be processed.
task3_ex = self._assert_single_item(task_execs, name='task3')
self.await_task_success(task3_ex.id)
self.await_task_processed(task3_ex.id)
# Finish task2.
task2_action_ex = db_api.get_action_executions(
task_execution_id=task2_ex.id
)[0]
self.engine.on_action_complete(task2_action_ex.id, utils.Result())
self.await_workflow_success(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
task_execs = wf_ex.task_executions
self.assertEqual(states.SUCCESS, wf_ex.state, wf_ex.state_info)
self.assertEqual(4, len(task_execs))
开发者ID:Tesora,项目名称:tesora-mistral,代码行数:48,代码来源:test_workflow_resume.py
示例19: test_env_not_copied_to_context
def test_env_not_copied_to_context(self):
wf_text = """---
version: '2.0'
wf:
tasks:
task1:
action: std.echo output="<% env().param1 %>"
publish:
result: <% task().result %>
"""
wf_service.create_workflows(wf_text)
env = {
'param1': 'val1',
'param2': 'val2',
'param3': 'val3'
}
wf_ex = self.engine.start_workflow('wf', env=env)
self.await_workflow_success(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
t = self._assert_single_item(
wf_ex.task_executions,
name='task1'
)
self.assertDictEqual({'result': 'val1'}, t.published)
self.assertNotIn('__env', wf_ex.context)
开发者ID:openstack,项目名称:mistral,代码行数:35,代码来源:test_environment.py
示例20: test_with_items_action_defaults_from_env_not_applied
def test_with_items_action_defaults_from_env_not_applied(self):
wf_service.create_workflows(WORKFLOW2_WITH_ITEMS)
wf_input = {
'links': [
'https://api.library.org/books',
'https://api.library.org/authors'
]
}
wf_ex = self.engine.start_workflow(
'wf2_with_items',
wf_input,
env=ENV
)
self.await_workflow_success(wf_ex.id)
with db_api.transaction():
wf_ex = db_api.get_workflow_execution(wf_ex.id)
self.assertEqual(states.SUCCESS, wf_ex.state)
self._assert_single_item(wf_ex.task_executions, name='task1')
calls = [mock.call('GET', url, params=None, data=None,
headers=None, cookies=None,
allow_redirects=None, proxies=None,
auth=EXPECTED_ENV_AUTH, verify=None,
timeout=60)
for url in wf_input['links']]
requests.request.assert_has_calls(calls, any_order=True)
开发者ID:Tesora,项目名称:tesora-mistral,代码行数:32,代码来源:test_action_defaults.py
注:本文中的mistral.db.v2.api.transaction函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论