1
0
mirror of https://github.com/quay/quay.git synced 2026-01-26 06:21:37 +03:00
Files
quay/digest/test/test_digest_tools.py
Kenny Lee Sin Cheong 5f63b3a7bb chore: drop deprecated tables and remove unused code (PROJQUAY-522) (#2089)
* chore: drop deprecated tables and remove unused code

* isort imports

* migration: check for table existence before drop
2023-08-25 12:17:24 -04:00

55 lines
1.6 KiB
Python

import pytest
from digest.digest_tools import Digest, InvalidDigestException, content_path
@pytest.mark.parametrize(
"digest, output_args",
[
("tarsum.v123123+sha1:123deadbeef", ("tarsum.v123123+sha1", "123deadbeef")),
("tarsum.v1+sha256:123123", ("tarsum.v1+sha256", "123123")),
("tarsum.v0+md5:abc", ("tarsum.v0+md5", "abc")),
("tarsum+sha1:abc", ("tarsum+sha1", "abc")),
("sha1:123deadbeef", ("sha1", "123deadbeef")),
("sha256:123123", ("sha256", "123123")),
("md5:abc", ("md5", "abc")),
],
)
def test_parse_good(digest, output_args):
assert Digest.parse_digest(digest) == Digest(*output_args)
assert str(Digest.parse_digest(digest)) == digest
@pytest.mark.parametrize(
"bad_digest",
[
"tarsum.v+md5:abc:",
"sha1:123deadbeefzxczxv",
"sha256123123",
"tarsum.v1+",
"tarsum.v1123+sha1:",
"sha256:👌",
],
)
def test_parse_fail(bad_digest):
with pytest.raises(InvalidDigestException):
Digest.parse_digest(bad_digest)
@pytest.mark.parametrize(
"digest, path",
[
("tarsum.v123123+sha1:123deadbeef", "tarsum/v123123/sha1/12/123deadbeef"),
("tarsum.v1+sha256:123123", "tarsum/v1/sha256/12/123123"),
("tarsum.v0+md5:abc", "tarsum/v0/md5/ab/abc"),
("sha1:123deadbeef", "sha1/12/123deadbeef"),
("sha256:123123", "sha256/12/123123"),
("md5:abc", "md5/ab/abc"),
("md5:1", "md5/01/1"),
("md5.....+++:1", "md5/01/1"),
(".md5.:1", "md5/01/1"),
],
)
def test_paths(digest, path):
assert content_path(digest) == path