Add a test for get_matching_tags
This commit is contained in:
parent
8552f7f6e6
commit
8b2e4d3bcf
1 changed files with 18 additions and 1 deletions
|
@ -1,8 +1,25 @@
|
||||||
|
from data.database import Image, RepositoryTag
|
||||||
from data.model.repository import create_repository
|
from data.model.repository import create_repository
|
||||||
from data.model.tag import list_active_repo_tags, create_or_update_tag, delete_tag
|
from data.model.tag import (list_active_repo_tags, create_or_update_tag, delete_tag,
|
||||||
|
get_matching_tags, _tag_alive)
|
||||||
from data.model.image import find_create_or_link_image
|
from data.model.image import find_create_or_link_image
|
||||||
|
|
||||||
from test.fixtures import *
|
from test.fixtures import *
|
||||||
|
|
||||||
|
def test_get_matching_tags(initialized_db):
|
||||||
|
# Test for every image in the test database.
|
||||||
|
for image in Image.select():
|
||||||
|
matching_query = get_matching_tags(image.docker_image_id, image.storage.uuid)
|
||||||
|
expected_query = (RepositoryTag
|
||||||
|
.select()
|
||||||
|
.join(Image)
|
||||||
|
.where(RepositoryTag.hidden == False)
|
||||||
|
.where((Image.id == image.id) | (Image.ancestors ** ('%%/%s/%%' % image.id))))
|
||||||
|
|
||||||
|
matching_tags = set([tag.id for tag in matching_query])
|
||||||
|
expected_tags = set([tag.id for tag in _tag_alive(expected_query)])
|
||||||
|
assert matching_tags == expected_tags, "mismatch for image %s" % image.id
|
||||||
|
|
||||||
def assert_tags(repository, *args):
|
def assert_tags(repository, *args):
|
||||||
tags = list(list_active_repo_tags(repository))
|
tags = list(list_active_repo_tags(repository))
|
||||||
assert len(tags) == len(args)
|
assert len(tags) == len(args)
|
||||||
|
|
Reference in a new issue