Skip to content
This repository was archived by the owner on Sep 12, 2018. It is now read-only.

Commit b40b3ad

Browse files
committed
adding tests for TarSum
Docker-DCO-1.1-Signed-off-by: Vincent Batts <[email protected]> (github: vbatts)
1 parent abc8490 commit b40b3ad

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

tests/test_tarfile.py

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# -*- coding: utf-8 -*-
22

3-
import os, sys
3+
import os
44

55
import base
66
from docker_registry.lib import checksums
@@ -9,15 +9,6 @@
99
tarfile = xtarfile.tarfile
1010

1111
class TestTarfile(base.TestCase):
12-
13-
def setUp(self):
14-
self.header_fields = ('name', 'mode', 'uid', 'gid', 'size', 'mtime',
15-
'type', 'linkname', 'uname', 'gname', 'devmajor',
16-
'devminor')
17-
#self.store = storage.load(kind='file')
18-
#self.filenames = list(comp(5, rndstr))
19-
pass
20-
2112
def test_headers(self):
2213
expected = {
2314
"46af0962ab5afeb5ce6740d4d91652e69206fc991fd5328c1a94d364ad00e457/layer.tar": {
@@ -86,4 +77,25 @@ def test_headers(self):
8677
assert e["pax"][attr] == member.pax_headers[attr], "in %s:%s, expected %s of %s, but got %s" % (file, member.path, attr, e["pax"][attr], member.pax_headers[attr])
8778

8879
assert member_count == len(expected[file])
80+
layer_fh.close()
81+
82+
def test_tarsum(self):
83+
expected = {
84+
"46af0962ab5afeb5ce6740d4d91652e69206fc991fd5328c1a94d364ad00e457": "tarsum+sha256:e58fcf7418d4390dec8e8fb69d88c06ec07039d651fedd3aa72af9972e7d046b",
85+
"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158": "tarsum+sha256:ac672ee85da9ab7f9667ae3c32841d3e42f33cc52c273c23341dabba1c8b0c8b",
86+
"xattr": "tarsum+sha256:e86f81a4d552f13039b1396ed03ca968ea9717581f9577ef1876ea6ff9b38c98",
87+
}
88+
for layer in expected.keys():
89+
layer_fh = open(os.path.join(base.data_dir, layer, "layer.tar"))
90+
json_fh = open(os.path.join(base.data_dir, layer, "json"))
91+
92+
tarsum = checksums.TarSum(json_fh.read())
93+
tar = tarfile.open(mode='r|*', fileobj=layer_fh)
94+
for member in tar:
95+
tarsum.append(member, tar)
96+
sum = tarsum.compute()
97+
assert expected[layer] == sum, "layer %s, expected [%s] but got [%s]" % (layer, expected[layer], sum)
98+
99+
layer_fh.close()
100+
json_fh.close()
89101

0 commit comments

Comments
 (0)