mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-07 00:17:13 +00:00
119 lines
2.3 KiB
Go
119 lines
2.3 KiB
Go
package env
|
|
|
|
import (
|
|
"os"
|
|
"runtime"
|
|
"sort"
|
|
"testing"
|
|
|
|
"gotest.tools/assert"
|
|
"gotest.tools/fs"
|
|
"gotest.tools/skip"
|
|
)
|
|
|
|
func TestPatchFromUnset(t *testing.T) {
|
|
key, value := "FOO_IS_UNSET", "VALUE"
|
|
revert := Patch(t, key, value)
|
|
|
|
assert.Assert(t, value == os.Getenv(key))
|
|
revert()
|
|
_, isSet := os.LookupEnv(key)
|
|
assert.Assert(t, !isSet)
|
|
}
|
|
|
|
func TestPatch(t *testing.T) {
|
|
skip.If(t, os.Getenv("PATH") == "")
|
|
oldVal := os.Getenv("PATH")
|
|
|
|
key, value := "PATH", "NEWVALUE"
|
|
revert := Patch(t, key, value)
|
|
|
|
assert.Assert(t, value == os.Getenv(key))
|
|
revert()
|
|
assert.Assert(t, oldVal == os.Getenv(key))
|
|
}
|
|
|
|
func TestPatchAll(t *testing.T) {
|
|
oldEnv := os.Environ()
|
|
newEnv := map[string]string{
|
|
"FIRST": "STARS",
|
|
"THEN": "MOON",
|
|
}
|
|
|
|
revert := PatchAll(t, newEnv)
|
|
|
|
actual := os.Environ()
|
|
sort.Strings(actual)
|
|
assert.DeepEqual(t, []string{"FIRST=STARS", "THEN=MOON"}, actual)
|
|
|
|
revert()
|
|
assert.DeepEqual(t, sorted(oldEnv), sorted(os.Environ()))
|
|
}
|
|
|
|
func TestPatchAllWindows(t *testing.T) {
|
|
skip.If(t, runtime.GOOS != "windows")
|
|
oldEnv := os.Environ()
|
|
newEnv := map[string]string{
|
|
"FIRST": "STARS",
|
|
"THEN": "MOON",
|
|
"=FINAL": "SUN",
|
|
"=BAR": "",
|
|
}
|
|
|
|
revert := PatchAll(t, newEnv)
|
|
|
|
actual := os.Environ()
|
|
sort.Strings(actual)
|
|
assert.DeepEqual(t, []string{"=BAR=", "=FINAL=SUN", "FIRST=STARS", "THEN=MOON"}, actual)
|
|
|
|
revert()
|
|
assert.DeepEqual(t, sorted(oldEnv), sorted(os.Environ()))
|
|
}
|
|
|
|
func sorted(source []string) []string {
|
|
sort.Strings(source)
|
|
return source
|
|
}
|
|
|
|
func TestToMap(t *testing.T) {
|
|
source := []string{
|
|
"key=value",
|
|
"novaluekey",
|
|
"=foo=bar",
|
|
"z=singlecharkey",
|
|
"b",
|
|
"",
|
|
}
|
|
actual := ToMap(source)
|
|
expected := map[string]string{
|
|
"key": "value",
|
|
"novaluekey": "",
|
|
"=foo": "bar",
|
|
"z": "singlecharkey",
|
|
"b": "",
|
|
"": "",
|
|
}
|
|
assert.DeepEqual(t, expected, actual)
|
|
}
|
|
|
|
func TestChangeWorkingDir(t *testing.T) {
|
|
tmpDir := fs.NewDir(t, t.Name())
|
|
defer tmpDir.Remove()
|
|
|
|
origWorkDir, err := os.Getwd()
|
|
assert.NilError(t, err)
|
|
|
|
reset := ChangeWorkingDir(t, tmpDir.Path())
|
|
t.Run("changed to dir", func(t *testing.T) {
|
|
wd, err := os.Getwd()
|
|
assert.NilError(t, err)
|
|
assert.Equal(t, wd, tmpDir.Path())
|
|
})
|
|
|
|
t.Run("reset dir", func(t *testing.T) {
|
|
reset()
|
|
wd, err := os.Getwd()
|
|
assert.NilError(t, err)
|
|
assert.Equal(t, wd, origWorkDir)
|
|
})
|
|
}
|