Add additional multi-layer complex squashing test
This commit is contained in:
parent
f252b0b16f
commit
7424a6d73a
3 changed files with 99 additions and 3 deletions
|
@ -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
|
||||
|
|
Reference in a new issue