diff --git a/tests/test_metrics.py b/tests/test_metrics.py index ce3d088f1..5ebf11e1e 100644 --- a/tests/test_metrics.py +++ b/tests/test_metrics.py @@ -378,10 +378,26 @@ class TestCachedMetrics(TestDvc): self.dvc.scm.checkout(branch) self.dvc.checkout(force=True) - content = json.dumps({"metrics": branch}) + print( + 'print(json.dumps({{"metrics": "{branch}"}})\n'.format( + branch=branch + ) + ) + + with open("code.py", "w+") as fobj: + fobj.write("import sys\n") + fobj.write("import os\n") + fobj.write("import json\n") + fobj.write( + 'print(json.dumps({{"metrics": "{branch}"}}))\n'.format( + branch=branch + ) + ) + stage = self.dvc.run( + deps=["code.py"], metrics=["metrics.json"], - cmd="echo '{content}' > metrics.json".format(content=content), + cmd="python code.py metrics.json > metrics.json", ) self.assertIsNotNone(stage) self.assertEqual(stage.relpath, "metrics.json.dvc") diff --git a/tests/test_run.py b/tests/test_run.py index 5e6355500..046f5158c 100644 --- a/tests/test_run.py +++ b/tests/test_run.py @@ -532,18 +532,14 @@ class TestCmdRunOverwrite(TestDvc): class TestCmdRunCliMetrics(TestDvc): def test_cached(self): - ret = main( - ["run", "-m", "metrics.txt", "echo -n 'test' > metrics.txt"] - ) + ret = main(["run", "-m", "metrics.txt", "echo 'test' > metrics.txt"]) self.assertEqual(ret, 0) - self.assertEqual(open("metrics.txt", "r").read(), "test") + self.assertEqual(open("metrics.txt", "r").read().rstrip(), "test") def test_not_cached(self): - ret = main( - ["run", "-M", "metrics.txt", "echo -n 'test' > metrics.txt"] - ) + ret = main(["run", "-M", "metrics.txt", "echo 'test' > metrics.txt"]) self.assertEqual(ret, 0) - self.assertEqual(open("metrics.txt", "r").read(), "test") + self.assertEqual(open("metrics.txt", "r").read().rstrip(), "test") class TestRunDeterministicBase(TestDvc):