def test_snapshot_properties() -> None: digest = Digest( "691638f4d58abaa8cfdc9af2e00682f13f07f96ad1d177f146216a7341ca4982", 154) snapshot = Snapshot._unsafe_create(digest, ["f.ext", "dir/f.ext"], ["dir"]) assert snapshot.digest == digest assert snapshot.files == ("dir/f.ext", "f.ext") assert snapshot.dirs == ("dir", )
def assert_hash( expected: int, *, digest_char: str = "a", files: Optional[List[str]] = None, dirs: Optional[List[str]] = None, ) -> None: digest = Digest(digest_char * 64, 1000) snapshot = Snapshot._unsafe_create(digest, files or ["f.ext", "dir/f.ext"], dirs or ["dir"]) assert hash(snapshot) == expected
def test_snapshot_equality() -> None: # Only the digest is used for equality. snapshot = Snapshot._unsafe_create(Digest("a" * 64, 1000), ["f.ext", "dir/f.ext"], ["dir"]) assert snapshot == Snapshot._unsafe_create(Digest("a" * 64, 1000), ["f.ext", "dir/f.ext"], ["dir"]) assert snapshot == Snapshot._unsafe_create(Digest("a" * 64, 1000), ["f.ext", "dir/f.ext"], ["foo"]) assert snapshot == Snapshot._unsafe_create(Digest("a" * 64, 1000), ["f.ext"], ["dir"]) assert snapshot != Snapshot._unsafe_create(Digest("a" * 64, 0), ["f.ext", "dir/f.ext"], ["dir"]) assert snapshot != Snapshot._unsafe_create(Digest("b" * 64, 1000), ["f.ext", "dir/f.ext"], ["dir"]) with pytest.raises(TypeError): snapshot < snapshot # type: ignore[operator]