dvc ls: not raise PathMissingError on empty dir.

fix #5841
This commit is contained in:
karajan1001
2022-05-11 11:24:32 +03:00
committed by Ruslan Kuprieiev
parent d92c6fed67
commit 09afd2a0cd
2 changed files with 15 additions and 4 deletions
+3 -3
View File
@@ -31,11 +31,11 @@ def ls(url, path=None, rev=None, recursive=None, dvc_only=False):
with Repo.open(url, rev=rev, subrepos=True, uninitialized=True) as repo:
path = path or ""
ret = _ls(repo.repo_fs, path, recursive, dvc_only)
if path and not ret:
if path and not repo.repo_fs.exists(path):
raise PathMissingError(path, repo, dvc_only=dvc_only)
ret = _ls(repo.repo_fs, path, recursive, dvc_only)
ret_list = []
for path, info in ret.items():
info["path"] = path
+12 -1
View File
@@ -150,9 +150,20 @@ def test_ls_repo_with_path_dir_dvc_only_empty(tmp_dir, dvc, scm):
tmp_dir.scm_gen(FS_STRUCTURE, commit="init")
tmp_dir.dvc_gen(DVC_STRUCTURE, commit="dvc")
tmp_dir.scm_gen({"folder/.keep": "content"}, commit="add .keep")
tmp_dir.scm_gen({"empty_scm_folder/": {}}, commit="add scm empty")
tmp_dir.dvc_gen({"empty_dvc_folder": {}}, commit="empty dvc folder")
with pytest.raises(PathMissingError):
Repo.ls(os.fspath(tmp_dir), path="folder", dvc_only=True)
Repo.ls(os.fspath(tmp_dir), path="not_exist_folder")
assert Repo.ls(os.fspath(tmp_dir), path="empty_scm_folder") == []
assert Repo.ls(os.fspath(tmp_dir), path="folder", dvc_only=True) == []
assert (
Repo.ls(os.fspath(tmp_dir), path="empty_dvc_folder", dvc_only=True)
== []
)
def test_ls_repo_with_path_subdir(tmp_dir, dvc, scm):