mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
list: add --show-json option (#5888)
* list: add --show-json option * list: add test for --show-json
This commit is contained in:
@@ -34,7 +34,11 @@ class CmdList(CmdBaseNoRepo):
|
||||
recursive=self.args.recursive,
|
||||
dvc_only=self.args.dvc_only,
|
||||
)
|
||||
if entries:
|
||||
if self.args.show_json:
|
||||
import json
|
||||
|
||||
logger.info(json.dumps(entries))
|
||||
elif entries:
|
||||
entries = _prettify(entries, sys.stdout.isatty())
|
||||
logger.info("\n".join(entries))
|
||||
return 0
|
||||
@@ -65,6 +69,9 @@ def add_parser(subparsers, parent_parser):
|
||||
list_parser.add_argument(
|
||||
"--dvc-only", action="store_true", help="Show only DVC outputs."
|
||||
)
|
||||
list_parser.add_argument(
|
||||
"--show-json", action="store_true", help="Show output in JSON format."
|
||||
)
|
||||
list_parser.add_argument(
|
||||
"--rev",
|
||||
nargs="?",
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
import json
|
||||
import logging
|
||||
|
||||
from dvc.cli import parse_args
|
||||
from dvc.command.ls import CmdList
|
||||
|
||||
@@ -52,3 +55,18 @@ def test_list_outputs_only(mocker):
|
||||
m.assert_called_once_with(
|
||||
url, None, recursive=False, rev=None, dvc_only=True
|
||||
)
|
||||
|
||||
|
||||
def test_show_json(mocker, caplog):
|
||||
cli_args = parse_args(["list", "local_dir", "--show-json"])
|
||||
assert cli_args.func == CmdList
|
||||
|
||||
cmd = cli_args.func(cli_args)
|
||||
|
||||
result = [{"key": "val"}]
|
||||
mocker.patch("dvc.repo.Repo.ls", return_value=result)
|
||||
|
||||
with caplog.at_level(logging.INFO, "dvc"):
|
||||
assert cmd.run() == 0
|
||||
|
||||
assert json.dumps(result) in caplog.messages
|
||||
|
||||
Reference in New Issue
Block a user