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
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")]
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") ]
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")
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