ui: migrate cache:dir and check-ignore to ui.write (#6021)

This commit is contained in:
Saugat Pachhai
2021-05-17 18:50:58 +03:00
committed by GitHub
parent 9c4a8c384a
commit e6a2b8a2ad
5 changed files with 58 additions and 51 deletions
+2 -4
View File
@@ -1,11 +1,9 @@
import argparse
import logging
from dvc.command import completion
from dvc.command.base import append_doc_link, fix_subparsers
from dvc.command.config import CmdConfig
logger = logging.getLogger(__name__)
from dvc.ui import ui
class CmdCacheDir(CmdConfig):
@@ -17,7 +15,7 @@ class CmdCacheDir(CmdConfig):
# Use merged config with default values
conf = self.config
self._check(conf, False, "cache", "dir")
logger.info(conf["cache"]["dir"])
ui.write(conf["cache"]["dir"])
return 0
with self.config.edit(level=self.args.level) as conf:
if self.args.unset:
+3 -5
View File
@@ -1,10 +1,8 @@
import argparse
import logging
from dvc.command import completion
from dvc.command.base import CmdBase, append_doc_link
logger = logging.getLogger(__name__)
from dvc.ui import ui
class CmdCheckIgnore(CmdBase):
@@ -22,9 +20,9 @@ class CmdCheckIgnore(CmdBase):
patterns = patterns[-1:]
for pattern in patterns:
logger.info("{}\t{}".format(pattern, result.file))
ui.write(pattern, result.file, sep="\t")
else:
logger.info(result.file)
ui.write(result.file)
def _check_one_file(self, target):
result = self.ignore_filter.check_ignore(target)
+25 -17
View File
@@ -9,11 +9,13 @@ from dvc.main import main
@pytest.mark.parametrize(
"file,ret,output", [("ignored", 0, True), ("not_ignored", 1, False)]
)
def test_check_ignore(tmp_dir, dvc, file, ret, output, caplog):
def test_check_ignore(tmp_dir, dvc, file, ret, output, caplog, capsys):
tmp_dir.gen(DvcIgnore.DVCIGNORE_FILE, "ignored")
assert main(["check-ignore", file]) == ret
assert (file in caplog.text) is output
out, _ = capsys.readouterr()
assert (file in out) is output
assert "Having any troubles?" not in caplog.text
@@ -32,23 +34,24 @@ def test_check_ignore(tmp_dir, dvc, file, ret, output, caplog):
),
],
)
def test_check_ignore_details(tmp_dir, dvc, file, ret, output, caplog):
def test_check_ignore_details(tmp_dir, dvc, file, ret, output, capsys):
tmp_dir.gen(DvcIgnore.DVCIGNORE_FILE, "f*\n!foo")
tmp_dir.gen({"dir": {DvcIgnore.DVCIGNORE_FILE: "foobar"}})
assert main(["check-ignore", "-d", file]) == ret
assert output in caplog.text
assert (output, "") == capsys.readouterr()
@pytest.mark.parametrize("non_matching", [True, False])
def test_check_ignore_non_matching(tmp_dir, dvc, non_matching, caplog):
def test_check_ignore_non_matching(tmp_dir, dvc, non_matching, caplog, capsys):
tmp_dir.gen(DvcIgnore.DVCIGNORE_FILE, "other")
if non_matching:
assert main(["check-ignore", "-d", "-n", "file"]) == 1
else:
assert main(["check-ignore", "-d", "file"]) == 1
assert ("::\tfile\n" in caplog.text) is non_matching
out, _ = capsys.readouterr()
assert ("::\tfile\n" in out) is non_matching
@pytest.mark.parametrize(
@@ -83,19 +86,19 @@ def test_check_ignore_out_side_repo(tmp_dir, dvc):
assert main(["check-ignore", "-q", "../file"]) == 1
def test_check_ignore_sub_repo(tmp_dir, dvc, caplog):
def test_check_ignore_sub_repo(tmp_dir, dvc, capsys):
tmp_dir.gen(
{DvcIgnore.DVCIGNORE_FILE: "other", "dir": {".dvc": {}, "foo": "bar"}}
)
assert main(["check-ignore", "-d", os.path.join("dir", "foo")]) == 0
out, _ = capsys.readouterr()
assert (
"in sub_repo:{}\t{}".format("dir", os.path.join("dir", "foo"),)
in caplog.text
"in sub_repo:{}\t{}".format("dir", os.path.join("dir", "foo"),) in out
)
def test_check_sub_dir_ignore_file(tmp_dir, dvc, caplog):
def test_check_sub_dir_ignore_file(tmp_dir, dvc, capsys):
tmp_dir.gen(
{
DvcIgnore.DVCIGNORE_FILE: "other",
@@ -104,36 +107,41 @@ def test_check_sub_dir_ignore_file(tmp_dir, dvc, caplog):
)
assert main(["check-ignore", "-d", os.path.join("dir", "foo")]) == 0
out, _ = capsys.readouterr()
assert (
"{}:2:foo\t{}".format(
os.path.join("dir", DvcIgnore.DVCIGNORE_FILE),
os.path.join("dir", "foo"),
)
in caplog.text
in out
)
sub_dir = tmp_dir / "dir"
with sub_dir.chdir():
assert main(["check-ignore", "-d", "foo"]) == 0
assert ".dvcignore:2:foo\tfoo" in caplog.text
out, _ = capsys.readouterr()
assert ".dvcignore:2:foo\tfoo" in out
def test_check_ignore_details_all(tmp_dir, dvc, caplog):
def test_check_ignore_details_all(tmp_dir, dvc, capsys):
tmp_dir.gen(DvcIgnore.DVCIGNORE_FILE, "f*\n!foo")
assert main(["check-ignore", "-d", "-a", "foo"]) == 0
assert "{}:1:f*\tfoo\n".format(DvcIgnore.DVCIGNORE_FILE) in caplog.text
assert "{}:2:!foo\tfoo\n".format(DvcIgnore.DVCIGNORE_FILE) in caplog.text
out, _ = capsys.readouterr()
assert "{}:1:f*\tfoo\n".format(DvcIgnore.DVCIGNORE_FILE) in out
assert "{}:2:!foo\tfoo\n".format(DvcIgnore.DVCIGNORE_FILE) in out
@pytest.mark.parametrize(
"file,ret,output", [("ignored", 0, True), ("not_ignored", 1, False)]
)
def test_check_ignore_stdin_mode(
tmp_dir, dvc, file, ret, output, caplog, mocker
tmp_dir, dvc, file, ret, output, capsys, mocker
):
tmp_dir.gen(DvcIgnore.DVCIGNORE_FILE, "ignored")
mocker.patch("builtins.input", side_effect=[file, ""])
assert main(["check-ignore", "--stdin"]) == ret
assert (file in caplog.text) is output
out, _ = capsys.readouterr()
assert (file in out) is output
-25
View File
@@ -1,6 +1,5 @@
import os
import stat
import textwrap
import configobj
import pytest
@@ -230,27 +229,3 @@ def test_shared_cache(tmp_dir, dvc, group):
}
assert expected == actual
def test_cache_dir_local(tmp_dir, dvc, caplog):
(tmp_dir / ".dvc" / "config.local").write_text(
textwrap.dedent(
"""\
[cache]
dir = some/path
"""
)
)
path = os.path.join(dvc.dvc_dir, "some", "path")
caplog.clear()
assert main(["cache", "dir", "--local"]) == 0
assert path in caplog.text
caplog.clear()
assert main(["cache", "dir"]) == 0
assert path in caplog.text
caplog.clear()
assert main(["cache", "dir", "--project"]) == 251
assert "option 'dir' doesn't exist in section 'cache'" in caplog.text
+28
View File
@@ -0,0 +1,28 @@
import os
import textwrap
from dvc.main import main
def test_cache_dir_local(tmp_dir, dvc, capsys, caplog):
(tmp_dir / ".dvc" / "config.local").write_text(
textwrap.dedent(
"""\
[cache]
dir = some/path
"""
)
)
path = os.path.join(dvc.dvc_dir, "some", "path")
assert main(["cache", "dir", "--local"]) == 0
out, _ = capsys.readouterr()
assert path in out
assert main(["cache", "dir"]) == 0
out, _ = capsys.readouterr()
assert path in out
assert main(["cache", "dir", "--project"]) == 251
assert "option 'dir' doesn't exist in section 'cache'" in caplog.text