mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
dvc.objects: use stub ignore in dvc.objects/dvc.data
This commit: * defines a `Ignore` protocol in `dvc.objects`, that expects a `find` method. This will be used in dvc-data and dvc-objects instead of depending on dvc.ignore. dvcignore is expected to respect this protocol, which it does. * renames `dvcignore` kwarg to `ignore` in `dvc-data` and `dvc-objects`. * teaches dvc.cli that `IgnoreInCollectedError` is a known exception and is logged correctly and adds a test for the behaviour. I am not happy that we need to hardcode `.dvcignore` in dvc-data but I don't see any easy way, since we always try to avoid staging if the tree contains .dvcignore file, even if .dvcignore is not passed.
This commit is contained in:
committed by
Ruslan Kuprieiev
parent
54917e3255
commit
32cd6c2c03
@@ -4,6 +4,7 @@ import pytest
|
||||
from funcy import raiser
|
||||
|
||||
from dvc.cli import main
|
||||
from dvc.data.stage import IgnoreInCollectedDirError
|
||||
from dvc.objects.cache import DiskError
|
||||
from dvc.objects.fs.base import FileSystem, RemoteMissingDepsError
|
||||
|
||||
@@ -68,3 +69,18 @@ def test_remote_missing_deps_are_correctly_reported(
|
||||
"Thank you!"
|
||||
)
|
||||
assert expected in caplog.text
|
||||
|
||||
|
||||
def test_ignore_in_collected_dir_error_is_logged(tmp_dir, caplog, mocker):
|
||||
error = IgnoreInCollectedDirError(".dvcignore", "dir")
|
||||
mocker.patch(
|
||||
"dvc.cli.parse_args",
|
||||
return_value=Namespace(
|
||||
func=raiser(error),
|
||||
quiet=False,
|
||||
verbose=True,
|
||||
),
|
||||
)
|
||||
assert main() == 255
|
||||
expected = ".dvcignore file should not be in collected dir path: 'dir'"
|
||||
assert expected in caplog.text
|
||||
|
||||
Reference in New Issue
Block a user