def test_list_repository_tag_history_with_history(initialized_db): repo = get_repository("devtable", "history") with assert_query_count(1): results, _ = list_repository_tag_history(repo, 1, 100) assert len(results) == 2 assert results[0].lifetime_end_ms is None assert results[1].lifetime_end_ms is not None with assert_query_count(1): results, _ = list_repository_tag_history(repo, 1, 100, specific_tag_name="latest") assert len(results) == 2 assert results[0].lifetime_end_ms is None assert results[1].lifetime_end_ms is not None with assert_query_count(1): results, _ = list_repository_tag_history(repo, 1, 100, specific_tag_name="foobar") assert len(results) == 0
def test_retarget_tag(initialized_db): repo = get_repository("devtable", "history") results, _ = list_repository_tag_history(repo, 1, 100, specific_tag_name="latest") assert len(results) == 2 assert results[0].lifetime_end_ms is None assert results[1].lifetime_end_ms is not None # Revert back to the original manifest. created = retarget_tag("latest", results[0].manifest, is_reversion=True, now_ms=results[1].lifetime_end_ms + 10000) assert created.lifetime_end_ms is None assert created.reversion assert created.name == "latest" assert created.manifest == results[0].manifest # Verify in the history. results, _ = list_repository_tag_history(repo, 1, 100, specific_tag_name="latest") assert len(results) == 3 assert results[0].lifetime_end_ms is None assert results[1].lifetime_end_ms is not None assert results[2].lifetime_end_ms is not None assert results[0] == created
def test_retarget_tag_wrong_name(initialized_db): repo = get_repository("devtable", "history") results, _ = list_repository_tag_history(repo, 1, 100, specific_tag_name="latest") assert len(results) == 2 created = retarget_tag("someothername", results[1].manifest, is_reversion=True) assert created is None results, _ = list_repository_tag_history(repo, 1, 100, specific_tag_name="latest") assert len(results) == 2
def test_lookup_unrecoverable_tags(initialized_db): # Ensure no existing tags are found. for repo in Repository.select(): assert not list(lookup_unrecoverable_tags(repo)) # Mark a tag as outside the expiration window and ensure it is found. repo = get_repository("devtable", "history") results, _ = list_repository_tag_history(repo, 1, 100, specific_tag_name="latest") assert len(results) == 2 results[1].lifetime_end_ms = 1 results[1].save() # Ensure the tag is now found. found = list(lookup_unrecoverable_tags(repo)) assert found assert len(found) == 1 assert found[0] == results[1] # Mark the tag as expiring in the future and ensure it is no longer found. results[1].lifetime_end_ms = get_epoch_timestamp_ms() + 1000000 results[1].save() found = list(lookup_unrecoverable_tags(repo)) assert not found
def test_list_repository_tag_history_all_tags(initialized_db): for tag in Tag.select(): repo = tag.repository with assert_query_count(1): results, _ = list_repository_tag_history(repo, 1, 1000) assert (tag in results) == (not tag.hidden)
def test_list_repository_tag_history(namespace_name, repo_name, initialized_db): repo = get_repository(namespace_name, repo_name) with assert_query_count(1): results, has_more = list_repository_tag_history(repo, 1, 100) assert results assert not has_more
def test_retarget_tag(initialized_db): repo = get_repository("devtable", "history") results, _ = list_repository_tag_history(repo, 1, 100, specific_tag_name="latest") assert len(results) == 2 assert results[0].lifetime_end_ms is None assert results[1].lifetime_end_ms is not None # Revert back to the original manifest. created = retarget_tag("latest", results[0].manifest, is_reversion=True, now_ms=results[1].lifetime_end_ms + 10000) assert created.lifetime_end_ms is None assert created.reversion assert created.name == "latest" assert created.manifest == results[0].manifest # Verify in the history. results, _ = list_repository_tag_history(repo, 1, 100, specific_tag_name="latest") assert len(results) == 3 assert results[0].lifetime_end_ms is None assert results[1].lifetime_end_ms is not None assert results[2].lifetime_end_ms is not None assert results[0] == created # Verify old-style tables. repository_tag = TagToRepositoryTag.get(tag=created).repository_tag assert repository_tag.lifetime_start_ts == int(created.lifetime_start_ms / 1000) tag_manifest = TagManifest.get(tag=repository_tag) assert TagManifestToManifest.get( tag_manifest=tag_manifest).manifest == created.manifest
def test_list_repository_tag_history(namespace_name, repo_name, initialized_db): repo = get_repository(namespace_name, repo_name) with assert_query_count(1): results, has_more = list_repository_tag_history(repo, 1, 100) assert results assert not has_more assert results[0].manifest.id is not None assert results[0].manifest.digest is not None assert results[0].manifest.media_type is not None assert results[0].manifest.layers_compressed_size is not None