Add additional multi-layer complex squashing test

This commit is contained in:
Joseph Schorr 2018-09-12 15:26:57 -04:00
parent f252b0b16f
commit 7424a6d73a
3 changed files with 99 additions and 3 deletions

View file

@ -14,8 +14,9 @@ PushResult = namedtuple('PushResult', ['checksums', 'manifests', 'headers'])
PullResult = namedtuple('PullResult', ['manifests', 'image_ids'])
def layer_bytes_for_contents(contents, mode='|gz'):
def layer_bytes_for_contents(contents, mode='|gz', other_files=None):
layer_data = StringIO()
tar_file = tarfile.open(fileobj=layer_data, mode='w' + mode)
def add_file(name, contents):
tar_file_info = tarfile.TarInfo(name=name)
@ -23,12 +24,16 @@ def layer_bytes_for_contents(contents, mode='|gz'):
tar_file_info.size = len(contents)
tar_file_info.mtime = 1
tar_file = tarfile.open(fileobj=layer_data, mode='w' + mode)
tar_file.addfile(tar_file_info, StringIO(contents))
tar_file.close()
add_file('contents', contents)
if other_files is not None:
for file_name, file_contents in other_files.iteritems():
add_file(file_name, file_contents)
tar_file.close()
layer_bytes = layer_data.getvalue()
layer_data.close()
return layer_bytes