Files
dvc/tests/unit/command/ls/test_ls.py
T
Paweł Redzyński d509d77193 list: add --show-json option (#5888)
* list: add --show-json option

* list: add test for --show-json
2021-04-30 11:40:44 +02:00

73 lines
1.7 KiB
Python

import json
import logging
from dvc.cli import parse_args
from dvc.command.ls import CmdList
def _test_cli(mocker, *args):
cli_args = parse_args(["list", *args])
assert cli_args.func == CmdList
cmd = cli_args.func(cli_args)
m = mocker.patch("dvc.repo.Repo.ls")
assert cmd.run() == 0
return m
def test_list(mocker):
url = "local_dir"
m = _test_cli(mocker, url)
m.assert_called_once_with(
url, None, recursive=False, rev=None, dvc_only=False
)
def test_list_recursive(mocker):
url = "local_dir"
m = _test_cli(mocker, url, "-R")
m.assert_called_once_with(
url, None, recursive=True, rev=None, dvc_only=False
)
def test_list_git_ssh_rev(mocker):
url = "[email protected]:repo"
m = _test_cli(mocker, url, "--rev", "123")
m.assert_called_once_with(
url, None, recursive=False, rev="123", dvc_only=False
)
def test_list_targets(mocker):
url = "local_dir"
target = "subdir"
m = _test_cli(mocker, url, target)
m.assert_called_once_with(
url, target, recursive=False, rev=None, dvc_only=False
)
def test_list_outputs_only(mocker):
url = "local_dir"
m = _test_cli(mocker, url, None, "--dvc-only")
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