@@ -21,13 +21,14 @@ import (
21
21
"strings"
22
22
"testing"
23
23
24
- compose "github.com/docker/compose/v2/pkg/api"
25
- "github.com/docker/compose/v2/pkg/mocks"
26
24
moby "github.com/docker/docker/api/types"
27
25
"github.com/docker/docker/api/types/filters"
28
26
"github.com/docker/docker/api/types/volume"
29
27
"github.com/golang/mock/gomock"
30
28
"gotest.tools/v3/assert"
29
+
30
+ compose "github.com/docker/compose/v2/pkg/api"
31
+ "github.com/docker/compose/v2/pkg/mocks"
31
32
)
32
33
33
34
func TestDown (t * testing.T ) {
@@ -48,8 +49,14 @@ func TestDown(t *testing.T) {
48
49
}, nil )
49
50
api .EXPECT ().VolumeList (gomock .Any (), filters .NewArgs (projectFilter (strings .ToLower (testProject )))).
50
51
Return (volume.VolumeListOKBody {}, nil )
52
+
53
+ // network names are not guaranteed to be unique, ensure Compose handles
54
+ // cleanup properly if duplicates are inadvertently created
51
55
api .EXPECT ().NetworkList (gomock .Any (), moby.NetworkListOptions {Filters : filters .NewArgs (projectFilter (strings .ToLower (testProject )))}).
52
- Return ([]moby.NetworkResource {{Name : "myProject_default" }}, nil )
56
+ Return ([]moby.NetworkResource {
57
+ {ID : "abc123" , Name : "myProject_default" },
58
+ {ID : "def456" , Name : "myProject_default" },
59
+ }, nil )
53
60
54
61
api .EXPECT ().ContainerStop (gomock .Any (), "123" , nil ).Return (nil )
55
62
api .EXPECT ().ContainerStop (gomock .Any (), "456" , nil ).Return (nil )
@@ -59,8 +66,14 @@ func TestDown(t *testing.T) {
59
66
api .EXPECT ().ContainerRemove (gomock .Any (), "456" , moby.ContainerRemoveOptions {Force : true }).Return (nil )
60
67
api .EXPECT ().ContainerRemove (gomock .Any (), "789" , moby.ContainerRemoveOptions {Force : true }).Return (nil )
61
68
62
- api .EXPECT ().NetworkInspect (gomock .Any (), "myProject_default" , moby.NetworkInspectOptions {}).Return (moby.NetworkResource {Name : "myProject_default" }, nil )
63
- api .EXPECT ().NetworkRemove (gomock .Any (), "myProject_default" ).Return (nil )
69
+ api .EXPECT ().NetworkList (gomock .Any (), moby.NetworkListOptions {
70
+ Filters : filters .NewArgs (filters .Arg ("name" , "myProject_default" )),
71
+ }).Return ([]moby.NetworkResource {
72
+ {ID : "abc123" , Name : "myProject_default" },
73
+ {ID : "def456" , Name : "myProject_default" },
74
+ }, nil )
75
+ api .EXPECT ().NetworkRemove (gomock .Any (), "abc123" ).Return (nil )
76
+ api .EXPECT ().NetworkRemove (gomock .Any (), "def456" ).Return (nil )
64
77
65
78
err := tested .Down (context .Background (), strings .ToLower (testProject ), compose.DownOptions {})
66
79
assert .NilError (t , err )
@@ -94,8 +107,10 @@ func TestDownRemoveOrphans(t *testing.T) {
94
107
api .EXPECT ().ContainerRemove (gomock .Any (), "789" , moby.ContainerRemoveOptions {Force : true }).Return (nil )
95
108
api .EXPECT ().ContainerRemove (gomock .Any (), "321" , moby.ContainerRemoveOptions {Force : true }).Return (nil )
96
109
97
- api .EXPECT ().NetworkInspect (gomock .Any (), "myProject_default" , moby.NetworkInspectOptions {}).Return (moby.NetworkResource {Name : "myProject_default" }, nil )
98
- api .EXPECT ().NetworkRemove (gomock .Any (), "myProject_default" ).Return (nil )
110
+ api .EXPECT ().NetworkList (gomock .Any (), moby.NetworkListOptions {
111
+ Filters : filters .NewArgs (filters .Arg ("name" , "myProject_default" )),
112
+ }).Return ([]moby.NetworkResource {{ID : "abc123" , Name : "myProject_default" }}, nil )
113
+ api .EXPECT ().NetworkRemove (gomock .Any (), "abc123" ).Return (nil )
99
114
100
115
err := tested .Down (context .Background (), strings .ToLower (testProject ), compose.DownOptions {RemoveOrphans : true })
101
116
assert .NilError (t , err )
0 commit comments