Repository now returns *Object instead of Digest.
This commit is contained in:
@@ -48,13 +48,17 @@ def test_read_write_blob(tmp_dir: Path, repo: Repository):
|
||||
make_random_file(path, 1 << 20)
|
||||
|
||||
with path.open("rb") as stream:
|
||||
digest = repo.add_blob(stream)
|
||||
|
||||
blob = repo.get_blob(digest)
|
||||
data = blob.reader().read()
|
||||
|
||||
obj0 = repo.add_blob(stream)
|
||||
assert obj0.object_type == b"blob"
|
||||
with path.open("rb") as stream:
|
||||
assert data == stream.read()
|
||||
assert obj0.blob.reader().read() == stream.read()
|
||||
|
||||
obj1 = repo.get_blob(obj0.digest)
|
||||
assert obj1.digest == obj0.digest
|
||||
assert obj1.object_type == obj0.object_type
|
||||
assert obj1.size == obj0.size
|
||||
with path.open("rb") as stream:
|
||||
assert obj1.blob.reader().read() == stream.read()
|
||||
|
||||
|
||||
def test_read_write_tree(repo: Repository):
|
||||
@@ -83,8 +87,15 @@ def test_read_write_tree(repo: Repository):
|
||||
|
||||
assert Tree.from_bytes(repo, tree.to_bytes()) == tree
|
||||
|
||||
digest = repo.add_tree(tree)
|
||||
assert repo.get_tree(digest) == tree
|
||||
obj0 = repo.add_tree(tree)
|
||||
assert obj0.object_type == b"tree"
|
||||
assert obj0.tree == tree
|
||||
|
||||
obj1 = repo.get_tree(obj0.digest)
|
||||
assert obj1.digest == obj0.digest
|
||||
assert obj1.object_type == obj0.object_type
|
||||
assert obj1.size == obj0.size
|
||||
assert obj1.tree == obj0.tree
|
||||
|
||||
|
||||
def test_read_write_snapshot(repo: Repository):
|
||||
@@ -101,8 +112,15 @@ def test_read_write_snapshot(repo: Repository):
|
||||
|
||||
assert Snapshot.from_bytes(repo, snapshot.to_bytes()) == snapshot
|
||||
|
||||
digest = repo.add_snapshot(snapshot)
|
||||
assert repo.get_snapshot(digest) == snapshot
|
||||
obj0 = repo.add_snapshot(snapshot)
|
||||
assert obj0.object_type == b"snap"
|
||||
assert obj0.snapshot == snapshot
|
||||
|
||||
obj1 = repo.get_snapshot(obj0.digest)
|
||||
assert obj1.digest == obj0.digest
|
||||
assert obj1.object_type == obj0.object_type
|
||||
assert obj1.size == obj0.size
|
||||
assert obj1.snapshot == obj0.snapshot
|
||||
|
||||
|
||||
class TestTreeWalker(TreeWalker):
|
||||
@@ -164,18 +182,19 @@ def test_add_tree(tmp_dir: Path, repo: Repository):
|
||||
|
||||
def check(digest: Digest, value: dict | bytes):
|
||||
if isinstance(value, dict):
|
||||
tree = repo.get_tree(digest)
|
||||
tree = repo.get_tree(digest).tree
|
||||
assert tree
|
||||
assert list(map(lambda i: i.name, tree.items)) == sorted(value.keys())
|
||||
for item in tree.items:
|
||||
check(item.digest, value[item.name])
|
||||
elif isinstance(value, bytes):
|
||||
blob = repo.get_blob(digest)
|
||||
data = blob.reader().read()
|
||||
blob_obj = repo.get_blob(digest)
|
||||
data = blob_obj.blob.reader().read()
|
||||
assert data == value
|
||||
|
||||
walker = TestTreeWalker(repo)
|
||||
dir_digest0 = walker.add_tree(dir)
|
||||
obj0 = walker.add_tree(dir)
|
||||
assert obj0.object_type == b"tree"
|
||||
assert walker.reports == [
|
||||
(Action.ADD, dir / "Another test with long name and spaces and a bang !", None),
|
||||
(Action.IGNORE, dir / "bsv_repo", IgnoreCause.IGNORE_RULE),
|
||||
@@ -187,12 +206,13 @@ def test_add_tree(tmp_dir: Path, repo: Repository):
|
||||
(Action.ADD, dir / "folder", None),
|
||||
(Action.ADD, dir, None),
|
||||
]
|
||||
check(dir_digest0, expected0)
|
||||
check(obj0.digest, expected0)
|
||||
|
||||
create_file_structure(dir, structure1)
|
||||
|
||||
walker.reports.clear()
|
||||
dir_digest1 = walker.add_tree(dir, source_digest=dir_digest0)
|
||||
obj1 = walker.add_tree(dir, source_digest=obj0.digest)
|
||||
assert obj0.object_type == b"tree"
|
||||
assert walker.reports == [
|
||||
(Action.IGNORE, dir / "Another test with long name and spaces and a bang !", IgnoreCause.UNCHANGED),
|
||||
(Action.IGNORE, dir / "bsv_repo", IgnoreCause.IGNORE_RULE),
|
||||
@@ -205,7 +225,7 @@ def test_add_tree(tmp_dir: Path, repo: Repository):
|
||||
(Action.ADD, dir / "new_file", None),
|
||||
(Action.UPDATE, dir, None),
|
||||
]
|
||||
check(dir_digest1, expected1)
|
||||
check(obj1.digest, expected1)
|
||||
|
||||
|
||||
def create_file_structure(dst: Path, value: dict | bytes):
|
||||
|
||||
Reference in New Issue
Block a user