示例#1
0
 class TestPromoteExampleWf(object):
     wf_input = _sdk_workflow.Input(_Types.Integer, required=True)
     my_task_node = demo_task_for_promote(a=wf_input)
     wf_output_b = _sdk_workflow.Output(my_task_node.outputs.b,
                                        sdk_type=_Types.Integer)
     wf_output_c = _sdk_workflow.Output(my_task_node.outputs.c,
                                        sdk_type=_Types.Integer)
示例#2
0
class IdentityWorkflow(object):
    a = _workflow.Input(_Types.Integer,
                        default=5,
                        help="Input for inner workflow")
    odd_nums_task = inner_task(num=a)
    task_output = _workflow.Output(odd_nums_task.outputs.out,
                                   sdk_type=_Types.Integer)
示例#3
0
def test_launch_plan_node():
    workflow_to_test = _workflow.workflow(
        {},
        inputs={
            "required_input": _workflow.Input(_types.Types.Integer),
            "default_input": _workflow.Input(_types.Types.Integer, default=5),
        },
        outputs={
            "out": _workflow.Output([1, 2, 3], sdk_type=[_types.Types.Integer])
        },
    )
    lp = workflow_to_test.create_launch_plan()

    # Test that required input isn't set
    with _pytest.raises(_user_exceptions.FlyteAssertion):
        lp()

    # Test that positional args are rejected
    with _pytest.raises(_user_exceptions.FlyteAssertion):
        lp(1, 2)

    # Test that type checking works
    with _pytest.raises(_user_exceptions.FlyteTypeException):
        lp(required_input="abc", default_input=1)

    # Test that bad arg name is detected
    with _pytest.raises(_user_exceptions.FlyteAssertion):
        lp(required_input=1, bad_arg=1)

    # Test default input is accounted for
    n = lp(required_input=10)
    assert n.inputs[0].var == "default_input"
    assert n.inputs[0].binding.scalar.primitive.integer == 5
    assert n.inputs[1].var == "required_input"
    assert n.inputs[1].binding.scalar.primitive.integer == 10

    # Test default input is overridden
    n = lp(required_input=10, default_input=50)
    assert n.inputs[0].var == "default_input"
    assert n.inputs[0].binding.scalar.primitive.integer == 50
    assert n.inputs[1].var == "required_input"
    assert n.inputs[1].binding.scalar.primitive.integer == 10

    # Test that launch plan ID ref is flexible
    lp._id = "fake"
    assert n.workflow_node.launchplan_ref == "fake"
    lp._id = None

    # Test that outputs are promised
    n.assign_id_and_return("node-id")
    assert n.outputs["out"].sdk_type.to_flyte_literal_type(
    ).collection_type.simple == _type_models.SimpleType.INTEGER
    assert n.outputs["out"].var == "out"
    assert n.outputs["out"].node_id == "node-id"
示例#4
0
 class test_workflow(object):
     a = _workflow.Input(_types.Types.Integer)
     test = testy_test(a=1)
     b = _workflow.Output(test.outputs.b, sdk_type=_types.Types.Integer)