MCPcopy
hub / github.com/docker/compose / TestReconcileNetworks_Diverged

Function TestReconcileNetworks_Diverged

pkg/compose/reconcile_test.go:112–160  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

110}
111
112func TestReconcileNetworks_Diverged(t *testing.T) {
113 project := &types.Project{
114 Name: "myproject",
115 Networks: types.Networks{
116 "frontend": {Name: "myproject_frontend", Driver: "overlay"},
117 },
118 Services: types.Services{
119 "web": {
120 Name: "web",
121 Scale: intPtr(1),
122 Networks: map[string]*types.ServiceNetworkConfig{"frontend": {}},
123 },
124 },
125 }
126 observed := &ObservedState{
127 ProjectName: "myproject",
128 Containers: map[string][]ObservedContainer{
129 "web": {{
130 ID: "c1aabbccddee", Number: 1, State: container.StateRunning,
131 Summary: container.Summary{
132 ID: "c1aabbccddee",
133 Labels: map[string]string{
134 api.ServiceLabel: "web",
135 api.ContainerNumberLabel: "1",
136 },
137 },
138 }},
139 },
140 Networks: map[string]ObservedNetwork{
141 "frontend": {ID: "net1", Name: "myproject_frontend", ConfigHash: "oldhash"},
142 },
143 Volumes: map[string]ObservedVolume{},
144 }
145
146 plan, err := reconcile(t.Context(), project, observed, defaultReconcileOptions(), noPrompt)
147 assert.NilError(t, err)
148
149 // The recreate phase reuses the Stop from the network-recreate phase
150 // instead of emitting a second one against an already-stopped container.
151 assert.Equal(t, plan.String(), strings.TrimSpace(`
152[] -> #1 service:web:1, StopContainer, network frontend config changed
153[1] -> #2 service:web:1, DisconnectNetwork, network frontend recreate
154[2] -> #3 network:frontend, RemoveNetwork, config hash diverged
155[3] -> #4 network:frontend, CreateNetwork, recreate after config change
156[4] -> #5 service:web:1, CreateContainer, config changed (tmpName) [recreate:web:1]
157[1,5] -> #6 service:web:1, RemoveContainer, replaced by #5 [recreate:web:1]
158[6] -> #7 service:web:1, RenameContainer, finalize recreate [recreate:web:1]
159`)+"\n")
160}
161
162func TestReconcileNetworks_DivergedMultipleServices(t *testing.T) {
163 project := &types.Project{

Callers

nothing calls this directly

Calls 4

intPtrFunction · 0.85
reconcileFunction · 0.85
defaultReconcileOptionsFunction · 0.85
StringMethod · 0.45

Tested by

no test coverage detected