test: Use `t.Setenv` to set env vars (#12621)

This commit is contained in:
Eng Zer Jun 2023-02-10 18:46:14 +08:00 committed by GitHub
parent aa0b9d7dcf
commit 4d0f05980e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 62 additions and 63 deletions

View File

@ -58,8 +58,8 @@ func TestReadBinaryFile(t *testing.T) {
func TestConfig_LoadSingleInputWithEnvVars(t *testing.T) { func TestConfig_LoadSingleInputWithEnvVars(t *testing.T) {
c := NewConfig() c := NewConfig()
require.NoError(t, os.Setenv("MY_TEST_SERVER", "192.168.1.1")) t.Setenv("MY_TEST_SERVER", "192.168.1.1")
require.NoError(t, os.Setenv("TEST_INTERVAL", "10s")) t.Setenv("TEST_INTERVAL", "10s")
require.NoError(t, c.LoadConfig("./testdata/single_plugin_env_vars.toml")) require.NoError(t, c.LoadConfig("./testdata/single_plugin_env_vars.toml"))
input := inputs.Inputs["memcached"]().(*MockupInputPlugin) input := inputs.Inputs["memcached"]().(*MockupInputPlugin)

View File

@ -3,7 +3,6 @@ package config
import ( import (
"errors" "errors"
"fmt" "fmt"
"os"
"testing" "testing"
"github.com/awnumar/memguard" "github.com/awnumar/memguard"
@ -325,7 +324,7 @@ func TestSecretEnvironmentVariable(t *testing.T) {
[[inputs.mockup]] [[inputs.mockup]]
secret = "$SOME_ENV_SECRET" secret = "$SOME_ENV_SECRET"
`) `)
require.NoError(t, os.Setenv("SOME_ENV_SECRET", "an env secret")) t.Setenv("SOME_ENV_SECRET", "an env secret")
c := NewConfig() c := NewConfig()
err := c.LoadConfigData(cfg) err := c.LoadConfigData(cfg)

View File

@ -609,7 +609,7 @@ func TestDiskUsageIssues(t *testing.T) {
// Get the partitions in the test-case // Get the partitions in the test-case
os.Clearenv() os.Clearenv()
require.NoError(t, os.Setenv("HOST_PROC", hostProcPrefix)) t.Setenv("HOST_PROC", hostProcPrefix)
partitions, err := diskUtil.Partitions(true) partitions, err := diskUtil.Partitions(true)
require.NoError(t, err) require.NoError(t, err)

View File

@ -1,7 +1,6 @@
package ecs package ecs
import ( import (
"os"
"testing" "testing"
"time" "time"
@ -774,8 +773,7 @@ func TestResolveEndpoint(t *testing.T) {
name string name string
given Ecs given Ecs
exp Ecs exp Ecs
preF func() setEnv func(*testing.T)
afterF func()
}{ }{
{ {
name: "Endpoint is explicitly set => use v2 metadata", name: "Endpoint is explicitly set => use v2 metadata",
@ -799,11 +797,8 @@ func TestResolveEndpoint(t *testing.T) {
}, },
{ {
name: "Endpoint is not set, ECS_CONTAINER_METADATA_URI is set => use v3 metadata", name: "Endpoint is not set, ECS_CONTAINER_METADATA_URI is set => use v3 metadata",
preF: func() { setEnv: func(t *testing.T) {
require.NoError(t, os.Setenv("ECS_CONTAINER_METADATA_URI", "v3-endpoint.local")) t.Setenv("ECS_CONTAINER_METADATA_URI", "v3-endpoint.local")
},
afterF: func() {
require.NoError(t, os.Unsetenv("ECS_CONTAINER_METADATA_URI"))
}, },
given: Ecs{ given: Ecs{
EndpointURL: "", EndpointURL: "",
@ -816,11 +811,8 @@ func TestResolveEndpoint(t *testing.T) {
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
if tt.preF != nil { if tt.setEnv != nil {
tt.preF() tt.setEnv(t)
}
if tt.afterF != nil {
defer tt.afterF()
} }
act := tt.given act := tt.given

View File

@ -3,7 +3,6 @@ package shim
import ( import (
"bufio" "bufio"
"io" "io"
"os"
"strings" "strings"
"testing" "testing"
"time" "time"
@ -113,8 +112,8 @@ func (i *testInput) Stop() {
} }
func TestLoadConfig(t *testing.T) { func TestLoadConfig(t *testing.T) {
require.NoError(t, os.Setenv("SECRET_TOKEN", "xxxxxxxxxx")) t.Setenv("SECRET_TOKEN", "xxxxxxxxxx")
require.NoError(t, os.Setenv("SECRET_VALUE", `test"\test`)) t.Setenv("SECRET_VALUE", `test"\test`)
inputs.Add("test", func() telegraf.Input { inputs.Add("test", func() telegraf.Input {
return &serviceInput{} return &serviceInput{}

View File

@ -140,10 +140,8 @@ func testMain(t *testing.T, code string, endpoint string, serverType ServerType)
currentWorkingDirectory, err := os.Getwd() currentWorkingDirectory, err := os.Getwd()
require.NoError(t, err) require.NoError(t, err)
envPathOrigin := os.Getenv("PATH")
// Refer to the fake snmpwalk // Refer to the fake snmpwalk
require.NoError(t, os.Setenv("PATH", currentWorkingDirectory)) t.Setenv("PATH", currentWorkingDirectory)
defer os.Setenv("PATH", envPathOrigin)
l := &LeoFS{ l := &LeoFS{
Servers: []string{endpoint}, Servers: []string{endpoint},

View File

@ -3,15 +3,15 @@ package prometheus
import ( import (
"errors" "errors"
"fmt" "fmt"
"github.com/influxdata/telegraf/config"
"math" "math"
"net/http" "net/http"
"net/http/httptest" "net/http/httptest"
"net/url" "net/url"
"os"
"testing" "testing"
"time" "time"
"github.com/influxdata/telegraf/config"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/fields"
@ -413,30 +413,35 @@ func TestInitConfigErrors(t *testing.T) {
} }
// Both invalid IP addresses // Both invalid IP addresses
p.NodeIP = "10.240.0.0.0" t.Run("Both invalid IP addresses", func(t *testing.T) {
require.NoError(t, os.Setenv("NODE_IP", "10.000.0.0.0")) p.NodeIP = "10.240.0.0.0"
err := p.Init() t.Setenv("NODE_IP", "10.000.0.0.0")
require.Error(t, err) err := p.Init()
expectedMessage := "the node_ip config and the environment variable NODE_IP are not set or invalid; " + require.Error(t, err)
"cannot get pod list for monitor_kubernetes_pods using node scrape scope" expectedMessage := "the node_ip config and the environment variable NODE_IP are not set or invalid; " +
require.Equal(t, expectedMessage, err.Error()) "cannot get pod list for monitor_kubernetes_pods using node scrape scope"
require.NoError(t, os.Setenv("NODE_IP", "10.000.0.0")) require.Equal(t, expectedMessage, err.Error())
})
p.KubernetesLabelSelector = "label0==label0, label0 in (=)" t.Run("Valid IP address", func(t *testing.T) {
err = p.Init() t.Setenv("NODE_IP", "10.000.0.0")
expectedMessage = "error parsing the specified label selector(s): unable to parse requirement: found '=', expected: ',', ')' or identifier"
require.Error(t, err, expectedMessage)
p.KubernetesLabelSelector = "label0==label"
p.KubernetesFieldSelector = "field," p.KubernetesLabelSelector = "label0==label0, label0 in (=)"
err = p.Init() err := p.Init()
expectedMessage = "error parsing the specified field selector(s): invalid selector: 'field,'; can't understand 'field'" expectedMessage := "error parsing the specified label selector(s): unable to parse requirement: found '=', expected: ',', ')' or identifier"
require.Error(t, err, expectedMessage) require.Error(t, err, expectedMessage)
p.KubernetesLabelSelector = "label0==label"
p.KubernetesFieldSelector = "spec.containerNames=containerNames" p.KubernetesFieldSelector = "field,"
err = p.Init() err = p.Init()
expectedMessage = "the field selector spec.containerNames is not supported for pods" expectedMessage = "error parsing the specified field selector(s): invalid selector: 'field,'; can't understand 'field'"
require.Error(t, err, expectedMessage) require.Error(t, err, expectedMessage)
p.KubernetesFieldSelector = "spec.containerNames=containerNames"
err = p.Init()
expectedMessage = "the field selector spec.containerNames is not supported for pods"
require.Error(t, err, expectedMessage)
})
} }
func TestInitConfigSelectors(t *testing.T) { func TestInitConfigSelectors(t *testing.T) {

View File

@ -8,26 +8,32 @@ import (
) )
func TestDockerHost(t *testing.T) { func TestDockerHost(t *testing.T) {
err := os.Unsetenv("DOCKER_HOST") t.Run("no DOCKER_HOST set", func(t *testing.T) {
require.NoError(t, err) err := os.Unsetenv("DOCKER_HOST")
require.NoError(t, err)
host := GetLocalHost() host := GetLocalHost()
if host != localhost { if host != localhost {
t.Fatalf("Host should be localhost when DOCKER_HOST is not set. Current value [%s]", host) t.Fatalf("Host should be localhost when DOCKER_HOST is not set. Current value [%s]", host)
} }
})
t.Setenv("DOCKER_HOST", "1.1.1.1") t.Run("DOCKER_HOST with IP address only", func(t *testing.T) {
host = GetLocalHost() t.Setenv("DOCKER_HOST", "1.1.1.1")
if host != "1.1.1.1" { host := GetLocalHost()
t.Fatalf("Host should take DOCKER_HOST value when set. Current value is [%s] and DOCKER_HOST is [%s]", host, os.Getenv("DOCKER_HOST")) if host != "1.1.1.1" {
} t.Fatalf("Host should take DOCKER_HOST value when set. Current value is [%s] and DOCKER_HOST is [%s]", host, os.Getenv("DOCKER_HOST"))
}
})
t.Setenv("DOCKER_HOST", "tcp://1.1.1.1:8080") t.Run("DOCKER_HOST with protocol, IP address, and port", func(t *testing.T) {
host = GetLocalHost() t.Setenv("DOCKER_HOST", "tcp://1.1.1.1:8080")
if host != "1.1.1.1" { host := GetLocalHost()
t.Fatalf("Host should take DOCKER_HOST value when set. Current value is [%s] and DOCKER_HOST is [%s]", host, os.Getenv("DOCKER_HOST")) if host != "1.1.1.1" {
} t.Fatalf("Host should take DOCKER_HOST value when set. Current value is [%s] and DOCKER_HOST is [%s]", host, os.Getenv("DOCKER_HOST"))
}
})
} }