@@ -3,7 +3,6 @@ package e2e
33import (
44 "fmt"
55 "io/ioutil"
6- "os"
76 "path/filepath"
87 "regexp"
98 "strings"
@@ -46,6 +45,9 @@ func TestRender(t *testing.T) {
4645
4746func testRenderApp (appPath string , env ... string ) func (* testing.T ) {
4847 return func (t * testing.T ) {
48+ cmd , cleanup := dockerCli .createTestCmd ()
49+ defer cleanup ()
50+
4951 envParameters := map [string ]string {}
5052 data , err := ioutil .ReadFile (filepath .Join (appPath , "env.yml" ))
5153 assert .NilError (t , err )
@@ -54,17 +56,19 @@ func testRenderApp(appPath string, env ...string) func(*testing.T) {
5456 for k , v := range envParameters {
5557 args = append (args , "--set" , fmt .Sprintf ("%s=%s" , k , v ))
5658 }
57- result := icmd .RunCmd (icmd.Cmd {
58- Command : args ,
59- Env : append (os .Environ (), env ... ),
60- }).Assert (t , icmd .Success )
59+ cmd .Command = args
60+ cmd .Env = append (cmd .Env , env ... )
61+ result := icmd .RunCmd (cmd ).Assert (t , icmd .Success )
6162 assert .Assert (t , is .Equal (readFile (t , filepath .Join (appPath , "expected.txt" )), result .Stdout ()), "rendering mismatch" )
6263 }
6364}
6465
6566func TestRenderFormatters (t * testing.T ) {
67+ cmd , cleanup := dockerCli .createTestCmd ()
68+ defer cleanup ()
69+
6670 appPath := filepath .Join ("testdata" , "simple" , "simple.dockerapp" )
67- cmd := icmd. Cmd { Command : dockerCli .Command ("app" , "render" , "--formatter" , "json" , appPath )}
71+ cmd . Command = dockerCli .Command ("app" , "render" , "--formatter" , "json" , appPath )
6872 result := icmd .RunCmd (cmd ).Assert (t , icmd .Success )
6973 golden .Assert (t , result .Stdout (), "expected-json-render.golden" )
7074
@@ -74,6 +78,9 @@ func TestRenderFormatters(t *testing.T) {
7478}
7579
7680func TestInit (t * testing.T ) {
81+ cmd , cleanup := dockerCli .createTestCmd ()
82+ defer cleanup ()
83+
7784 composeData := `version: "3.2"
7885services:
7986 nginx:
@@ -103,8 +110,7 @@ maintainers:
103110 testAppName := "app-test"
104111 dirName := internal .DirNameFromAppName (testAppName )
105112
106- cmd := icmd.Cmd {Dir : tmpDir .Path (), Env : os .Environ ()}
107-
113+ cmd .Dir = tmpDir .Path ()
108114 cmd .Command = dockerCli .Command ("app" ,
109115 "init" , testAppName ,
110116 "--compose-file" , tmpDir .Join (internal .ComposeFileName ),
@@ -149,6 +155,9 @@ maintainers:
149155}
150156
151157func TestDetectApp (t * testing.T ) {
158+ cmd , cleanup := dockerCli .createTestCmd ()
159+ defer cleanup ()
160+
152161 // cwd = e2e
153162 dir := fs .NewDir (t , "detect-app-binary" ,
154163 fs .WithDir ("attachments.dockerapp" , fs .FromDir ("testdata/attachments.dockerapp" )),
@@ -158,33 +167,35 @@ func TestDetectApp(t *testing.T) {
158167 ),
159168 )
160169 defer dir .Remove ()
161- icmd .RunCmd (icmd.Cmd {
162- Command : dockerCli .Command ("app" , "inspect" ),
163- Dir : dir .Path (),
164- }).Assert (t , icmd .Success )
165- icmd .RunCmd (icmd.Cmd {
166- Command : dockerCli .Command ("app" , "inspect" ),
167- Dir : dir .Join ("attachments.dockerapp" ),
168- }).Assert (t , icmd .Success )
169- icmd .RunCmd (icmd.Cmd {
170- Command : dockerCli .Command ("app" , "inspect" , "." ),
171- Dir : dir .Join ("attachments.dockerapp" ),
172- }).Assert (t , icmd .Success )
173- result := icmd .RunCmd (icmd.Cmd {
174- Command : dockerCli .Command ("app" , "inspect" ),
175- Dir : dir .Join ("render" ),
176- })
177- result .Assert (t , icmd.Expected {
170+
171+ cmd .Command = dockerCli .Command ("app" , "inspect" )
172+ cmd .Dir = dir .Path ()
173+ icmd .RunCmd (cmd ).Assert (t , icmd .Success )
174+
175+ cmd .Command = dockerCli .Command ("app" , "inspect" )
176+ cmd .Dir = dir .Join ("attachments.dockerapp" )
177+ icmd .RunCmd (cmd ).Assert (t , icmd .Success )
178+
179+ cmd .Command = dockerCli .Command ("app" , "inspect" , "." )
180+ cmd .Dir = dir .Join ("attachments.dockerapp" )
181+ icmd .RunCmd (cmd ).Assert (t , icmd .Success )
182+
183+ cmd .Command = dockerCli .Command ("app" , "inspect" )
184+ cmd .Dir = dir .Join ("render" )
185+ icmd .RunCmd (cmd ).Assert (t , icmd.Expected {
178186 ExitCode : 1 ,
179187 Err : "Error: multiple applications found in current directory, specify the application name on the command line" ,
180188 })
181189}
182190
183191func TestSplitMerge (t * testing.T ) {
192+ cmd , cleanup := dockerCli .createTestCmd ()
193+ defer cleanup ()
194+
184195 tmpDir := fs .NewDir (t , "split_merge" )
185196 defer tmpDir .Remove ()
186197
187- cmd := icmd. Cmd { Command : dockerCli .Command ("app" , "merge" , "testdata/render/envvariables/my.dockerapp" , "--output" , tmpDir .Join ("remerged.dockerapp" ))}
198+ cmd . Command = dockerCli .Command ("app" , "merge" , "testdata/render/envvariables/my.dockerapp" , "--output" , tmpDir .Join ("remerged.dockerapp" ))
188199 icmd .RunCmd (cmd ).Assert (t , icmd .Success )
189200
190201 cmd .Dir = tmpDir .Path ()
@@ -211,10 +222,11 @@ func TestSplitMerge(t *testing.T) {
211222}
212223
213224func TestBundle (t * testing.T ) {
225+ cmd , cleanup := dockerCli .createTestCmd ()
226+ defer cleanup ()
227+
214228 tmpDir := fs .NewDir (t , t .Name ())
215229 defer tmpDir .Remove ()
216- // Using a custom DOCKER_CONFIG to store contexts in a temporary directory
217- cmd := icmd.Cmd {Env : os .Environ ()}
218230
219231 // Running a docker in docker to bundle the application
220232 dind := NewContainer ("docker:18.09-dind" , 2375 )
@@ -265,15 +277,14 @@ func TestBundle(t *testing.T) {
265277}
266278
267279func TestDockerAppLifecycle (t * testing.T ) {
280+ cmd , cleanup := dockerCli .createTestCmd ()
281+ defer cleanup ()
282+
268283 tmpDir := fs .NewDir (t , t .Name ())
269284 defer tmpDir .Remove ()
270285
271- cmd := icmd.Cmd {
272- Env : append (os .Environ (),
273- fmt .Sprintf ("DUFFLE_HOME=%s" , tmpDir .Path ()),
274- "DOCKER_TARGET_CONTEXT=swarm-target-context" ,
275- ),
276- }
286+ cmd .Env = append (cmd .Env , "DUFFLE_HOME=" + tmpDir .Path ())
287+ cmd .Env = append (cmd .Env , "DOCKER_TARGET_CONTEXT=swarm-target-context" )
277288
278289 // Running a swarm using docker in docker to install the application
279290 // and run the invocation image
@@ -289,10 +300,6 @@ func TestDockerAppLifecycle(t *testing.T) {
289300 // - the target context for the invocation image to install within the swarm
290301 cmd .Command = dockerCli .Command ("context" , "create" , "swarm-context" , "--docker" , fmt .Sprintf (`"host=tcp://%s"` , swarm .GetAddress (t )), "--default-stack-orchestrator" , "swarm" )
291302 icmd .RunCmd (cmd ).Assert (t , icmd .Success )
292- defer func () {
293- cmd .Command = dockerCli .Command ("context" , "rm" , "--force" , "swarm-context" )
294- icmd .RunCmd (cmd )
295- }()
296303
297304 // When creating a context on a Windows host we cannot use
298305 // the unix socket but it's needed inside the invocation image.
@@ -301,10 +308,6 @@ func TestDockerAppLifecycle(t *testing.T) {
301308 // invocation image
302309 cmd .Command = dockerCli .Command ("context" , "create" , "swarm-target-context" , "--docker" , "host=" , "--default-stack-orchestrator" , "swarm" )
303310 icmd .RunCmd (cmd ).Assert (t , icmd .Success )
304- defer func () {
305- cmd .Command = dockerCli .Command ("context" , "rm" , "--force" , "swarm-target-context" )
306- icmd .RunCmd (cmd )
307- }()
308311
309312 // Initialize the swarm
310313 cmd .Env = append (cmd .Env , "DOCKER_CONTEXT=swarm-context" )
0 commit comments