예제 #1
0
def test_expand_two_nodes_both_fan_out():
    tool_1 = Tool(tool_1_def, "T1")
    tool_2 = Tool(tool_1_def, "T2")
    p = Pipeline()
    node_1 = p.add(tool_1)
    node_1.input = ["test_1.txt", "test_2.txt"]
    node_2 = p.add(tool_2)
    node_2.input = node_1.output
    assert len(p._nodes) == 2
    assert len(p._edges) == 1
    p.expand(validate=False)
    assert len(p._nodes) == 4
    assert len(p._edges) == 2
예제 #2
0
def test_expand_single_node():
    tool = Tool(tool_1_def)
    p = Pipeline()
    node = p.add(tool)
    node.input = ["test_1.txt", "test_2.txt"]
    p.expand(validate=False)
    assert len(p._nodes) == 2
    assert len(p._edges) == 0
    inputs = []
    for node in p.nodes():
        inputs.append(node.input.get())
    assert sorted(inputs) == [os.path.join(os.getcwd(), "test_1.txt"),
                              os.path.join(os.getcwd(), "test_2.txt")]
예제 #3
0
def test_expand_two_nodes_both_fan_out():
    tool_1 = Tool(tool_1_def, "T1")
    tool_2 = Tool(tool_1_def, "T2")
    p = Pipeline()
    node_1 = p.add(tool_1)
    node_1.input = ["test_1.txt", "test_2.txt"]
    node_2 = p.add(tool_2)
    node_2.input = node_1.output
    assert len(p._nodes) == 2
    assert len(p._edges) == 1
    p.expand(validate=False)
    assert len(p._nodes) == 4
    assert len(p._edges) == 2
예제 #4
0
def test_expand_single_node():
    tool = Tool(tool_1_def)
    p = Pipeline()
    node = p.add(tool)
    node.input = ["test_1.txt", "test_2.txt"]
    p.expand(validate=False)
    assert len(p._nodes) == 2
    assert len(p._edges) == 0
    inputs = []
    for node in p.nodes():
        inputs.append(node.input.get())
    assert sorted(inputs) == [
        os.path.join(os.getcwd(), "test_1.txt"),
        os.path.join(os.getcwd(), "test_2.txt")
    ]
예제 #5
0
def test_node_naming_in_simple_multiplex():
    p = Pipeline()
    j = p.job("1").run('bash', cmd="ls")
    assert p.get("1") == j
    j.input = ["A", "B", "C"]
    p.expand(validate=False)

    with pytest.raises(LookupError):
        p.get("1")
    assert len(p) == 3
    assert p.get("1.0") is not None
    assert p.get("1.0").input.get() == os.path.join(os.getcwd(), "A")

    assert p.get("1.1") is not None
    assert p.get("1.1").input.get() == os.path.join(os.getcwd(), "B")

    assert p.get("1.2") is not None
    assert p.get("1.2").input.get() == os.path.join(os.getcwd(), "C")
예제 #6
0
def test_node_naming_in_simple_multiplex():
    p = Pipeline()
    j = p.job("1").run('bash', cmd="ls")
    assert p.get("1") == j
    j.input = ["A", "B", "C"]
    p.expand(validate=False)

    with pytest.raises(LookupError):
        p.get("1")
    assert len(p) == 3
    assert p.get("1.0") is not None
    assert p.get("1.0").input.get() == os.path.join(os.getcwd(), "A")

    assert p.get("1.1") is not None
    assert p.get("1.1").input.get() == os.path.join(os.getcwd(), "B")

    assert p.get("1.2") is not None
    assert p.get("1.2").input.get() == os.path.join(os.getcwd(), "C")
예제 #7
0
def test_expand_three_nodes_two_fan_out():
    tool_1 = Tool(tool_1_def, "T1")
    tool_2 = Tool(tool_1_def, "T2")
    tool_3 = Tool(tool_1_def, "T3")
    p = Pipeline()
    node_1 = p.add(tool_1)
    node_1.input = ["test_1.txt", "test_2.txt"]
    node_2 = p.add(tool_2)
    node_2.input = node_1.output
    node_3 = p.add(tool_3)
    node_3.x = "other"
    node_3 = p.add(tool_3)
    node_2.x = node_3.x

    assert len(p._nodes) == 3
    assert len(p._edges) == 2
    p.expand(validate=False)
    assert len(p._nodes) == 5
    assert len(p._edges) == 6
예제 #8
0
def test_expand_three_nodes_two_fan_out():
    tool_1 = Tool(tool_1_def, "T1")
    tool_2 = Tool(tool_1_def, "T2")
    tool_3 = Tool(tool_1_def, "T3")
    p = Pipeline()
    node_1 = p.add(tool_1)
    node_1.input = ["test_1.txt", "test_2.txt"]
    node_2 = p.add(tool_2)
    node_2.input = node_1.output
    node_3 = p.add(tool_3)
    node_3.x = "other"
    node_3 = p.add(tool_3)
    node_2.x = node_3.x

    assert len(p._nodes) == 3
    assert len(p._edges) == 2
    p.expand(validate=False)
    assert len(p._nodes) == 5
    assert len(p._edges) == 6