Delete the image diff feature

Fixes #1077
This commit is contained in:
Joseph Schorr 2015-12-23 13:08:01 -05:00
parent d6fd9a07c2
commit ab166c4448
14 changed files with 3 additions and 413 deletions

View file

@ -13,7 +13,7 @@ from endpoints.api import api_bp, api
from endpoints.api.team import TeamMember, TeamMemberList, OrganizationTeam, TeamMemberInvite
from endpoints.api.tag import RepositoryTagImages, RepositoryTag, ListRepositoryTags, RevertTag
from endpoints.api.search import EntitySearch
from endpoints.api.image import RepositoryImageChanges, RepositoryImage, RepositoryImageList
from endpoints.api.image import RepositoryImage, RepositoryImageList
from endpoints.api.build import (FileDropResource, RepositoryBuildStatus, RepositoryBuildLogs,
RepositoryBuildList, RepositoryBuildResource)
from endpoints.api.robot import (UserRobotList, OrgRobot, OrgRobotList, UserRobot,
@ -1592,60 +1592,6 @@ class TestBuildTriggerAnalyze0byeBuynlargeOrgrepo(ApiTestCase):
self._run_test('POST', 404, 'devtable', {'config': {}})
class TestRepositoryImageChangesPtsgPublicPublicrepo(ApiTestCase):
def setUp(self):
ApiTestCase.setUp(self)
self._set_url(RepositoryImageChanges, image_id="PTSG", repository="public/publicrepo")
def test_get_anonymous(self):
self._run_test('GET', 404, None, None)
def test_get_freshuser(self):
self._run_test('GET', 404, 'freshuser', None)
def test_get_reader(self):
self._run_test('GET', 404, 'reader', None)
def test_get_devtable(self):
self._run_test('GET', 404, 'devtable', None)
class TestRepositoryImageChangesPtsgDevtableShared(ApiTestCase):
def setUp(self):
ApiTestCase.setUp(self)
self._set_url(RepositoryImageChanges, image_id="PTSG", repository="devtable/shared")
def test_get_anonymous(self):
self._run_test('GET', 401, None, None)
def test_get_freshuser(self):
self._run_test('GET', 403, 'freshuser', None)
def test_get_reader(self):
self._run_test('GET', 404, 'reader', None)
def test_get_devtable(self):
self._run_test('GET', 404, 'devtable', None)
class TestRepositoryImageChangesPtsgBuynlargeOrgrepo(ApiTestCase):
def setUp(self):
ApiTestCase.setUp(self)
self._set_url(RepositoryImageChanges, image_id="PTSG", repository="buynlarge/orgrepo")
def test_get_anonymous(self):
self._run_test('GET', 401, None, None)
def test_get_freshuser(self):
self._run_test('GET', 403, 'freshuser', None)
def test_get_reader(self):
self._run_test('GET', 404, 'reader', None)
def test_get_devtable(self):
self._run_test('GET', 404, 'devtable', None)
class TestRepositoryBuildStatusFg86PublicPublicrepo(ApiTestCase):
def setUp(self):
ApiTestCase.setUp(self)

View file

@ -1,73 +0,0 @@
import unittest
import tarfile
from StringIO import StringIO
from util.registry.streamlayerformat import AUFS_WHITEOUT
from util.registry.changes import files_and_dirs_from_tar
class TestChanges(unittest.TestCase):
def create_layer(self, **kwargs):
output = StringIO()
with tarfile.open(fileobj=output, mode='w:gz') as tar:
for current_contents in kwargs:
current_filename = kwargs[current_contents]
if current_contents == '_':
# This is a deleted file.
if current_filename.endswith('/'):
current_filename = current_filename[:-1]
parts = current_filename.split('/')
if len(parts) > 1:
current_filename = '/'.join(parts[:-1]) + '/' + AUFS_WHITEOUT + parts[-1]
else:
current_filename = AUFS_WHITEOUT + parts[-1]
current_contents = ''
info = tarfile.TarInfo(name=current_filename)
info.size = len(current_contents)
tar.addfile(info, fileobj=StringIO(current_contents))
return output.getvalue()
def test_single_layer(self):
tar_layer = self.create_layer(
foo = 'some_file',
bar = 'another_file',
meh = 'third_file')
deleted_prefixes = set()
result = list(files_and_dirs_from_tar(StringIO(tar_layer), deleted_prefixes))
self.assertIn('/some_file', result)
self.assertIn('/another_file', result)
self.assertIn('/third_file', result)
self.assertFalse(deleted_prefixes)
def test_delete_file(self):
tar_layer = self.create_layer(
foo = 'some_file',
_ = 'another_file',
meh = 'third_file')
deleted_prefixes = set()
result = list(files_and_dirs_from_tar(StringIO(tar_layer), deleted_prefixes))
self.assertIn('/some_file', result)
self.assertIn('/third_file', result)
self.assertIn('another_file', deleted_prefixes)
def test_pax_tarfile_error(self):
# If this fails it will raise an exception
with open('test/data/sample/layers/paxheader.tar') as tarstream:
result = list(files_and_dirs_from_tar(tarstream, set()))
self.assertIn('/file', result)
if __name__ == '__main__':
unittest.main()