mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-08 23:09:48 +01:00
ui: migrate cache:dir and check-ignore to ui.write (#6021)
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user