plots: json: show even if no results

Related: iterative/vscode-dvc#1521
This commit is contained in:
Paweł Redzyński
2022-04-07 11:45:01 +02:00
parent 1e0a4a26eb
commit 03f553c54b
2 changed files with 28 additions and 2 deletions
+1 -2
View File
@@ -21,8 +21,7 @@ def _show_json(renderers, split=False):
result = {
renderer.name: to_json(renderer, split) for renderer in renderers
}
if result:
ui.write_json(result)
ui.write_json(result)
class CmdPlots(CmdBase):
+27
View File
@@ -336,3 +336,30 @@ def test_plots_templates_choices(tmp_dir, dvc):
assert CmdPlotsTemplates.TEMPLATES_CHOICES == list(
pluck_attr("DEFAULT_NAME", TEMPLATES)
)
@pytest.mark.parametrize("split", (True, False))
def test_show_json(split, mocker, capsys):
import dvc.commands.plots
renderer = mocker.MagicMock()
renderer.name = "rname"
to_json_mock = mocker.patch(
"dvc.render.convert.to_json", return_value={"renderer": "json"}
)
dvc.commands.plots._show_json([renderer], split)
to_json_mock.assert_called_once_with(renderer, split)
out, _ = capsys.readouterr()
assert json.dumps({"rname": {"renderer": "json"}}) in out
def test_show_json_no_renderers(capsys):
import dvc.commands.plots
dvc.commands.plots._show_json([])
out, _ = capsys.readouterr()
assert json.dumps({}) in out