Sfoglia il codice sorgente

test: replace os.Setenv with t.Setenv()

Use t.Setenv() which automatically restores the original value when
the test completes, eliminating the need for manual cleanup.

Go 1.18 modernization pattern.

Assisted-By: cagent
Signed-off-by: David Gageot <[email protected]>
David Gageot 2 giorni fa
parent
commit
bcc0401e0e
2 ha cambiato i file con 26 aggiunte e 48 eliminazioni
  1. 13 35
      pkg/compose/loader_test.go
  2. 13 13
      pkg/watch/notify_test.go

+ 13 - 35
pkg/compose/loader_test.go

@@ -17,7 +17,6 @@
 package compose
 
 import (
-	"context"
 	"os"
 	"path/filepath"
 	"testing"
@@ -48,13 +47,11 @@ services:
 	err := os.WriteFile(composeFile, []byte(composeContent), 0o644)
 	require.NoError(t, err)
 
-	// Create compose service
 	service, err := NewComposeService(nil)
 	require.NoError(t, err)
 
 	// Load the project
-	ctx := context.Background()
-	project, err := service.LoadProject(ctx, api.ProjectLoadOptions{
+	project, err := service.LoadProject(t.Context(), api.ProjectLoadOptions{
 		ConfigPaths: []string{composeFile},
 	})
 
@@ -87,19 +84,14 @@ services:
 	require.NoError(t, err)
 
 	// Set environment variable
-	require.NoError(t, os.Setenv("TEST_VAR", "resolved_value"))
-	t.Cleanup(func() {
-		require.NoError(t, os.Unsetenv("TEST_VAR"))
-	})
+	t.Setenv("TEST_VAR", "resolved_value")
 
 	service, err := NewComposeService(nil)
 	require.NoError(t, err)
 
-	ctx := context.Background()
-
 	// Test with environment resolution (default)
 	t.Run("WithResolution", func(t *testing.T) {
-		project, err := service.LoadProject(ctx, api.ProjectLoadOptions{
+		project, err := service.LoadProject(t.Context(), api.ProjectLoadOptions{
 			ConfigPaths: []string{composeFile},
 		})
 		require.NoError(t, err)
@@ -114,7 +106,7 @@ services:
 
 	// Test without environment resolution
 	t.Run("WithoutResolution", func(t *testing.T) {
-		project, err := service.LoadProject(ctx, api.ProjectLoadOptions{
+		project, err := service.LoadProject(t.Context(), api.ProjectLoadOptions{
 			ConfigPaths:       []string{composeFile},
 			ProjectOptionsFns: []cli.ProjectOptionsFn{cli.WithoutEnvironmentResolution},
 		})
@@ -145,10 +137,8 @@ services:
 	service, err := NewComposeService(nil)
 	require.NoError(t, err)
 
-	ctx := context.Background()
-
 	// Load only specific services
-	project, err := service.LoadProject(ctx, api.ProjectLoadOptions{
+	project, err := service.LoadProject(t.Context(), api.ProjectLoadOptions{
 		ConfigPaths: []string{composeFile},
 		Services:    []string{"web", "db"},
 	})
@@ -177,11 +167,9 @@ services:
 	service, err := NewComposeService(nil)
 	require.NoError(t, err)
 
-	ctx := context.Background()
-
 	// Without debug profile
 	t.Run("WithoutProfile", func(t *testing.T) {
-		project, err := service.LoadProject(ctx, api.ProjectLoadOptions{
+		project, err := service.LoadProject(t.Context(), api.ProjectLoadOptions{
 			ConfigPaths: []string{composeFile},
 		})
 		require.NoError(t, err)
@@ -191,7 +179,7 @@ services:
 
 	// With debug profile
 	t.Run("WithProfile", func(t *testing.T) {
-		project, err := service.LoadProject(ctx, api.ProjectLoadOptions{
+		project, err := service.LoadProject(t.Context(), api.ProjectLoadOptions{
 			ConfigPaths: []string{composeFile},
 			Profiles:    []string{"debug"},
 		})
@@ -216,15 +204,13 @@ services:
 	service, err := NewComposeService(nil)
 	require.NoError(t, err)
 
-	ctx := context.Background()
-
 	// Track events received
 	var events []string
 	listener := func(event string, metadata map[string]any) {
 		events = append(events, event)
 	}
 
-	project, err := service.LoadProject(ctx, api.ProjectLoadOptions{
+	project, err := service.LoadProject(t.Context(), api.ProjectLoadOptions{
 		ConfigPaths:   []string{composeFile},
 		LoadListeners: []api.LoadListener{listener},
 	})
@@ -251,11 +237,9 @@ services:
 	service, err := NewComposeService(nil)
 	require.NoError(t, err)
 
-	ctx := context.Background()
-
 	// Without explicit project name
 	t.Run("InferredName", func(t *testing.T) {
-		project, err := service.LoadProject(ctx, api.ProjectLoadOptions{
+		project, err := service.LoadProject(t.Context(), api.ProjectLoadOptions{
 			ConfigPaths: []string{composeFile},
 		})
 		require.NoError(t, err)
@@ -265,7 +249,7 @@ services:
 
 	// With explicit project name
 	t.Run("ExplicitName", func(t *testing.T) {
-		project, err := service.LoadProject(ctx, api.ProjectLoadOptions{
+		project, err := service.LoadProject(t.Context(), api.ProjectLoadOptions{
 			ConfigPaths: []string{composeFile},
 			ProjectName: "my-custom-project",
 		})
@@ -288,10 +272,8 @@ services:
 	service, err := NewComposeService(nil)
 	require.NoError(t, err)
 
-	ctx := context.Background()
-
 	// With compatibility mode
-	project, err := service.LoadProject(ctx, api.ProjectLoadOptions{
+	project, err := service.LoadProject(t.Context(), api.ProjectLoadOptions{
 		ConfigPaths:   []string{composeFile},
 		Compatibility: true,
 	})
@@ -317,10 +299,8 @@ this is not valid yaml: [[[
 	service, err := NewComposeService(nil)
 	require.NoError(t, err)
 
-	ctx := context.Background()
-
 	// Should return an error for invalid YAML
-	project, err := service.LoadProject(ctx, api.ProjectLoadOptions{
+	project, err := service.LoadProject(t.Context(), api.ProjectLoadOptions{
 		ConfigPaths: []string{composeFile},
 	})
 
@@ -332,10 +312,8 @@ func TestLoadProject_MissingComposeFile(t *testing.T) {
 	service, err := NewComposeService(nil)
 	require.NoError(t, err)
 
-	ctx := context.Background()
-
 	// Should return an error for missing file
-	project, err := service.LoadProject(ctx, api.ProjectLoadOptions{
+	project, err := service.LoadProject(t.Context(), api.ProjectLoadOptions{
 		ConfigPaths: []string{"/nonexistent/compose.yaml"},
 	})
 

+ 13 - 13
pkg/watch/notify_test.go

@@ -35,20 +35,20 @@ import (
 // behavior.
 
 func TestWindowsBufferSize(t *testing.T) {
-	orig := os.Getenv(WindowsBufferSizeEnvVar)
-	defer os.Setenv(WindowsBufferSizeEnvVar, orig) //nolint:errcheck
+	t.Run("empty value", func(t *testing.T) {
+		t.Setenv(WindowsBufferSizeEnvVar, "")
+		assert.Equal(t, defaultBufferSize, DesiredWindowsBufferSize())
+	})
 
-	err := os.Setenv(WindowsBufferSizeEnvVar, "")
-	require.NoError(t, err)
-	assert.Equal(t, defaultBufferSize, DesiredWindowsBufferSize())
-
-	err = os.Setenv(WindowsBufferSizeEnvVar, "a")
-	require.NoError(t, err)
-	assert.Equal(t, defaultBufferSize, DesiredWindowsBufferSize())
+	t.Run("invalid value", func(t *testing.T) {
+		t.Setenv(WindowsBufferSizeEnvVar, "a")
+		assert.Equal(t, defaultBufferSize, DesiredWindowsBufferSize())
+	})
 
-	err = os.Setenv(WindowsBufferSizeEnvVar, "10")
-	require.NoError(t, err)
-	assert.Equal(t, 10, DesiredWindowsBufferSize())
+	t.Run("valid value", func(t *testing.T) {
+		t.Setenv(WindowsBufferSizeEnvVar, "10")
+		assert.Equal(t, 10, DesiredWindowsBufferSize())
+	})
 }
 
 func TestNoEvents(t *testing.T) {
@@ -114,7 +114,7 @@ func TestGitBranchSwitch(t *testing.T) {
 	f.events = nil
 
 	// consume all the events in the background
-	ctx, cancel := context.WithCancel(context.Background())
+	ctx, cancel := context.WithCancel(t.Context())
 	done := f.consumeEventsInBackground(ctx)
 
 	for i, dir := range dirs {