mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
repro: implement downstream option (#1926)
* repro: implement downstream option Close #1555 * Update scripts/completion/dvc.zsh Co-Authored-By: mroutis <[email protected]> * Update dvc/command/repro.py Co-Authored-By: mroutis <[email protected]>
This commit is contained in:
committed by
Ruslan Kuprieiev
parent
44e20f1aa8
commit
c0104e2e61
@@ -1420,3 +1420,39 @@ def _format_dvc_line(line):
|
||||
|
||||
def _hide_md5(text):
|
||||
return re.sub(r"\b[a-f0-9]{32}\b", "<md5>", text)
|
||||
|
||||
|
||||
class TestReproDownstream(TestDvc):
|
||||
def test(self):
|
||||
# The dependency graph should look like this:
|
||||
#
|
||||
# E
|
||||
# / \
|
||||
# D F
|
||||
# / \ \
|
||||
# B C G
|
||||
# \ /
|
||||
# A
|
||||
#
|
||||
assert main(["run", "-o", "A", "echo A>A"]) == 0
|
||||
assert main(["run", "-d", "A", "-o", "B", "echo B>B"]) == 0
|
||||
assert main(["run", "-d", "A", "-o", "C", "echo C>C"]) == 0
|
||||
assert main(["run", "-d", "B", "-d", "C", "-o", "D", "echo D>D"]) == 0
|
||||
assert main(["run", "-o", "G", "echo G>G"]) == 0
|
||||
assert main(["run", "-d", "G", "-o", "F", "echo F>F"]) == 0
|
||||
assert main(["run", "-d", "D", "-d", "F", "-o", "E", "echo E>E"]) == 0
|
||||
|
||||
# We want the evaluation to move from B to E
|
||||
#
|
||||
# E
|
||||
# /
|
||||
# D
|
||||
# /
|
||||
# B
|
||||
#
|
||||
evaluation = self.dvc.reproduce("B.dvc", downstream=True, force=True)
|
||||
|
||||
assert len(evaluation) == 3
|
||||
assert evaluation[0].relpath == "B.dvc"
|
||||
assert evaluation[1].relpath == "D.dvc"
|
||||
assert evaluation[2].relpath == "E.dvc"
|
||||
|
||||
Reference in New Issue
Block a user