mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
pipelines: fix edges gathering (#3421)
This commit is contained in:
@@ -61,7 +61,7 @@ class CmdPipelineShow(CmdBase):
|
||||
for out in stage.outs:
|
||||
edges.append((str(out), str(dep)))
|
||||
else:
|
||||
for from_stage, to_stage in networkx.dfs_edges(G, target_stage):
|
||||
for from_stage, to_stage in networkx.edge_dfs(G, target_stage):
|
||||
if commands:
|
||||
if to_stage.cmd is None:
|
||||
continue
|
||||
|
||||
@@ -237,3 +237,29 @@ class TestDvcRepoPipeline(TestDvc):
|
||||
|
||||
pipelines = self.dvc.pipelines
|
||||
self.assertEqual(len(pipelines), 0)
|
||||
|
||||
|
||||
def test_split_pipeline(tmp_dir, dvc):
|
||||
tmp_dir.dvc_gen("data", "source file content")
|
||||
dvc.run(
|
||||
deps=["data"],
|
||||
outs=["data_train", "data_valid"],
|
||||
cmd="echo train >> data_train && echo valid >> data_valid",
|
||||
)
|
||||
stage = dvc.run(
|
||||
deps=["data_train", "data_valid"],
|
||||
outs=["result"],
|
||||
cmd="echo result >> result",
|
||||
)
|
||||
|
||||
command = CmdPipelineShow([])
|
||||
nodes, edges, is_tree = command._build_graph(
|
||||
stage.path, commands=False, outs=True
|
||||
)
|
||||
assert set(nodes) == {"data", "data_train", "data_valid", "result"}
|
||||
assert set(edges) == {
|
||||
("result", "data_train"),
|
||||
("result", "data_valid"),
|
||||
("data_train", "data"),
|
||||
("data_valid", "data"),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user