Browse code

Use checker assert for docker_api_build_test.go

Signed-off-by: Vincent Demeester <vincent@sbr.pm>

Vincent Demeester authored on 2015/10/17 21:24:56
Showing 1 changed files
... ...
@@ -4,8 +4,8 @@ import (
4 4
 	"archive/tar"
5 5
 	"bytes"
6 6
 	"net/http"
7
-	"strings"
8 7
 
8
+	"github.com/docker/docker/pkg/integration/checker"
9 9
 	"github.com/go-check/check"
10 10
 )
11 11
 
... ...
@@ -17,31 +17,29 @@ func (s *DockerSuite) TestBuildApiDockerfilePath(c *check.C) {
17 17
 	defer tw.Close()
18 18
 
19 19
 	dockerfile := []byte("FROM busybox")
20
-	if err := tw.WriteHeader(&tar.Header{
20
+	err := tw.WriteHeader(&tar.Header{
21 21
 		Name: "Dockerfile",
22 22
 		Size: int64(len(dockerfile)),
23
-	}); err != nil {
24
-		c.Fatalf("failed to write tar file header: %v", err)
25
-	}
26
-	if _, err := tw.Write(dockerfile); err != nil {
27
-		c.Fatalf("failed to write tar file content: %v", err)
28
-	}
29
-	if err := tw.Close(); err != nil {
30
-		c.Fatalf("failed to close tar archive: %v", err)
31
-	}
23
+	})
24
+	//failed to write tar file header
25
+	c.Assert(err, checker.IsNil)
26
+
27
+	_, err = tw.Write(dockerfile)
28
+	// failed to write tar file content
29
+	c.Assert(err, checker.IsNil)
30
+
31
+	// failed to close tar archive
32
+	c.Assert(tw.Close(), checker.IsNil)
32 33
 
33 34
 	res, body, err := sockRequestRaw("POST", "/build?dockerfile=../Dockerfile", buffer, "application/x-tar")
34
-	c.Assert(err, check.IsNil)
35
-	c.Assert(res.StatusCode, check.Equals, http.StatusInternalServerError)
35
+	c.Assert(err, checker.IsNil)
36
+	c.Assert(res.StatusCode, checker.Equals, http.StatusInternalServerError)
36 37
 
37 38
 	out, err := readBody(body)
38
-	if err != nil {
39
-		c.Fatal(err)
40
-	}
39
+	c.Assert(err, checker.IsNil)
41 40
 
42
-	if !strings.Contains(string(out), "Forbidden path outside the build context") {
43
-		c.Fatalf("Didn't complain about leaving build context: %s", out)
44
-	}
41
+	// Didn't complain about leaving build context
42
+	c.Assert(string(out), checker.Contains, "Forbidden path outside the build context")
45 43
 }
46 44
 
47 45
 func (s *DockerSuite) TestBuildApiDockerFileRemote(c *check.C) {
... ...
@@ -53,27 +51,21 @@ COPY * /tmp/
53 53
 RUN find / -name ba*
54 54
 RUN find /tmp/`,
55 55
 	})
56
-	if err != nil {
57
-		c.Fatal(err)
58
-	}
56
+	c.Assert(err, checker.IsNil)
59 57
 	defer server.Close()
60 58
 
61 59
 	res, body, err := sockRequestRaw("POST", "/build?dockerfile=baz&remote="+server.URL()+"/testD", nil, "application/json")
62
-	c.Assert(err, check.IsNil)
63
-	c.Assert(res.StatusCode, check.Equals, http.StatusOK)
60
+	c.Assert(err, checker.IsNil)
61
+	c.Assert(res.StatusCode, checker.Equals, http.StatusOK)
64 62
 
65 63
 	buf, err := readBody(body)
66
-	if err != nil {
67
-		c.Fatal(err)
68
-	}
64
+	c.Assert(err, checker.IsNil)
69 65
 
70 66
 	// Make sure Dockerfile exists.
71 67
 	// Make sure 'baz' doesn't exist ANYWHERE despite being mentioned in the URL
72 68
 	out := string(buf)
73
-	if !strings.Contains(out, "/tmp/Dockerfile") ||
74
-		strings.Contains(out, "baz") {
75
-		c.Fatalf("Incorrect output: %s", out)
76
-	}
69
+	c.Assert(out, checker.Contains, "/tmp/Dockerfile")
70
+	c.Assert(out, checker.Not(checker.Contains), "baz")
77 71
 }
78 72
 
79 73
 func (s *DockerSuite) TestBuildApiRemoteTarballContext(c *check.C) {
... ...
@@ -83,29 +75,30 @@ func (s *DockerSuite) TestBuildApiRemoteTarballContext(c *check.C) {
83 83
 	defer tw.Close()
84 84
 
85 85
 	dockerfile := []byte("FROM busybox")
86
-	if err := tw.WriteHeader(&tar.Header{
86
+	err := tw.WriteHeader(&tar.Header{
87 87
 		Name: "Dockerfile",
88 88
 		Size: int64(len(dockerfile)),
89
-	}); err != nil {
90
-		c.Fatalf("failed to write tar file header: %v", err)
91
-	}
92
-	if _, err := tw.Write(dockerfile); err != nil {
93
-		c.Fatalf("failed to write tar file content: %v", err)
94
-	}
95
-	if err := tw.Close(); err != nil {
96
-		c.Fatalf("failed to close tar archive: %v", err)
97
-	}
89
+	})
90
+	// failed to write tar file header
91
+	c.Assert(err, checker.IsNil)
92
+
93
+	_, err = tw.Write(dockerfile)
94
+	// failed to write tar file content
95
+	c.Assert(err, checker.IsNil)
96
+
97
+	// failed to close tar archive
98
+	c.Assert(tw.Close(), checker.IsNil)
98 99
 
99 100
 	server, err := fakeBinaryStorage(map[string]*bytes.Buffer{
100 101
 		"testT.tar": buffer,
101 102
 	})
102
-	c.Assert(err, check.IsNil)
103
+	c.Assert(err, checker.IsNil)
103 104
 
104 105
 	defer server.Close()
105 106
 
106 107
 	res, b, err := sockRequestRaw("POST", "/build?remote="+server.URL()+"/testT.tar", nil, "application/tar")
107
-	c.Assert(err, check.IsNil)
108
-	c.Assert(res.StatusCode, check.Equals, http.StatusOK)
108
+	c.Assert(err, checker.IsNil)
109
+	c.Assert(res.StatusCode, checker.Equals, http.StatusOK)
109 110
 	b.Close()
110 111
 }
111 112
 
... ...
@@ -117,51 +110,52 @@ func (s *DockerSuite) TestBuildApiRemoteTarballContextWithCustomDockerfile(c *ch
117 117
 
118 118
 	dockerfile := []byte(`FROM busybox
119 119
 RUN echo 'wrong'`)
120
-	if err := tw.WriteHeader(&tar.Header{
120
+	err := tw.WriteHeader(&tar.Header{
121 121
 		Name: "Dockerfile",
122 122
 		Size: int64(len(dockerfile)),
123
-	}); err != nil {
124
-		c.Fatalf("failed to write tar file header: %v", err)
125
-	}
126
-	if _, err := tw.Write(dockerfile); err != nil {
127
-		c.Fatalf("failed to write tar file content: %v", err)
128
-	}
123
+	})
124
+	// failed to write tar file header
125
+	c.Assert(err, checker.IsNil)
126
+
127
+	_, err = tw.Write(dockerfile)
128
+	// failed to write tar file content
129
+	c.Assert(err, checker.IsNil)
129 130
 
130 131
 	custom := []byte(`FROM busybox
131 132
 RUN echo 'right'
132 133
 `)
133
-	if err := tw.WriteHeader(&tar.Header{
134
+	err = tw.WriteHeader(&tar.Header{
134 135
 		Name: "custom",
135 136
 		Size: int64(len(custom)),
136
-	}); err != nil {
137
-		c.Fatalf("failed to write tar file header: %v", err)
138
-	}
139
-	if _, err := tw.Write(custom); err != nil {
140
-		c.Fatalf("failed to write tar file content: %v", err)
141
-	}
137
+	})
138
+
139
+	// failed to write tar file header
140
+	c.Assert(err, checker.IsNil)
142 141
 
143
-	if err := tw.Close(); err != nil {
144
-		c.Fatalf("failed to close tar archive: %v", err)
145
-	}
142
+	_, err = tw.Write(custom)
143
+	// failed to write tar file content
144
+	c.Assert(err, checker.IsNil)
145
+
146
+	// failed to close tar archive
147
+	c.Assert(tw.Close(), checker.IsNil)
146 148
 
147 149
 	server, err := fakeBinaryStorage(map[string]*bytes.Buffer{
148 150
 		"testT.tar": buffer,
149 151
 	})
150
-	c.Assert(err, check.IsNil)
152
+	c.Assert(err, checker.IsNil)
151 153
 
152 154
 	defer server.Close()
153 155
 	url := "/build?dockerfile=custom&remote=" + server.URL() + "/testT.tar"
154 156
 	res, body, err := sockRequestRaw("POST", url, nil, "application/tar")
155
-	c.Assert(err, check.IsNil)
156
-	c.Assert(res.StatusCode, check.Equals, http.StatusOK)
157
+	c.Assert(err, checker.IsNil)
158
+	c.Assert(res.StatusCode, checker.Equals, http.StatusOK)
157 159
 
158 160
 	defer body.Close()
159 161
 	content, err := readBody(body)
160
-	c.Assert(err, check.IsNil)
162
+	c.Assert(err, checker.IsNil)
161 163
 
162
-	if strings.Contains(string(content), "wrong") {
163
-		c.Fatalf("Build used the wrong dockerfile.")
164
-	}
164
+	// Build used the wrong dockerfile.
165
+	c.Assert(string(content), checker.Not(checker.Contains), "wrong")
165 166
 }
166 167
 
167 168
 func (s *DockerSuite) TestBuildApiLowerDockerfile(c *check.C) {
... ...
@@ -170,24 +164,18 @@ func (s *DockerSuite) TestBuildApiLowerDockerfile(c *check.C) {
170 170
 		"dockerfile": `FROM busybox
171 171
 RUN echo from dockerfile`,
172 172
 	}, false)
173
-	if err != nil {
174
-		c.Fatal(err)
175
-	}
173
+	c.Assert(err, checker.IsNil)
176 174
 	defer git.Close()
177 175
 
178 176
 	res, body, err := sockRequestRaw("POST", "/build?remote="+git.RepoURL, nil, "application/json")
179
-	c.Assert(err, check.IsNil)
180
-	c.Assert(res.StatusCode, check.Equals, http.StatusOK)
177
+	c.Assert(err, checker.IsNil)
178
+	c.Assert(res.StatusCode, checker.Equals, http.StatusOK)
181 179
 
182 180
 	buf, err := readBody(body)
183
-	if err != nil {
184
-		c.Fatal(err)
185
-	}
181
+	c.Assert(err, checker.IsNil)
186 182
 
187 183
 	out := string(buf)
188
-	if !strings.Contains(out, "from dockerfile") {
189
-		c.Fatalf("Incorrect output: %s", out)
190
-	}
184
+	c.Assert(out, checker.Contains, "from dockerfile")
191 185
 }
192 186
 
193 187
 func (s *DockerSuite) TestBuildApiBuildGitWithF(c *check.C) {
... ...
@@ -198,25 +186,19 @@ RUN echo from baz`,
198 198
 		"Dockerfile": `FROM busybox
199 199
 RUN echo from Dockerfile`,
200 200
 	}, false)
201
-	if err != nil {
202
-		c.Fatal(err)
203
-	}
201
+	c.Assert(err, checker.IsNil)
204 202
 	defer git.Close()
205 203
 
206 204
 	// Make sure it tries to 'dockerfile' query param value
207 205
 	res, body, err := sockRequestRaw("POST", "/build?dockerfile=baz&remote="+git.RepoURL, nil, "application/json")
208
-	c.Assert(err, check.IsNil)
209
-	c.Assert(res.StatusCode, check.Equals, http.StatusOK)
206
+	c.Assert(err, checker.IsNil)
207
+	c.Assert(res.StatusCode, checker.Equals, http.StatusOK)
210 208
 
211 209
 	buf, err := readBody(body)
212
-	if err != nil {
213
-		c.Fatal(err)
214
-	}
210
+	c.Assert(err, checker.IsNil)
215 211
 
216 212
 	out := string(buf)
217
-	if !strings.Contains(out, "from baz") {
218
-		c.Fatalf("Incorrect output: %s", out)
219
-	}
213
+	c.Assert(out, checker.Contains, "from baz")
220 214
 }
221 215
 
222 216
 func (s *DockerSuite) TestBuildApiDoubleDockerfile(c *check.C) {
... ...
@@ -227,25 +209,19 @@ RUN echo from Dockerfile`,
227 227
 		"dockerfile": `FROM busybox
228 228
 RUN echo from dockerfile`,
229 229
 	}, false)
230
-	if err != nil {
231
-		c.Fatal(err)
232
-	}
230
+	c.Assert(err, checker.IsNil)
233 231
 	defer git.Close()
234 232
 
235 233
 	// Make sure it tries to 'dockerfile' query param value
236 234
 	res, body, err := sockRequestRaw("POST", "/build?remote="+git.RepoURL, nil, "application/json")
237
-	c.Assert(err, check.IsNil)
238
-	c.Assert(res.StatusCode, check.Equals, http.StatusOK)
235
+	c.Assert(err, checker.IsNil)
236
+	c.Assert(res.StatusCode, checker.Equals, http.StatusOK)
239 237
 
240 238
 	buf, err := readBody(body)
241
-	if err != nil {
242
-		c.Fatal(err)
243
-	}
239
+	c.Assert(err, checker.IsNil)
244 240
 
245 241
 	out := string(buf)
246
-	if !strings.Contains(out, "from Dockerfile") {
247
-		c.Fatalf("Incorrect output: %s", out)
248
-	}
242
+	c.Assert(out, checker.Contains, "from Dockerfile")
249 243
 }
250 244
 
251 245
 func (s *DockerSuite) TestBuildApiDockerfileSymlink(c *check.C) {
... ...
@@ -255,31 +231,27 @@ func (s *DockerSuite) TestBuildApiDockerfileSymlink(c *check.C) {
255 255
 	tw := tar.NewWriter(buffer)
256 256
 	defer tw.Close()
257 257
 
258
-	if err := tw.WriteHeader(&tar.Header{
258
+	err := tw.WriteHeader(&tar.Header{
259 259
 		Name:     "Dockerfile",
260 260
 		Typeflag: tar.TypeSymlink,
261 261
 		Linkname: "/etc/passwd",
262
-	}); err != nil {
263
-		c.Fatalf("failed to write tar file header: %v", err)
264
-	}
265
-	if err := tw.Close(); err != nil {
266
-		c.Fatalf("failed to close tar archive: %v", err)
267
-	}
262
+	})
263
+	// failed to write tar file header
264
+	c.Assert(err, checker.IsNil)
265
+
266
+	// failed to close tar archive
267
+	c.Assert(tw.Close(), checker.IsNil)
268 268
 
269 269
 	res, body, err := sockRequestRaw("POST", "/build", buffer, "application/x-tar")
270
-	c.Assert(err, check.IsNil)
271
-	c.Assert(res.StatusCode, check.Equals, http.StatusInternalServerError)
270
+	c.Assert(err, checker.IsNil)
271
+	c.Assert(res.StatusCode, checker.Equals, http.StatusInternalServerError)
272 272
 
273 273
 	out, err := readBody(body)
274
-	if err != nil {
275
-		c.Fatal(err)
276
-	}
274
+	c.Assert(err, checker.IsNil)
277 275
 
278 276
 	// The reason the error is "Cannot locate specified Dockerfile" is because
279 277
 	// in the builder, the symlink is resolved within the context, therefore
280 278
 	// Dockerfile -> /etc/passwd becomes etc/passwd from the context which is
281 279
 	// a nonexistent file.
282
-	if !strings.Contains(string(out), "Cannot locate specified Dockerfile: Dockerfile") {
283
-		c.Fatalf("Didn't complain about leaving build context: %s", out)
284
-	}
280
+	c.Assert(string(out), checker.Contains, "Cannot locate specified Dockerfile: Dockerfile", check.Commentf("Didn't complain about leaving build context"))
285 281
 }