add metrics tests

This commit is contained in:
Ivan Shcheklein
2019-02-09 19:00:40 -08:00
parent dc1242a107
commit 36c4a3a5af
2 changed files with 44 additions and 7 deletions
+27 -6
View File
@@ -359,7 +359,7 @@ class TestNoMetrics(TestDvc):
class TestCachedMetrics(TestDvc):
def _do_write(self, branch):
def _do_add(self, branch):
self.dvc.scm.checkout(branch)
self.dvc.checkout(force=True)
@@ -369,20 +369,35 @@ class TestCachedMetrics(TestDvc):
stages = self.dvc.add("metrics.json")
self.assertEqual(len(stages), 1)
stage = stages[0]
self.assertNotEqual(stage, None)
self.assertIsNotNone(stage)
self.dvc.scm.add([".gitignore", "metrics.json.dvc"])
self.dvc.scm.commit(branch)
def test(self):
def _do_run(self, branch):
self.dvc.scm.checkout(branch)
self.dvc.checkout(force=True)
content = json.dumps({"metrics": branch})
stage = self.dvc.run(
metrics=["metrics.json"],
cmd="echo '{content}' > metrics.json".format(content=content),
)
self.assertIsNotNone(stage)
self.assertEqual(stage.relpath, "metrics.json.dvc")
self.dvc.scm.add([".gitignore", "metrics.json.dvc"])
self.dvc.scm.commit(branch)
def _test_metrics(self, func):
self.dvc.scm.commit("init")
self.dvc.scm.branch("one")
self.dvc.scm.branch("two")
self._do_write("master")
self._do_write("one")
self._do_write("two")
func("master")
func("one")
func("two")
self.dvc = Project(".")
@@ -398,3 +413,9 @@ class TestCachedMetrics(TestDvc):
"two": {"metrics.json": ["two"]},
},
)
def test_add(self):
self._test_metrics(self._do_add)
def test_run(self):
self._test_metrics(self._do_run)
+17 -1
View File
@@ -50,7 +50,7 @@ class TestRun(TestDvc):
self.assertTrue(stage.path, fname)
with self.assertRaises(OutputDuplicationError):
stage = self.dvc.run(
self.dvc.run(
cmd=cmd,
deps=deps,
outs=outs,
@@ -530,6 +530,22 @@ class TestCmdRunOverwrite(TestDvc):
self.assertNotEqual(stage_mtime, os.path.getmtime("out.dvc"))
class TestCmdRunCliMetrics(TestDvc):
def test_cached(self):
ret = main(
["run", "-m", "metrics.txt", "echo -n 'test' > metrics.txt"]
)
self.assertEqual(ret, 0)
self.assertEqual(open("metrics.txt", "r").read(), "test")
def test_not_cached(self):
ret = main(
["run", "-M", "metrics.txt", "echo -n 'test' > metrics.txt"]
)
self.assertEqual(ret, 0)
self.assertEqual(open("metrics.txt", "r").read(), "test")
class TestRunDeterministicBase(TestDvc):
def setUp(self):
super(TestRunDeterministicBase, self).setUp()