Ejemplo n.º 1
0
def test_single_activity_flow():
    """Tests that a single activity runs successfully within a flow"""
    class FooActivity(flow.Activity):
        def execute(self, **payload):
            pass

    workflow = flow.ActivityFlow([
        ('foo', flow.ActivityConfig(kind=FooActivity, extend=True, repeat=0)),
    ])

    actions = [action for _, action, _ in workflow.play()]

    assert [
        'starting',
        'playing foo',
        'flow complete',
    ] == actions
Ejemplo n.º 2
0
def test_single_activity_fail_with_no_repeat_flow():
    """Tests that a single failed activity will not be repeated on failure"""
    class FooActivity(flow.Activity):
        def execute(self, **payload):
            raise Exception('fail!')

    workflow = flow.ActivityFlow([
        ('foo', flow.ActivityConfig(kind=FooActivity, extend=True, repeat=0)),
    ])

    actions = [action for _, action, _ in workflow.play()]

    assert [
        'starting',
        'playing foo',
        'error foo',
        'flow complete',
    ] == actions
Ejemplo n.º 3
0
def test_multiple_activities_flow():
    """Tests that multiple activities can complete successfully"""
    class FooActivity(flow.Activity):
        def execute(self, **payload):
            pass

    class BarActivity(flow.Activity):
        def execute(self, **payload):
            pass

    workflow = flow.ActivityFlow([
        ('foo', flow.ActivityConfig(kind=FooActivity, extend=True, repeat=0)),
        ('bar', flow.ActivityConfig(kind=BarActivity, extend=True, repeat=0))
    ])

    actions = [action for _, action, _ in workflow.play()]

    assert [
        'starting',
        'playing foo',
        'playing bar',
        'flow complete',
    ] == actions
Ejemplo n.º 4
0
def test_multiple_activities_skip_flow():
    """Tests that skipping activities is possible"""
    class FooActivity(flow.Activity):
        def execute(self, **payload):
            pass

    class BarActivity(flow.Activity):
        def execute(self, **payload):
            pass

    workflow = flow.ActivityFlow([
        ('foo', flow.ActivityConfig(kind=FooActivity, extend=True, repeat=0)),
        ('bar', flow.ActivityConfig(kind=BarActivity, extend=True, repeat=0))
    ])

    actions = [action for _, action, _ in workflow.play(initial='bar')]

    assert [
        'starting',
        'skipping foo',
        'playing bar',
        'flow complete',
    ] == actions
Ejemplo n.º 5
0
def test_multiple_activities_with_fallthrough_flow():
    """Tests that activities can fallthrough on failure if explicitly set"""
    class FooActivity(flow.Activity):
        def execute(self, **payload):
            raise Exception('fail!')

    class BarActivity(flow.Activity):
        def execute(self, **payload):
            pass

    workflow = flow.ActivityFlow([
        ('foo', flow.ActivityConfig(kind=FooActivity, extend=True, repeat=0)),
        ('bar', flow.ActivityConfig(kind=BarActivity, extend=True, repeat=0))
    ])

    actions = [action for _, action, _ in workflow.play()]

    assert [
        'starting',
        'playing foo',
        'error foo',
        'playing bar',
        'flow complete',
    ] == actions