4
4
"bufio"
5
5
"fmt"
6
6
"path/filepath"
7
+ "regexp"
7
8
"strings"
8
9
"testing"
9
10
@@ -21,16 +22,20 @@ func insertBundles(t *testing.T, cmd icmd.Cmd, info dindSwarmAndRegistryInfo) {
21
22
icmd .RunCmd (cmd ).Assert (t , icmd .Success )
22
23
}
23
24
25
+ func assertImageListOutput (t * testing.T , cmd icmd.Cmd , expected string ) {
26
+ result := icmd .RunCmd (cmd ).Assert (t , icmd .Success )
27
+ match , _ := regexp .MatchString (expected , result .Stdout ())
28
+ assert .Assert (t , match )
29
+ }
30
+
24
31
func expectImageListOutput (t * testing.T , cmd icmd.Cmd , output string ) {
25
32
cmd .Command = dockerCli .Command ("app" , "image" , "ls" )
26
- result := icmd .RunCmd (cmd ).Assert (t , icmd .Success )
27
- assert .Equal (t , result .Stdout (), output )
33
+ assertImageListOutput (t , cmd , output )
28
34
}
29
35
30
36
func expectImageListDigestsOutput (t * testing.T , cmd icmd.Cmd , output string ) {
31
37
cmd .Command = dockerCli .Command ("app" , "image" , "ls" , "--digests" )
32
- result := icmd .RunCmd (cmd ).Assert (t , icmd .Success )
33
- assert .Equal (t , result .Stdout (), output )
38
+ assertImageListOutput (t , cmd , output )
34
39
}
35
40
36
41
func verifyImageIDListOutput (t * testing.T , cmd icmd.Cmd , count int , distinct int ) {
@@ -56,12 +61,12 @@ func TestImageList(t *testing.T) {
56
61
57
62
insertBundles (t , cmd , info )
58
63
59
- expected := `APP IMAGE APP NAME
60
- %s push-pull
61
- a-simple-app:latest simple
62
- b-simple-app:latest simple
64
+ expected := `REPOSITORY TAG APP IMAGE ID APP NAME
65
+ %s latest [a-f0-9]{12} push-pull
66
+ a-simple-app latest [a-f0-9]{12} simple
67
+ b-simple-app latest [a-f0-9]{12} simple
63
68
`
64
- expectedOutput := fmt .Sprintf (expected , info .registryAddress + "/c-myapp:latest " )
69
+ expectedOutput := fmt .Sprintf (expected , info .registryAddress + "/c-myapp" )
65
70
expectImageListOutput (t , cmd , expectedOutput )
66
71
})
67
72
}
@@ -78,12 +83,12 @@ func TestImageListDigests(t *testing.T) {
78
83
runWithDindSwarmAndRegistry (t , func (info dindSwarmAndRegistryInfo ) {
79
84
cmd := info .configuredCmd
80
85
insertBundles (t , cmd , info )
81
- expected := `APP IMAGE DIGEST APP NAME
82
- %s <none> push-pull
83
- a-simple-app:latest <none> simple
84
- b-simple-app:latest <none> simple
86
+ expected := `REPOSITORY TAG DIGEST APP IMAGE ID APP NAME
87
+ %s latest <none> [a-f0-9]{12} push-pull
88
+ a-simple-app latest <none> [a-f0-9]{12} simple
89
+ b-simple-app latest <none> [a-f0-9]{12} simple
85
90
`
86
- expectedOutput := fmt .Sprintf (expected , info .registryAddress + "/c-myapp:latest " )
91
+ expectedOutput := fmt .Sprintf (expected , info .registryAddress + "/c-myapp" )
87
92
expectImageListDigestsOutput (t , cmd , expectedOutput )
88
93
})
89
94
}
@@ -113,7 +118,7 @@ Deleted: b-simple-app:latest`,
113
118
Err : `b-simple-app:latest: reference not found` ,
114
119
})
115
120
116
- expectedOutput := "APP IMAGE APP NAME\n "
121
+ expectedOutput := "REPOSITORY TAG APP IMAGE ID APP NAME\n "
117
122
expectImageListOutput (t , cmd , expectedOutput )
118
123
})
119
124
}
@@ -131,8 +136,8 @@ func TestImageTag(t *testing.T) {
131
136
cmd .Command = dockerCli .Command ("app" , "build" , "--tag" , "a-simple-app" , filepath .Join ("testdata" , "simple" ))
132
137
icmd .RunCmd (cmd ).Assert (t , icmd .Success )
133
138
134
- singleImageExpectation := `APP IMAGE APP NAME
135
- a-simple-app: latest simple
139
+ singleImageExpectation := `REPOSITORY TAG APP IMAGE ID APP NAME
140
+ a-simple-app latest [a-f0-9]{12} simple
136
141
`
137
142
expectImageListOutput (t , cmd , singleImageExpectation )
138
143
@@ -181,63 +186,63 @@ a-simple-app:latest simple
181
186
// tag image with only names
182
187
dockerAppImageTag ("a-simple-app" , "b-simple-app" )
183
188
icmd .RunCmd (cmd ).Assert (t , icmd .Success )
184
- expectImageListOutput (t , cmd , `APP IMAGE APP NAME
185
- a-simple-app: latest simple
186
- b-simple-app: latest simple
189
+ expectImageListOutput (t , cmd , `REPOSITORY TAG APP IMAGE ID APP NAME
190
+ a-simple-app latest [a-f0-9]{12} simple
191
+ b-simple-app latest [a-f0-9]{12} simple
187
192
` )
188
193
189
194
// target tag
190
195
dockerAppImageTag ("a-simple-app" , "a-simple-app:0.1" )
191
196
icmd .RunCmd (cmd ).Assert (t , icmd .Success )
192
- expectImageListOutput (t , cmd , `APP IMAGE APP NAME
193
- a-simple-app: 0.1 simple
194
- a-simple-app: latest simple
195
- b-simple-app: latest simple
197
+ expectImageListOutput (t , cmd , `REPOSITORY TAG APP IMAGE ID APP NAME
198
+ a-simple-app 0.1 [a-f0-9]{12} simple
199
+ a-simple-app latest [a-f0-9]{12} simple
200
+ b-simple-app latest [a-f0-9]{12} simple
196
201
` )
197
202
198
203
// source tag
199
204
dockerAppImageTag ("a-simple-app:0.1" , "c-simple-app" )
200
205
icmd .RunCmd (cmd ).Assert (t , icmd .Success )
201
- expectImageListOutput (t , cmd , `APP IMAGE APP NAME
202
- a-simple-app: 0.1 simple
203
- a-simple-app: latest simple
204
- b-simple-app: latest simple
205
- c-simple-app: latest simple
206
+ expectImageListOutput (t , cmd , `REPOSITORY TAG APP IMAGE ID APP NAME
207
+ a-simple-app 0.1 [a-f0-9]{12} simple
208
+ a-simple-app latest [a-f0-9]{12} simple
209
+ b-simple-app latest [a-f0-9]{12} simple
210
+ c-simple-app latest [a-f0-9]{12} simple
206
211
` )
207
212
208
213
// source and target tags
209
214
dockerAppImageTag ("a-simple-app:0.1" , "b-simple-app:0.2" )
210
215
icmd .RunCmd (cmd ).Assert (t , icmd .Success )
211
- expectImageListOutput (t , cmd , `APP IMAGE APP NAME
212
- a-simple-app: 0.1 simple
213
- a-simple-app: latest simple
214
- b-simple-app: 0.2 simple
215
- b-simple-app: latest simple
216
- c-simple-app: latest simple
216
+ expectImageListOutput (t , cmd , `REPOSITORY TAG APP IMAGE ID APP NAME
217
+ a-simple-app 0.1 [a-f0-9]{12} simple
218
+ a-simple-app latest [a-f0-9]{12} simple
219
+ b-simple-app 0.2 [a-f0-9]{12} simple
220
+ b-simple-app latest [a-f0-9]{12} simple
221
+ c-simple-app latest [a-f0-9]{12} simple
217
222
` )
218
223
219
224
// given a new application
220
225
cmd .Command = dockerCli .Command ("app" , "build" , "--tag" , "push-pull" , filepath .Join ("testdata" , "push-pull" ))
221
226
icmd .RunCmd (cmd ).Assert (t , icmd .Success )
222
- expectImageListOutput (t , cmd , `APP IMAGE APP NAME
223
- a-simple-app: 0.1 simple
224
- a-simple-app: latest simple
225
- b-simple-app: 0.2 simple
226
- b-simple-app: latest simple
227
- c-simple-app: latest simple
228
- push-pull:latest push-pull
227
+ expectImageListOutput (t , cmd , `REPOSITORY TAG APP IMAGE ID APP NAME
228
+ a-simple-app 0.1 [a-f0-9]{12} simple
229
+ a-simple-app latest [a-f0-9]{12} simple
230
+ b-simple-app 0.2 [a-f0-9]{12} simple
231
+ b-simple-app latest [a-f0-9]{12} simple
232
+ c-simple-app latest [a-f0-9]{12} simple
233
+ push-pull latest [a-f0-9]{12} push-pull
229
234
` )
230
235
231
236
// can be tagged to an existing tag
232
237
dockerAppImageTag ("push-pull" , "b-simple-app:0.2" )
233
238
icmd .RunCmd (cmd ).Assert (t , icmd .Success )
234
- expectImageListOutput (t , cmd , `APP IMAGE APP NAME
235
- a-simple-app: 0.1 simple
236
- a-simple-app: latest simple
237
- b-simple-app: 0.2 push-pull
238
- b-simple-app: latest simple
239
- c-simple-app: latest simple
240
- push-pull:latest push-pull
239
+ expectImageListOutput (t , cmd , `REPOSITORY TAG APP IMAGE ID APP NAME
240
+ a-simple-app 0.1 [a-f0-9]{12} simple
241
+ a-simple-app latest [a-f0-9]{12} simple
242
+ b-simple-app 0.2 [a-f0-9]{12} push-pull
243
+ b-simple-app latest [a-f0-9]{12} simple
244
+ c-simple-app latest [a-f0-9]{12} simple
245
+ push-pull latest [a-f0-9]{12} push-pull
241
246
` )
242
247
})
243
248
}
0 commit comments