本文整理汇总了Python中workflow.engine.GenericWorkflowEngine.restart方法的典型用法代码示例。如果您正苦于以下问题:Python GenericWorkflowEngine.restart方法的具体用法?Python GenericWorkflowEngine.restart怎么用?Python GenericWorkflowEngine.restart使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类workflow.engine.GenericWorkflowEngine
的用法示例。
在下文中一共展示了GenericWorkflowEngine.restart方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TestWorkflowEngine
# 需要导入模块: from workflow.engine import GenericWorkflowEngine [as 别名]
# 或者: from workflow.engine.GenericWorkflowEngine import restart [as 别名]
class TestWorkflowEngine(object):
"""Tests using FakeTokens in place of strings"""
def setup_method(self, method):
self.key = '*'
self.wfe = GenericWorkflowEngine()
self.data = ['one', 'two', 'three', 'four', 'five']
self.tokens = [FakeToken(x, type='*') for x in self.data]
def teardown_method(self, method):
pass
@pytest.mark.parametrize("_,tokens,exception,exception_msg", (
("int", 49, WorkflowError, "not an iterable"),
("str", "hello", WorkflowError, "not an iterable"),
("object", object, WorkflowError, "not an iterable"),
))
def test_objects_are_of_bad_type(self, _, tokens, exception, exception_msg):
with pytest.raises(exception) as exc_info:
self.wfe.process(tokens)
assert exception_msg in exc_info.value.args[0]
def test_empty_object_list_logs_warning(self):
assert hasattr(self.wfe, 'log')
self.wfe.log = mock.Mock()
self.wfe.callbacks.replace([lambda o, e: None])
self.wfe.process([])
self.wfe.log.warning.assert_called_once_with('List of objects is empty. Running workflow '
'on empty set has no effect.')
def test_current_taskname_resolution(self):
workflow = [m('test')]
self.wfe.callbacks.replace(workflow, self.key)
self.wfe.process(self.tokens)
assert self.wfe.current_taskname == 'string appender'
workflow = [lambda obj, eng: 1]
self.wfe.callbacks.replace(workflow, self.key)
self.wfe.process(self.tokens)
assert self.wfe.current_taskname == '<lambda>'
workflow = [
IF_ELSE(
lambda obj, eng: True,
[lambda obj, eng: 1],
[lambda obj, eng: 2],
)
]
self.wfe.callbacks.replace(workflow, self.key)
# This test will break if someone changes IF_ELSE. TODO: Mock
# Note: Python3 has much stronger introspection, thus the `.*`.
assert re.match(r'\[<function IF_ELSE.* at 0x[0-f]+>, '
r'\[<function .*<lambda> at 0x[0-f]+>\], '
r'<function BREAK.* at 0x[0-f]+>, '
r'\[<function .*<lambda> at 0x[0-f]+>\]\]',
self.wfe.current_taskname)
def test_current_object_returns_correct_object(self):
self.wfe.callbacks.replace([halt_processing()])
assert self.wfe.current_object is None
with pytest.raises(HaltProcessing):
self.wfe.process(self.tokens)
assert self.wfe.current_object is self.tokens[0]
with pytest.raises(HaltProcessing):
self.wfe.restart('current', 'next')
assert self.wfe.current_object is self.tokens[1]
@pytest.mark.parametrize("_,callbacks,expected_result", (
(
'skips_forward_with_acceptable_increment',
[
m('mouse'),
[m('dog'), jump_call(2), m('cat'), m('puppy'), m('python')],
m('horse'),
],
'mouse dog puppy python horse'
),
(
'skips_forward_with_increment_that_is_too_large',
[
m('mouse'),
[m('dog'), jump_call(50), m('cat'), m('puppy'), m('python')],
m('horse'),
],
'mouse dog horse'
),
(
'jumps_forward_outside_of_nest',
[
jump_call(3),
m('mouse'),
[m('dog'), m('cat'), m('puppy'), m('python')],
m('horse'),
],
'horse'
),
#.........这里部分代码省略.........