dvc: remove tree-specific wrappers from cache (#4214)

This helps combat the remote/tree/cache confusion.
This commit is contained in:
Ruslan Kuprieiev
2020-07-16 00:46:19 +03:00
committed by GitHub
parent 76228a2118
commit 1c4a8cf2ca
13 changed files with 68 additions and 85 deletions
+8 -4
View File
@@ -36,7 +36,7 @@ class TestCache(TestDvc):
self.assertIn(self.cache2_md5, md5_list)
def test_get(self):
cache = Cache(self.dvc).local.hash_to_path_info(self.cache1_md5)
cache = Cache(self.dvc).local.tree.hash_to_path_info(self.cache1_md5)
self.assertEqual(os.fspath(cache), self.cache1)
@@ -47,13 +47,17 @@ class TestCacheLoadBadDirCache(TestDvc):
def test(self):
dir_hash = "123.dir"
fname = os.fspath(self.dvc.cache.local.hash_to_path_info(dir_hash))
fname = os.fspath(
self.dvc.cache.local.tree.hash_to_path_info(dir_hash)
)
self.create(fname, "<clearly>not,json")
with pytest.raises(DirCacheError):
self.dvc.cache.local.load_dir_cache(dir_hash)
dir_hash = "234.dir"
fname = os.fspath(self.dvc.cache.local.hash_to_path_info(dir_hash))
fname = os.fspath(
self.dvc.cache.local.tree.hash_to_path_info(dir_hash)
)
self.create(fname, '{"a": "b"}')
self._do_test(self.dvc.cache.local.load_dir_cache(dir_hash))
@@ -84,7 +88,7 @@ class TestExternalCacheDir(TestDvc):
self.dvc.__init__()
assert self.dvc.cache.ssh.path_info == ssh_url + "/tmp"
assert self.dvc.cache.ssh.tree.path_info == ssh_url + "/tmp"
class TestSharedCacheDir(TestDir):
+3 -1
View File
@@ -101,7 +101,9 @@ class TestCheckoutCorruptedCacheDir(TestDvc):
# to check if dvc will detect that the cache is corrupted.
entry = self.dvc.cache.local.load_dir_cache(out.checksum)[0]
entry_hash = entry[self.dvc.cache.local.tree.PARAM_CHECKSUM]
cache = os.fspath(self.dvc.cache.local.hash_to_path_info(entry_hash))
cache = os.fspath(
self.dvc.cache.local.tree.hash_to_path_info(entry_hash)
)
os.chmod(cache, 0o644)
with open(cache, "w+") as fobj:
+1 -1
View File
@@ -21,7 +21,7 @@ class TestGC(TestDvcGit):
self.dvc.add(self.FOO)
self.dvc.add(self.DATA_DIR)
self.good_cache = [
self.dvc.cache.local.hash_to_path_info(md5)
self.dvc.cache.local.tree.hash_to_path_info(md5)
for md5 in self.dvc.cache.local.tree.all()
]
+2 -2
View File
@@ -158,7 +158,7 @@ def test_dir_hash_should_be_key_order_agnostic(tmp_dir, dvc):
{"relpath": "2", "md5": "2"},
],
):
hash1 = dvc.cache.local.get_hash(path_info)
hash1 = dvc.cache.local.tree.get_hash(path_info)
with patch.object(
BaseRemoteTree,
@@ -168,7 +168,7 @@ def test_dir_hash_should_be_key_order_agnostic(tmp_dir, dvc):
{"md5": "2", "relpath": "2"},
],
):
hash2 = dvc.cache.local.get_hash(path_info)
hash2 = dvc.cache.local.tree.get_hash(path_info)
assert hash1 == hash2
+3 -3
View File
@@ -193,7 +193,7 @@ def test_repotree_walk_fetch(tmp_dir, dvc, scm, local_remote):
assert os.path.exists(out.cache_path)
for entry in out.dir_cache:
hash_ = entry[out.tree.PARAM_CHECKSUM]
assert os.path.exists(dvc.cache.local.hash_to_path_info(hash_))
assert os.path.exists(dvc.cache.local.tree.hash_to_path_info(hash_))
def test_repotree_cache_save(tmp_dir, dvc, scm, erepo_dir, local_cloud):
@@ -217,10 +217,10 @@ def test_repotree_cache_save(tmp_dir, dvc, scm, erepo_dir, local_cloud):
with erepo_dir.dvc.state:
cache = dvc.cache.local
with cache.state:
with cache.tree.state:
cache.save(PathInfo(erepo_dir / "dir"), tree, None)
for hash_ in expected:
assert os.path.exists(cache.hash_to_path_info(hash_))
assert os.path.exists(cache.tree.hash_to_path_info(hash_))
def test_cleantree_subrepo(tmp_dir, dvc, scm, monkeypatch):