Browse code

Implement DockerRegistrySuite in integration-cli

To avoid manually creating and destroying registrys in tests.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>

Alexander Morozov authored on 2015/04/25 06:16:56
Showing 5 changed files
... ...
@@ -24,6 +24,10 @@ func (s *TimerSuite) TearDownTest(c *check.C) {
24 24
 	fmt.Printf("%-60s%.2f\n", c.TestName(), time.Since(s.start).Seconds())
25 25
 }
26 26
 
27
+func init() {
28
+	check.Suite(&DockerSuite{})
29
+}
30
+
27 31
 type DockerSuite struct {
28 32
 	TimerSuite
29 33
 }
... ...
@@ -34,4 +38,23 @@ func (s *DockerSuite) TearDownTest(c *check.C) {
34 34
 	s.TimerSuite.TearDownTest(c)
35 35
 }
36 36
 
37
-var _ = check.Suite(&DockerSuite{})
37
+func init() {
38
+	check.Suite(&DockerRegistrySuite{
39
+		ds: &DockerSuite{},
40
+	})
41
+}
42
+
43
+type DockerRegistrySuite struct {
44
+	ds  *DockerSuite
45
+	reg *testRegistryV2
46
+}
47
+
48
+func (s *DockerRegistrySuite) SetUpTest(c *check.C) {
49
+	s.reg = setupRegistry(c)
50
+	s.ds.SetUpTest(c)
51
+}
52
+
53
+func (s *DockerRegistrySuite) TearDownTest(c *check.C) {
54
+	s.reg.Close()
55
+	s.ds.TearDownTest(c)
56
+}
... ...
@@ -62,9 +62,7 @@ func setupImageWithTag(tag string) (string, error) {
62 62
 	return pushDigest, nil
63 63
 }
64 64
 
65
-func (s *DockerSuite) TestPullByTagDisplaysDigest(c *check.C) {
66
-	defer setupRegistry(c)()
67
-
65
+func (s *DockerRegistrySuite) TestPullByTagDisplaysDigest(c *check.C) {
68 66
 	pushDigest, err := setupImage()
69 67
 	if err != nil {
70 68
 		c.Fatalf("error setting up image: %v", err)
... ...
@@ -88,12 +86,9 @@ func (s *DockerSuite) TestPullByTagDisplaysDigest(c *check.C) {
88 88
 	if pushDigest != pullDigest {
89 89
 		c.Fatalf("push digest %q didn't match pull digest %q", pushDigest, pullDigest)
90 90
 	}
91
-
92 91
 }
93 92
 
94
-func (s *DockerSuite) TestPullByDigest(c *check.C) {
95
-	defer setupRegistry(c)()
96
-
93
+func (s *DockerRegistrySuite) TestPullByDigest(c *check.C) {
97 94
 	pushDigest, err := setupImage()
98 95
 	if err != nil {
99 96
 		c.Fatalf("error setting up image: %v", err)
... ...
@@ -118,12 +113,9 @@ func (s *DockerSuite) TestPullByDigest(c *check.C) {
118 118
 	if pushDigest != pullDigest {
119 119
 		c.Fatalf("push digest %q didn't match pull digest %q", pushDigest, pullDigest)
120 120
 	}
121
-
122 121
 }
123 122
 
124
-func (s *DockerSuite) TestCreateByDigest(c *check.C) {
125
-	defer setupRegistry(c)()
126
-
123
+func (s *DockerRegistrySuite) TestCreateByDigest(c *check.C) {
127 124
 	pushDigest, err := setupImage()
128 125
 	if err != nil {
129 126
 		c.Fatalf("error setting up image: %v", err)
... ...
@@ -145,12 +137,9 @@ func (s *DockerSuite) TestCreateByDigest(c *check.C) {
145 145
 	if res != imageReference {
146 146
 		c.Fatalf("unexpected Config.Image: %s (expected %s)", res, imageReference)
147 147
 	}
148
-
149 148
 }
150 149
 
151
-func (s *DockerSuite) TestRunByDigest(c *check.C) {
152
-	defer setupRegistry(c)()
153
-
150
+func (s *DockerRegistrySuite) TestRunByDigest(c *check.C) {
154 151
 	pushDigest, err := setupImage()
155 152
 	if err != nil {
156 153
 		c.Fatalf("error setting up image: %v", err)
... ...
@@ -181,12 +170,9 @@ func (s *DockerSuite) TestRunByDigest(c *check.C) {
181 181
 	if res != imageReference {
182 182
 		c.Fatalf("unexpected Config.Image: %s (expected %s)", res, imageReference)
183 183
 	}
184
-
185 184
 }
186 185
 
187
-func (s *DockerSuite) TestRemoveImageByDigest(c *check.C) {
188
-	defer setupRegistry(c)()
189
-
186
+func (s *DockerRegistrySuite) TestRemoveImageByDigest(c *check.C) {
190 187
 	digest, err := setupImage()
191 188
 	if err != nil {
192 189
 		c.Fatalf("error setting up image: %v", err)
... ...
@@ -217,12 +203,9 @@ func (s *DockerSuite) TestRemoveImageByDigest(c *check.C) {
217 217
 	} else if !strings.Contains(err.Error(), "No such image") {
218 218
 		c.Fatalf("expected 'No such image' output, got %v", err)
219 219
 	}
220
-
221 220
 }
222 221
 
223
-func (s *DockerSuite) TestBuildByDigest(c *check.C) {
224
-	defer setupRegistry(c)()
225
-
222
+func (s *DockerRegistrySuite) TestBuildByDigest(c *check.C) {
226 223
 	digest, err := setupImage()
227 224
 	if err != nil {
228 225
 		c.Fatalf("error setting up image: %v", err)
... ...
@@ -262,12 +245,9 @@ func (s *DockerSuite) TestBuildByDigest(c *check.C) {
262 262
 	if res != imageID {
263 263
 		c.Fatalf("Image %s, expected %s", res, imageID)
264 264
 	}
265
-
266 265
 }
267 266
 
268
-func (s *DockerSuite) TestTagByDigest(c *check.C) {
269
-	defer setupRegistry(c)()
270
-
267
+func (s *DockerRegistrySuite) TestTagByDigest(c *check.C) {
271 268
 	digest, err := setupImage()
272 269
 	if err != nil {
273 270
 		c.Fatalf("error setting up image: %v", err)
... ...
@@ -302,12 +282,9 @@ func (s *DockerSuite) TestTagByDigest(c *check.C) {
302 302
 	if tagID != expectedID {
303 303
 		c.Fatalf("expected image id %q, got %q", expectedID, tagID)
304 304
 	}
305
-
306 305
 }
307 306
 
308
-func (s *DockerSuite) TestListImagesWithoutDigests(c *check.C) {
309
-	defer setupRegistry(c)()
310
-
307
+func (s *DockerRegistrySuite) TestListImagesWithoutDigests(c *check.C) {
311 308
 	digest, err := setupImage()
312 309
 	if err != nil {
313 310
 		c.Fatalf("error setting up image: %v", err)
... ...
@@ -334,8 +311,7 @@ func (s *DockerSuite) TestListImagesWithoutDigests(c *check.C) {
334 334
 
335 335
 }
336 336
 
337
-func (s *DockerSuite) TestListImagesWithDigests(c *check.C) {
338
-	defer setupRegistry(c)()
337
+func (s *DockerRegistrySuite) TestListImagesWithDigests(c *check.C) {
339 338
 
340 339
 	// setup image1
341 340
 	digest1, err := setupImageWithTag("tag1")
... ...
@@ -482,12 +458,9 @@ func (s *DockerSuite) TestListImagesWithDigests(c *check.C) {
482 482
 	if !busyboxRe.MatchString(out) {
483 483
 		c.Fatalf("expected %q: %s", busyboxRe.String(), out)
484 484
 	}
485
-
486 485
 }
487 486
 
488
-func (s *DockerSuite) TestDeleteImageByIDOnlyPulledByDigest(c *check.C) {
489
-	defer setupRegistry(c)()
490
-
487
+func (s *DockerRegistrySuite) TestDeleteImageByIDOnlyPulledByDigest(c *check.C) {
491 488
 	pushDigest, err := setupImage()
492 489
 	if err != nil {
493 490
 		c.Fatalf("error setting up image: %v", err)
... ...
@@ -511,5 +484,4 @@ func (s *DockerSuite) TestDeleteImageByIDOnlyPulledByDigest(c *check.C) {
511 511
 	if _, err := runCommand(cmd); err != nil {
512 512
 		c.Fatalf("error deleting image by id: %v", err)
513 513
 	}
514
-
515 514
 }
... ...
@@ -9,9 +9,7 @@ import (
9 9
 )
10 10
 
11 11
 // See issue docker/docker#8141
12
-func (s *DockerSuite) TestPullImageWithAliases(c *check.C) {
13
-	defer setupRegistry(c)()
14
-
12
+func (s *DockerRegistrySuite) TestPullImageWithAliases(c *check.C) {
15 13
 	repoName := fmt.Sprintf("%v/dockercli/busybox", privateRegistryURL)
16 14
 
17 15
 	repos := []string{}
... ...
@@ -48,7 +46,6 @@ func (s *DockerSuite) TestPullImageWithAliases(c *check.C) {
48 48
 			c.Fatalf("Image %v shouldn't have been pulled down", repo)
49 49
 		}
50 50
 	}
51
-
52 51
 }
53 52
 
54 53
 // pulling library/hello-world should show verified message
... ...
@@ -13,9 +13,7 @@ import (
13 13
 )
14 14
 
15 15
 // pulling an image from the central registry should work
16
-func (s *DockerSuite) TestPushBusyboxImage(c *check.C) {
17
-	defer setupRegistry(c)()
18
-
16
+func (s *DockerRegistrySuite) TestPushBusyboxImage(c *check.C) {
19 17
 	repoName := fmt.Sprintf("%v/dockercli/busybox", privateRegistryURL)
20 18
 	// tag the image to upload it to the private registry
21 19
 	tagCmd := exec.Command(dockerBinary, "tag", "busybox", repoName)
... ...
@@ -37,9 +35,7 @@ func (s *DockerSuite) TestPushUnprefixedRepo(c *check.C) {
37 37
 	}
38 38
 }
39 39
 
40
-func (s *DockerSuite) TestPushUntagged(c *check.C) {
41
-	defer setupRegistry(c)()
42
-
40
+func (s *DockerRegistrySuite) TestPushUntagged(c *check.C) {
43 41
 	repoName := fmt.Sprintf("%v/dockercli/busybox", privateRegistryURL)
44 42
 
45 43
 	expected := "Repository does not exist"
... ...
@@ -51,9 +47,7 @@ func (s *DockerSuite) TestPushUntagged(c *check.C) {
51 51
 	}
52 52
 }
53 53
 
54
-func (s *DockerSuite) TestPushBadTag(c *check.C) {
55
-	defer setupRegistry(c)()
56
-
54
+func (s *DockerRegistrySuite) TestPushBadTag(c *check.C) {
57 55
 	repoName := fmt.Sprintf("%v/dockercli/busybox:latest", privateRegistryURL)
58 56
 
59 57
 	expected := "does not exist"
... ...
@@ -65,9 +59,7 @@ func (s *DockerSuite) TestPushBadTag(c *check.C) {
65 65
 	}
66 66
 }
67 67
 
68
-func (s *DockerSuite) TestPushMultipleTags(c *check.C) {
69
-	defer setupRegistry(c)()
70
-
68
+func (s *DockerRegistrySuite) TestPushMultipleTags(c *check.C) {
71 69
 	repoName := fmt.Sprintf("%v/dockercli/busybox", privateRegistryURL)
72 70
 	repoTag1 := fmt.Sprintf("%v/dockercli/busybox:t1", privateRegistryURL)
73 71
 	repoTag2 := fmt.Sprintf("%v/dockercli/busybox:t2", privateRegistryURL)
... ...
@@ -87,8 +79,7 @@ func (s *DockerSuite) TestPushMultipleTags(c *check.C) {
87 87
 	}
88 88
 }
89 89
 
90
-func (s *DockerSuite) TestPushInterrupt(c *check.C) {
91
-	defer setupRegistry(c)()
90
+func (s *DockerRegistrySuite) TestPushInterrupt(c *check.C) {
92 91
 	repoName := fmt.Sprintf("%v/dockercli/busybox", privateRegistryURL)
93 92
 	// tag the image and upload it to the private registry
94 93
 	if out, _, err := runCommandWithOutput(exec.Command(dockerBinary, "tag", "busybox", repoName)); err != nil {
... ...
@@ -118,8 +109,7 @@ func (s *DockerSuite) TestPushInterrupt(c *check.C) {
118 118
 	}
119 119
 }
120 120
 
121
-func (s *DockerSuite) TestPushEmptyLayer(c *check.C) {
122
-	defer setupRegistry(c)()
121
+func (s *DockerRegistrySuite) TestPushEmptyLayer(c *check.C) {
123 122
 	repoName := fmt.Sprintf("%v/dockercli/emptylayer", privateRegistryURL)
124 123
 	emptyTarball, err := ioutil.TempFile("", "empty_tarball")
125 124
 	if err != nil {
... ...
@@ -1125,7 +1125,7 @@ func daemonTime(c *check.C) time.Time {
1125 1125
 	return dt
1126 1126
 }
1127 1127
 
1128
-func setupRegistry(c *check.C) func() {
1128
+func setupRegistry(c *check.C) *testRegistryV2 {
1129 1129
 	testRequires(c, RegistryHosting)
1130 1130
 	reg, err := newTestRegistryV2(c)
1131 1131
 	if err != nil {
... ...
@@ -1143,8 +1143,7 @@ func setupRegistry(c *check.C) func() {
1143 1143
 	if err != nil {
1144 1144
 		c.Fatal("Timeout waiting for test registry to become available")
1145 1145
 	}
1146
-
1147
-	return func() { reg.Close() }
1146
+	return reg
1148 1147
 }
1149 1148
 
1150 1149
 // appendBaseEnv appends the minimum set of environment variables to exec the