Add extra verification that backfilling hits all tags in a repository

This commit is contained in:
Joseph Schorr 2019-01-16 11:30:01 -05:00
parent d49fd1c727
commit 2a4646b1ca

View file

@ -2,7 +2,7 @@ from app import docker_v2_signing_key
from data import model from data import model
from data.database import (TagManifestLabelMap, TagManifestToManifest, Manifest, ManifestBlob, from data.database import (TagManifestLabelMap, TagManifestToManifest, Manifest, ManifestBlob,
ManifestLegacyImage, ManifestLabel, TagManifest, RepositoryTag, Image, ManifestLegacyImage, ManifestLabel, TagManifest, RepositoryTag, Image,
TagManifestLabel, Tag, TagToRepositoryTag) TagManifestLabel, Tag, TagToRepositoryTag, Repository)
from image.docker.schema1 import DockerSchema1ManifestBuilder from image.docker.schema1 import DockerSchema1ManifestBuilder
from workers.tagbackfillworker import backfill_tag, _backfill_manifest from workers.tagbackfillworker import backfill_tag, _backfill_manifest
@ -103,6 +103,14 @@ def test_tagbackfillworker(clear_all_rows, initialized_db):
in ManifestLabel.select().where(ManifestLabel.manifest == manifest_row)} in ManifestLabel.select().where(ManifestLabel.manifest == manifest_row)}
assert found_labels == expected_labels assert found_labels == expected_labels
# Verify at the repository level.
for repository in list(Repository.select()):
tags = RepositoryTag.select().where(RepositoryTag.repository == repository,
RepositoryTag.hidden == False)
oci_tags = Tag.select().where(Tag.repository == repository)
assert len(tags) == len(oci_tags)
assert {t.name for t in tags} == {t.name for t in oci_tags}
assert found_dead_tag assert found_dead_tag