mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
Fix import issue without remote config in the target
Fix the import issue when target does not have remote config. Signed-off-by: Sujith H <[email protected]>
This commit is contained in:
@@ -11,6 +11,7 @@ from dvc.exceptions import NotDvcRepoError
|
||||
from dvc.exceptions import OutputNotFoundError
|
||||
from dvc.exceptions import NoOutputInExternalRepoError
|
||||
from dvc.exceptions import PathMissingError
|
||||
from dvc.config import NoRemoteError
|
||||
from dvc.utils.fs import fs_copy
|
||||
from dvc.path_info import PathInfo
|
||||
from dvc.scm import SCM
|
||||
@@ -91,7 +92,14 @@ class DependencyREPO(DependencyLOCAL):
|
||||
|
||||
out = repo.find_out_by_relpath(self.def_path)
|
||||
with repo.state:
|
||||
repo.cloud.pull(out.get_used_cache())
|
||||
try:
|
||||
repo.cloud.pull(out.get_used_cache())
|
||||
except NoRemoteError:
|
||||
# It would not be good idea to raise exception if the
|
||||
# file is already present in the cache
|
||||
if not self.repo.cache.local.changed_cache(out.checksum):
|
||||
return out
|
||||
raise
|
||||
|
||||
return out
|
||||
|
||||
|
||||
@@ -10,10 +10,12 @@ from dvc.config import Config
|
||||
from dvc.exceptions import DownloadError
|
||||
from dvc.exceptions import PathMissingError
|
||||
from dvc.exceptions import NoOutputInExternalRepoError
|
||||
from dvc.config import NoRemoteError
|
||||
from dvc.stage import Stage
|
||||
from dvc.system import System
|
||||
from dvc.utils.fs import makedirs
|
||||
from dvc.compat import fspath
|
||||
import dvc.data_cloud as cloud
|
||||
from tests.utils import trees_equal
|
||||
|
||||
|
||||
@@ -56,6 +58,26 @@ def test_import_git_file(erepo_dir, tmp_dir, dvc, scm, src_is_dvc):
|
||||
}
|
||||
|
||||
|
||||
def test_import_cached_file(erepo_dir, tmp_dir, dvc, scm, monkeypatch):
|
||||
src = "some_file"
|
||||
dst = "some_file_imported"
|
||||
|
||||
with erepo_dir.chdir():
|
||||
erepo_dir.dvc_gen({src: "hello"}, commit="add a regular file")
|
||||
|
||||
tmp_dir.dvc_gen({dst: "hello"})
|
||||
(tmp_dir / dst).unlink()
|
||||
|
||||
remote_exception = NoRemoteError("dvc import")
|
||||
with patch.object(cloud.DataCloud, "pull", side_effect=remote_exception):
|
||||
tmp_dir.dvc.imp(fspath(erepo_dir), src, dst)
|
||||
|
||||
assert (tmp_dir / dst).is_file()
|
||||
assert filecmp.cmp(
|
||||
fspath(erepo_dir / src), fspath(tmp_dir / dst), shallow=False
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("src_is_dvc", [True, False])
|
||||
def test_import_git_dir(erepo_dir, tmp_dir, dvc, scm, src_is_dvc):
|
||||
if not src_is_dvc:
|
||||
|
||||
Reference in New Issue
Block a user