mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
dvc.fs: rename fs.utils to fs.generic
In the spirit of fsspec.generic, it is for cross-filesystem operations. Trying to avoid `fs.utils` as much as possible, but we have some functions that are really utilities coming, so I am making a place for them. :)
This commit is contained in:
committed by
Ruslan Kuprieiev
parent
005d56eedf
commit
aac2fc0ca0
@@ -66,7 +66,7 @@ def test_clear_on_download_err(tmp_dir, dvc, index, mocker):
|
||||
|
||||
assert list(index.hashes())
|
||||
|
||||
mocker.patch("dvc.fs.utils.transfer", side_effect=Exception)
|
||||
mocker.patch("dvc.fs.generic.transfer", side_effect=Exception)
|
||||
with pytest.raises(DownloadError):
|
||||
dvc.pull()
|
||||
assert not list(index.hashes())
|
||||
@@ -83,7 +83,7 @@ def test_partial_upload(tmp_dir, dvc, index, mocker):
|
||||
raise Exception("stop baz")
|
||||
return original(self, from_file, to_info, name, **kwargs)
|
||||
|
||||
mocker.patch("dvc.fs.utils.transfer", unreliable_upload)
|
||||
mocker.patch("dvc.fs.generic.transfer", unreliable_upload)
|
||||
with pytest.raises(UploadError):
|
||||
dvc.push()
|
||||
assert not list(index.hashes())
|
||||
|
||||
@@ -47,14 +47,14 @@ def test_source_change(erepo_dir):
|
||||
|
||||
|
||||
def test_cache_reused(erepo_dir, mocker, local_cloud):
|
||||
import dvc.fs.utils
|
||||
from dvc import fs
|
||||
|
||||
erepo_dir.add_remote(config=local_cloud.config)
|
||||
with erepo_dir.chdir():
|
||||
erepo_dir.dvc_gen("file", "text", commit="add file")
|
||||
erepo_dir.dvc.push()
|
||||
|
||||
download_spy = mocker.spy(dvc.fs.utils, "transfer")
|
||||
download_spy = mocker.spy(fs.generic, "transfer")
|
||||
|
||||
# Use URL to prevent any fishy optimizations
|
||||
url = f"file://{erepo_dir}"
|
||||
|
||||
@@ -307,9 +307,9 @@ def test_download_error_pulling_imported_stage(tmp_dir, dvc, erepo_dir):
|
||||
remove("foo_imported")
|
||||
remove(dst_cache)
|
||||
|
||||
with patch("dvc.fs.utils.transfer", side_effect=Exception), pytest.raises(
|
||||
DownloadError
|
||||
):
|
||||
with patch(
|
||||
"dvc.fs.generic.transfer", side_effect=Exception
|
||||
), pytest.raises(DownloadError):
|
||||
dvc.pull(["foo_imported.dvc"])
|
||||
|
||||
|
||||
|
||||
@@ -166,14 +166,14 @@ def test_dir_hash_should_be_key_order_agnostic(tmp_dir, dvc):
|
||||
|
||||
|
||||
def test_partial_push_n_pull(tmp_dir, dvc, tmp_path_factory, local_remote):
|
||||
import dvc.fs.utils as fs_utils
|
||||
from dvc import fs
|
||||
|
||||
foo = tmp_dir.dvc_gen({"foo": "foo content"})[0].outs[0]
|
||||
bar = tmp_dir.dvc_gen({"bar": "bar content"})[0].outs[0]
|
||||
baz = tmp_dir.dvc_gen({"baz": {"foo": "foo content"}})[0].outs[0]
|
||||
|
||||
# Faulty upload version, failing on foo
|
||||
original = fs_utils.transfer
|
||||
original = fs.generic.transfer
|
||||
odb = dvc.cloud.get_remote_odb("upstream")
|
||||
|
||||
def unreliable_upload(from_fs, from_info, to_fs, to_info, **kwargs):
|
||||
@@ -183,7 +183,7 @@ def test_partial_push_n_pull(tmp_dir, dvc, tmp_path_factory, local_remote):
|
||||
raise Exception("stop foo")
|
||||
return original(from_fs, from_info, to_fs, to_info, **kwargs)
|
||||
|
||||
with patch.object(fs_utils, "transfer", unreliable_upload):
|
||||
with patch.object(fs.generic, "transfer", unreliable_upload):
|
||||
with pytest.raises(UploadError) as upload_error_info:
|
||||
dvc.push()
|
||||
assert upload_error_info.value.amount == 2
|
||||
@@ -197,7 +197,7 @@ def test_partial_push_n_pull(tmp_dir, dvc, tmp_path_factory, local_remote):
|
||||
remove(dvc.odb.local.cache_dir)
|
||||
|
||||
baz._collect_used_dir_cache()
|
||||
with patch.object(fs_utils, "transfer", side_effect=Exception):
|
||||
with patch.object(fs.generic, "transfer", side_effect=Exception):
|
||||
with pytest.raises(DownloadError) as download_error_info:
|
||||
dvc.pull()
|
||||
# error count should be len(.dir + standalone file checksums)
|
||||
@@ -211,7 +211,7 @@ def test_raise_on_too_many_open_files(
|
||||
tmp_dir.dvc_gen({"file": "file content"})
|
||||
|
||||
mocker.patch(
|
||||
"dvc.fs.utils.transfer",
|
||||
"dvc.fs.generic.transfer",
|
||||
side_effect=OSError(errno.EMFILE, "Too many open files"),
|
||||
)
|
||||
|
||||
@@ -260,12 +260,12 @@ def test_external_dir_resource_on_no_cache(tmp_dir, dvc, tmp_path_factory):
|
||||
|
||||
|
||||
def test_push_order(tmp_dir, dvc, tmp_path_factory, mocker, local_remote):
|
||||
import dvc.fs.utils as fs_utils
|
||||
from dvc import fs
|
||||
|
||||
foo = tmp_dir.dvc_gen({"foo": {"bar": "bar content"}})[0].outs[0]
|
||||
tmp_dir.dvc_gen({"baz": "baz content"})
|
||||
|
||||
mocked_upload = mocker.spy(fs_utils, "transfer")
|
||||
mocked_upload = mocker.spy(fs.generic, "transfer")
|
||||
dvc.push()
|
||||
|
||||
# foo .dir file should be uploaded after bar
|
||||
|
||||
Reference in New Issue
Block a user