|
1 | 1 | # -*- coding: utf-8 -*-
|
2 | 2 |
|
3 |
| -import os, sys |
| 3 | +import os |
4 | 4 |
|
5 | 5 | import base
|
6 | 6 | from docker_registry.lib import checksums
|
|
9 | 9 | tarfile = xtarfile.tarfile
|
10 | 10 |
|
11 | 11 | 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 |
| - |
21 | 12 | def test_headers(self):
|
22 | 13 | expected = {
|
23 | 14 | "46af0962ab5afeb5ce6740d4d91652e69206fc991fd5328c1a94d364ad00e457/layer.tar": {
|
@@ -86,4 +77,25 @@ def test_headers(self):
|
86 | 77 | 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])
|
87 | 78 |
|
88 | 79 | 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() |
89 | 101 |
|
0 commit comments