metrics: rename show, repro: fix metrics display problem

This commit is contained in:
pared
2019-03-26 11:56:35 +01:00
parent 2776f2f317
commit 7b7ecf5bc1
3 changed files with 50 additions and 10 deletions
+10 -9
View File
@@ -5,15 +5,16 @@ from dvc.exceptions import DvcException
from dvc.command.base import CmdBase, fix_subparsers
def show_metrics(metrics, all_branches=False, all_tags=False):
for branch, val in metrics.items():
if all_branches or all_tags:
logger.info("{}:".format(branch))
for fname, metric in val.items():
logger.info("\t{}: {}".format(fname, metric))
class CmdMetricsShow(CmdBase):
def _show(self, metrics):
for branch, val in metrics.items():
if self.args.all_branches or self.args.all_tags:
logger.info("{}:".format(branch))
for fname, metric in val.items():
logger.info("\t{}: {}".format(fname, metric))
def run(self):
typ = self.args.type
xpath = self.args.xpath
@@ -27,7 +28,7 @@ class CmdMetricsShow(CmdBase):
recursive=self.args.recursive,
)
self._show(metrics)
show_metrics(metrics, self.args.all_branches, self.args.all_tags)
except DvcException:
logger.error("failed to show metrics")
return 1
+3 -1
View File
@@ -4,6 +4,7 @@ import os
import dvc.logger as logger
from dvc.command.base import CmdBase
from dvc.command.metrics import show_metrics
from dvc.command.status import CmdDataStatus
from dvc.exceptions import DvcException
@@ -40,7 +41,8 @@ class CmdRepro(CmdBase):
logger.info(CmdDataStatus.UP_TO_DATE_MSG)
if self.args.metrics:
self.repo.metrics.show()
metrics = self.repo.metrics.show()
show_metrics(metrics)
except DvcException:
logger.error()
ret = 1
+37
View File
@@ -1,3 +1,4 @@
from dvc.logger import logger
from dvc.utils.compat import str
import os
@@ -32,8 +33,10 @@ from tests.basic_env import TestDvc
from tests.test_data_cloud import _should_test_aws, TEST_AWS_REPO_BUCKET
from tests.test_data_cloud import _should_test_gcp, TEST_GCP_REPO_BUCKET
from tests.test_data_cloud import _should_test_ssh, _should_test_hdfs
from tests.utils import reset_logger_standard_output
from tests.utils.httpd import StaticFileServer
from mock import patch
from tests.utils.logger import MockLoggerHandlers
class TestRepro(TestDvc):
@@ -1375,3 +1378,37 @@ class TestReproAlreadyCached(TestRepro):
self.assertEqual(ret, 0)
self.assertEqual(mock_download.call_count, 1)
self.assertEqual(mock_checkout.call_count, 0)
class TestShouldDisplayMetricsOnReproWithMetricsOption(TestDvc):
def test(self):
metrics_file = "metrics_file"
metrics_value = 0.123489015
ret = main(
[
"run",
"-m",
metrics_file,
"echo {} >> {}".format(metrics_value, metrics_file),
]
)
self.assertEqual(0, ret)
with MockLoggerHandlers(logger):
reset_logger_standard_output()
ret = main(
[
"repro",
"--force",
"--metrics",
metrics_file + Stage.STAGE_FILE_SUFFIX,
]
)
self.assertEqual(0, ret)
expected_metrics_display = "{}: {}".format(
metrics_file, metrics_value
)
self.assertIn(
expected_metrics_display, logger.handlers[0].stream.getvalue()
)