Skip to content

Commit 156a253

Browse files
committed
chore: enable noctx linter
Signed-off-by: Matthieu MOREL <[email protected]>
1 parent 7eb93bb commit 156a253

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+458
-244
lines changed

.golangci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ linters:
1414
- gocritic
1515
- misspell
1616
- nakedret
17+
- noctx
1718
- nolintlint
1819
- perfsprint
1920
- revive

docker_auth_test.go

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -193,13 +193,12 @@ func removeImageFromLocalCache(t *testing.T, img string) {
193193
}
194194

195195
func TestBuildContainerFromDockerfileWithDockerAuthConfig(t *testing.T) {
196-
registryHost := prepareLocalRegistryWithAuth(t)
196+
ctx := t.Context()
197+
registryHost := prepareLocalRegistryWithAuth(t, ctx)
197198

198199
// using the same credentials as in the Docker Registry
199200
setAuthConfig(t, registryHost, "testuser", "testpassword")
200201

201-
ctx := context.Background()
202-
203202
redisC, err := Run(ctx, "",
204203
WithDockerfile(FromDockerfile{
205204
Context: "./testdata",
@@ -218,13 +217,12 @@ func TestBuildContainerFromDockerfileWithDockerAuthConfig(t *testing.T) {
218217
}
219218

220219
func TestBuildContainerFromDockerfileShouldFailWithWrongDockerAuthConfig(t *testing.T) {
221-
registryHost := prepareLocalRegistryWithAuth(t)
220+
ctx := t.Context()
221+
registryHost := prepareLocalRegistryWithAuth(t, ctx)
222222

223223
// using different credentials than in the Docker Registry
224224
setAuthConfig(t, registryHost, "foo", "bar")
225225

226-
ctx := context.Background()
227-
228226
redisC, err := Run(ctx, "",
229227
WithDockerfile(FromDockerfile{
230228
Context: "./testdata",
@@ -242,21 +240,19 @@ func TestBuildContainerFromDockerfileShouldFailWithWrongDockerAuthConfig(t *test
242240
}
243241

244242
func TestCreateContainerFromPrivateRegistry(t *testing.T) {
245-
registryHost := prepareLocalRegistryWithAuth(t)
243+
ctx := t.Context()
244+
registryHost := prepareLocalRegistryWithAuth(t, ctx)
246245

247246
// using the same credentials as in the Docker Registry
248247
setAuthConfig(t, registryHost, "testuser", "testpassword")
249248

250-
ctx := context.Background()
251-
252249
redisContainer, err := Run(ctx, registryHost+"/redis:5.0-alpine", WithAlwaysPull(), WithExposedPorts("6379/tcp"), WithWaitStrategy(wait.ForLog("Ready to accept connections")))
253250
CleanupContainer(t, redisContainer)
254251
require.NoError(t, err)
255252
}
256253

257-
func prepareLocalRegistryWithAuth(t *testing.T) string {
254+
func prepareLocalRegistryWithAuth(t *testing.T, ctx context.Context) string {
258255
t.Helper()
259-
ctx := context.Background()
260256
wd, err := os.Getwd()
261257
require.NoError(t, err)
262258
// copyDirectoryToContainer {
@@ -288,7 +284,7 @@ func prepareLocalRegistryWithAuth(t *testing.T) string {
288284
mappedPort, err := registryC.MappedPort(ctx, "5000/tcp")
289285
require.NoError(t, err)
290286

291-
ip := localAddress(t)
287+
ip := localAddress(t, ctx)
292288
mp := mappedPort.Port()
293289
addr := ip + ":" + mp
294290

@@ -333,13 +329,14 @@ func setAuthConfig(t *testing.T, host, username, password string) string {
333329
// localAddress returns the local address of the machine
334330
// which can be used to connect to the local registry.
335331
// This avoids the issues with localhost on WSL.
336-
func localAddress(t *testing.T) string {
332+
func localAddress(t *testing.T, ctx context.Context) string {
337333
t.Helper()
338334
if os.Getenv("WSL_DISTRO_NAME") == "" {
339335
return "localhost"
340336
}
341337

342-
conn, err := net.Dial("udp", "golang.org:80")
338+
d := &net.Dialer{}
339+
conn, err := d.DialContext(ctx, "udp", "golang.org:80")
343340
require.NoError(t, err)
344341
defer conn.Close()
345342

docker_test.go

Lines changed: 54 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,10 @@ func TestContainerWithHostNetworkOptions(t *testing.T) {
8181
endpoint, err := nginxC.PortEndpoint(ctx, nginxHighPort, "http")
8282
require.NoErrorf(t, err, "Expected server endpoint")
8383

84-
_, err = http.Get(endpoint)
84+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint, http.NoBody)
85+
require.NoError(t, err)
86+
87+
_, err = http.DefaultClient.Do(req)
8588
require.NoErrorf(t, err, "Expected OK response")
8689
}
8790

@@ -103,10 +106,13 @@ func TestContainerWithHostNetworkOptions_UseExposePortsFromImageConfigs(t *testi
103106
endpoint, err := nginxC.Endpoint(ctx, "http")
104107
require.NoErrorf(t, err, "Expected server endpoint")
105108

106-
resp, err := http.Get(endpoint)
109+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint, http.NoBody)
110+
require.NoError(t, err)
111+
112+
resp, err := http.DefaultClient.Do(req)
107113
require.NoError(t, err)
108-
defer resp.Body.Close()
109114

115+
defer resp.Body.Close()
110116
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
111117
}
112118

@@ -140,13 +146,19 @@ func TestContainerWithHostNetwork(t *testing.T) {
140146
require.NoErrorf(t, err, "Expected port endpoint %s", portEndpoint)
141147
t.Log(portEndpoint)
142148

143-
_, err = http.Get(portEndpoint)
149+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, portEndpoint, http.NoBody)
150+
require.NoError(t, err)
151+
152+
_, err = http.DefaultClient.Do(req)
144153
require.NoErrorf(t, err, "Expected OK response")
145154

146155
host, err := nginxC.Host(ctx)
147156
require.NoErrorf(t, err, "Expected host %s", host)
148157

149-
_, err = http.Get("http://" + host + ":8080")
158+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, "http://"+host+":8080", http.NoBody)
159+
require.NoError(t, err)
160+
161+
_, err = http.DefaultClient.Do(req)
150162
require.NoErrorf(t, err, "Expected OK response")
151163
}
152164

@@ -318,19 +330,25 @@ func TestTwoContainersExposingTheSamePort(t *testing.T) {
318330
endpointA, err := nginxA.PortEndpoint(ctx, nginxDefaultPort, "http")
319331
require.NoError(t, err)
320332

321-
resp, err := http.Get(endpointA)
333+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpointA, http.NoBody)
322334
require.NoError(t, err)
323-
defer resp.Body.Close()
324335

336+
resp, err := http.DefaultClient.Do(req)
337+
require.NoError(t, err)
338+
339+
defer resp.Body.Close()
325340
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
326341

327342
endpointB, err := nginxB.PortEndpoint(ctx, nginxDefaultPort, "http")
328343
require.NoError(t, err)
329344

330-
resp, err = http.Get(endpointB)
345+
req, err = http.NewRequestWithContext(ctx, http.MethodGet, endpointB, http.NoBody)
346+
require.NoError(t, err)
347+
348+
resp, err = http.DefaultClient.Do(req)
331349
require.NoError(t, err)
332-
defer resp.Body.Close()
333350

351+
defer resp.Body.Close()
334352
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
335353
}
336354

@@ -347,7 +365,10 @@ func TestContainerCreation(t *testing.T) {
347365
endpoint, err := nginxC.PortEndpoint(ctx, nginxDefaultPort, "http")
348366
require.NoError(t, err)
349367

350-
resp, err := http.Get(endpoint)
368+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint, http.NoBody)
369+
require.NoError(t, err)
370+
371+
resp, err := http.DefaultClient.Do(req)
351372
require.NoError(t, err)
352373
defer resp.Body.Close()
353374

@@ -408,7 +429,10 @@ func TestContainerCreationWithName(t *testing.T) {
408429
endpoint, err := nginxC.PortEndpoint(ctx, nginxDefaultPort, "http")
409430
require.NoError(t, err)
410431

411-
resp, err := http.Get(endpoint)
432+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint, http.NoBody)
433+
require.NoError(t, err)
434+
435+
resp, err := http.DefaultClient.Do(req)
412436
require.NoError(t, err)
413437
defer resp.Body.Close()
414438

@@ -428,10 +452,14 @@ func TestContainerCreationAndWaitForListeningPortLongEnough(t *testing.T) {
428452

429453
origin, err := nginxC.PortEndpoint(ctx, nginxDefaultPort, "http")
430454
require.NoError(t, err)
431-
resp, err := http.Get(origin)
455+
456+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, origin, http.NoBody)
457+
require.NoError(t, err)
458+
459+
resp, err := http.DefaultClient.Do(req)
432460
require.NoError(t, err)
433-
defer resp.Body.Close()
434461

462+
defer resp.Body.Close()
435463
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
436464
}
437465

@@ -459,10 +487,14 @@ func TestContainerRespondsWithHttp200ForIndex(t *testing.T) {
459487

460488
origin, err := nginxC.PortEndpoint(ctx, nginxDefaultPort, "http")
461489
require.NoError(t, err)
462-
resp, err := http.Get(origin)
490+
491+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, origin, http.NoBody)
492+
require.NoError(t, err)
493+
494+
resp, err := http.DefaultClient.Do(req)
463495
require.NoError(t, err)
464-
defer resp.Body.Close()
465496

497+
defer resp.Body.Close()
466498
require.Equalf(t, http.StatusOK, resp.StatusCode, "Expected status code %d. Got %d.", http.StatusOK, resp.StatusCode)
467499
}
468500

@@ -529,8 +561,12 @@ func Test_BuildContainerFromDockerfileWithBuildArgs(t *testing.T) {
529561
ep, err := c.Endpoint(ctx, "http")
530562
require.NoError(t, err)
531563

532-
resp, err := http.Get(ep + "/env")
564+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, ep+"/env", http.NoBody)
565+
require.NoError(t, err)
566+
567+
resp, err := http.DefaultClient.Do(req)
533568
require.NoError(t, err)
569+
534570
defer resp.Body.Close()
535571

536572
body, err := io.ReadAll(resp.Body)
@@ -844,7 +880,8 @@ func ExampleContainer_MappedPort() {
844880
// buildingAddresses {
845881
ip, _ := nginxC.Host(ctx)
846882
port, _ := nginxC.MappedPort(ctx, "80")
847-
_, _ = http.Get(fmt.Sprintf("http://%s:%s", ip, port.Port()))
883+
req, _ := http.NewRequestWithContext(ctx, http.MethodGet, fmt.Sprintf("http://%s:%s", ip, port.Port()), http.NoBody)
884+
_, _ = http.DefaultClient.Do(req)
848885
// }
849886

850887
state, err := nginxC.State(ctx)

docs/features/creating_container.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ import (
6767
"net/http"
6868
"testing"
6969
70+
"github.com/stretchr/testify/require"
7071
"github.com/testcontainers/testcontainers-go"
7172
"github.com/testcontainers/testcontainers-go/wait"
7273
)
@@ -126,7 +127,13 @@ func TestIntegrationNginxLatestReturn(t *testing.T) {
126127
testcontainers.CleanupContainer(t, nginxC)
127128
require.NoError(t, err)
128129
129-
resp, err := http.Get(nginxC.URI)
130+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, nginxC.URI, http.NoBody)
131+
require.NoError(t, err)
132+
133+
resp, err := http.DefaultClient.Do(req)
134+
require.NoError(t, err)
135+
136+
defer resp.Body.Close()
130137
require.Equal(t, http.StatusOK, resp.StatusCode)
131138
}
132139
```

examples/nginx/nginx_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@ func TestIntegrationNginxLatestReturn(t *testing.T) {
2121
testcontainers.CleanupContainer(t, nginxC)
2222
require.NoError(t, err)
2323

24-
resp, err := http.Get(nginxC.URI)
24+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, nginxC.URI, http.NoBody)
2525
require.NoError(t, err)
26+
27+
resp, err := http.DefaultClient.Do(req)
28+
require.NoError(t, err)
29+
30+
defer resp.Body.Close()
2631
require.Equal(t, http.StatusOK, resp.StatusCode)
2732
}

generic_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ func TestGenericReusableContainerInSubprocess(t *testing.T) {
152152
func createReuseContainerInSubprocess(t *testing.T) string {
153153
t.Helper()
154154
// force verbosity in subprocesses, so that the output is printed
155-
cmd := exec.Command(os.Args[0], "-test.run=TestHelperContainerStarterProcess", "-test.v=true")
155+
cmd := exec.CommandContext(t.Context(), os.Args[0], "-test.run=TestHelperContainerStarterProcess", "-test.v=true")
156156
cmd.Env = append(os.Environ(), "GO_WANT_HELPER_PROCESS=1")
157157

158158
output, err := cmd.CombinedOutput()

internal/core/docker_host.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ var (
4444
// see https://github.com/testcontainers/testcontainers-java/blob/main/core/src/main/java/org/testcontainers/dockerclient/DockerClientConfigUtils.java#L46
4545
func DefaultGatewayIP() (string, error) {
4646
// see https://github.com/testcontainers/testcontainers-java/blob/3ad8d80e2484864e554744a4800a81f6b7982168/core/src/main/java/org/testcontainers/dockerclient/DockerClientConfigUtils.java#L27
47-
cmd := exec.Command("sh", "-c", "ip route|awk '/default/ { print $3 }'")
47+
cmd := exec.CommandContext(context.Background(), "sh", "-c", "ip route|awk '/default/ { print $3 }'")
4848
stdout, err := cmd.Output()
4949
if err != nil {
5050
return "", errors.New("failed to detect docker host")

0 commit comments

Comments
 (0)