Fix garbage collection when manifests may reference tags

This commit is contained in:
Jake Moshenko 2015-11-19 16:01:36 -05:00
parent bb934e04af
commit 7b53797677
2 changed files with 39 additions and 10 deletions

View file

@ -4,6 +4,8 @@ import time
from app import app, storage
from initdb import setup_database_for_testing, finished_database_for_testing
from data import model, database
from endpoints.v2.manifest import _generate_and_store_manifest
ADMIN_ACCESS_USER = 'devtable'
PUBLIC_USER = 'public'
@ -288,6 +290,15 @@ class TestGarbageCollection(unittest.TestCase):
self.assertDeleted(repository, 'i2', 'i3')
self.assertNotDeleted(repository, 'i1', 'f1')
def test_manifest_gc(self):
repository = self.createRepository(latest=['i1', 'i2', 'i3'], other=['i1', 'f1'])
_generate_and_store_manifest(ADMIN_ACCESS_USER, REPO, 'latest')
self._set_tag_expiration_policy(repository.namespace_user.username, 0)
self.deleteTag(repository, 'latest')
self.assertDeleted(repository, 'i2', 'i3')
if __name__ == '__main__':
unittest.main()