8
8
9
9
tarfile = xtarfile .tarfile
10
10
11
+
11
12
class TestTarfile (base .TestCase ):
12
13
def test_headers (self ):
13
- expected = {
14
- "46af0962ab5afeb5ce6740d4d91652e69206fc991fd5328c1a94d364ad00e457/layer.tar" : {
15
- "dev" : {
16
- "headers" : { "size" : 0 , "mode" : 040755 , "type" : "5" , },
17
- "pax" : { },
18
- },
19
- "dev/core" : {
20
- "headers" : { "size" : 0 , "mode" : 0120777 , "type" : "2" , },
21
- "pax" : { },
22
- },
23
- "dev/stderr" : {
24
- "headers" : { "size" : 0 , "mode" : 0120777 , "type" : "2" , },
25
- "pax" : { },
26
- },
27
- "dev/stdout" : {
28
- "headers" : { "size" : 0 , "mode" : 0120777 , "type" : "2" , },
29
- "pax" : { },
30
- },
31
- "dev/fd" : {
32
- "headers" : { "size" : 0 , "mode" : 0120777 , "type" : "2" , },
33
- "pax" : { },
34
- },
35
- "dev/ptmx" : {
36
- "headers" : { "size" : 0 , "mode" : 0120777 , "type" : "2" , },
37
- "pax" : { },
38
- },
39
- "dev/stdin" : {
40
- "headers" : { "size" : 0 , "mode" : 0120777 , "type" : "2" , },
41
- "pax" : { },
42
- },
43
- "etc" : {
44
- "headers" : { "size" : 0 , "mode" : 040755 , "type" : "5" , },
45
- "pax" : { },
46
- },
47
- "etc/sudoers" : {
48
- "headers" : { "size" : 3348 , "mode" : 0100440 , "type" : "0" , },
49
- "pax" : { },
50
- },
51
- },
52
- "511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158/layer.tar" : {
53
- "." : {
54
- "headers" : { "size" : 0 , "mode" : 040755 , "type" : "5" , },
55
- "pax" : { },
56
- },
57
- },
58
- "xattr/layer.tar" : {
59
- "file" : {
60
- "headers" : { "size" : 0 , "mode" : 0100644 , "type" : "0" , },
61
- "pax" : { u"SCHILY.xattr.security.capability" : "\x01 \x00 \x00 \x02 \xc0 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 " },
62
- },
63
- },
64
- }
14
+ expected = {
15
+ "46af0962ab5afeb5ce6740d4d91652e69206fc991fd5328c1a94d364ad00e457/layer.tar" : { # noqa
16
+ "dev" : {
17
+ "headers" : {"size" : 0 , "mode" : 0o40755 , "type" : "5" },
18
+ "pax" : {},
19
+ },
20
+ "dev/core" : {
21
+ "headers" : {"size" : 0 , "mode" : 0o120777 , "type" : "2" },
22
+ "pax" : {},
23
+ },
24
+ "dev/stderr" : {
25
+ "headers" : {"size" : 0 , "mode" : 0o120777 , "type" : "2" },
26
+ "pax" : {},
27
+ },
28
+ "dev/stdout" : {
29
+ "headers" : {"size" : 0 , "mode" : 0o120777 , "type" : "2" },
30
+ "pax" : {},
31
+ },
32
+ "dev/fd" : {
33
+ "headers" : {"size" : 0 , "mode" : 0o120777 , "type" : "2" },
34
+ "pax" : {},
35
+ },
36
+ "dev/ptmx" : {
37
+ "headers" : {"size" : 0 , "mode" : 0o120777 , "type" : "2" },
38
+ "pax" : {},
39
+ },
40
+ "dev/stdin" : {
41
+ "headers" : {"size" : 0 , "mode" : 0o120777 , "type" : "2" },
42
+ "pax" : {},
43
+ },
44
+ "etc" : {
45
+ "headers" : {"size" : 0 , "mode" : 0o40755 , "type" : "5" },
46
+ "pax" : {},
47
+ },
48
+ "etc/sudoers" : {
49
+ "headers" : {"size" : 3348 , "mode" : 0o100440 , "type" : "0" },
50
+ "pax" : {},
51
+ },
52
+ },
53
+ "511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158/layer.tar" : { # noqa
54
+ "." : {
55
+ "headers" : {"size" : 0 , "mode" : 0o40755 , "type" : "5" },
56
+ "pax" : {},
57
+ },
58
+ },
59
+ "xattr/layer.tar" : {
60
+ "file" : {
61
+ "headers" : {"size" : 0 , "mode" : 0o100644 , "type" : "0" },
62
+ "pax" : {u"SCHILY.xattr.security.capability" : "\x01 \x00 \x00 \x02 \xc0 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 " }, # noqa
63
+ },
64
+ },
65
+ }
65
66
for file in expected .keys ():
66
67
layer_fh = open (os .path .join (base .data_dir , file ))
67
68
tar = tarfile .open (mode = 'r|*' , fileobj = layer_fh )
68
69
member_count = 0
69
70
for member in tar :
70
71
member_count += 1
71
72
# check that we know the file names
72
- assert (len (filter (lambda x : member .path in x , expected [file ].keys ())) > 0 ), "in %s, did not find file %s" % (file , member .path )
73
+ assert (
74
+ (len (
75
+ filter (
76
+ lambda x : member .path in x , expected [file ].keys ()
77
+ )
78
+ ) > 0 ), "in %s, did not find file %s" % (
79
+ file ,
80
+ member .path ))
73
81
e = expected [file ][member .path ]
74
82
for attr in e ["headers" ].keys ():
75
- assert e ["headers" ][attr ] == getattr (member , attr ), "in %s:%s, expected %s of %s, but got %s" % (file , member .path , attr , e ["headers" ][attr ], getattr (member , attr ))
83
+ assert (e ["headers" ][attr ] == getattr (member , attr ),
84
+ "in %s:%s, expected %s of %s, but got %s" % (
85
+ file ,
86
+ member .path ,
87
+ attr ,
88
+ e ["headers" ][attr ],
89
+ getattr (member , attr )))
76
90
for attr in e ["pax" ].keys ():
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 ])
91
+ assert (e ["pax" ][attr ] == member .pax_headers [attr ],
92
+ b"in %s:%s, expected %s of %s, but got %s" .format (
93
+ file ,
94
+ member .path ,
95
+ attr ,
96
+ e ["pax" ][attr ],
97
+ member .pax_headers [attr ]))
78
98
79
99
assert member_count == len (expected [file ])
80
100
layer_fh .close ()
81
101
82
102
def test_tarsum (self ):
83
- expected = {
84
- "46af0962ab5afeb5ce6740d4d91652e69206fc991fd5328c1a94d364ad00e457" : "tarsum+sha256:e58fcf7418d4390dec8e8fb69d88c06ec07039d651fedd3aa72af9972e7d046b" ,
85
- "511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158" : "tarsum+sha256:ac672ee85da9ab7f9667ae3c32841d3e42f33cc52c273c23341dabba1c8b0c8b" ,
86
- "xattr" : "tarsum+sha256:e86f81a4d552f13039b1396ed03ca968ea9717581f9577ef1876ea6ff9b38c98" ,
87
- }
103
+ expected = {
104
+ "46af0962ab5afeb5ce6740d4d91652e69206fc991fd5328c1a94d364ad00e457" : "tarsum+sha256:e58fcf7418d4390dec8e8fb69d88c06ec07039d651fedd3aa72af9972e7d046b" , # noqa
105
+ "511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158" : "tarsum+sha256:ac672ee85da9ab7f9667ae3c32841d3e42f33cc52c273c23341dabba1c8b0c8b" , # noqa
106
+ "xattr" : "tarsum+sha256:e86f81a4d552f13039b1396ed03ca968ea9717581f9577ef1876ea6ff9b38c98" , # noqa
107
+ }
88
108
for layer in expected .keys ():
89
109
layer_fh = open (os .path .join (base .data_dir , layer , "layer.tar" ))
90
110
json_fh = open (os .path .join (base .data_dir , layer , "json" ))
@@ -94,8 +114,11 @@ def test_tarsum(self):
94
114
for member in tar :
95
115
tarsum .append (member , tar )
96
116
sum = tarsum .compute ()
97
- assert expected [layer ] == sum , "layer %s, expected [%s] but got [%s]" % (layer , expected [layer ], sum )
117
+ assert (expected [layer ] == sum ,
118
+ "layer %s, expected [%s] but got [%s]" % (
119
+ layer ,
120
+ expected [layer ],
121
+ sum ))
98
122
99
123
layer_fh .close ()
100
124
json_fh .close ()
101
-
0 commit comments