From 483af656e6ec51ff1263743eb4957d7d70e6c51f Mon Sep 17 00:00:00 2001 From: Eng Zer Jun Date: Tue, 19 Dec 2023 10:08:45 +0800 Subject: test: use `t.Setenv` to set env vars in tests (#1940) * test: use `t.Setenv` to set env vars in tests This commit replaces `os.Setenv` with `t.Setenv` in tests. The environment variable is automatically restored to its original value when the test and all its subtests complete. Reference: https://pkg.go.dev/testing#T.Setenv Signed-off-by: Eng Zer Jun * minor adjustments Signed-off-by: Dave Henderson --------- Signed-off-by: Eng Zer Jun Signed-off-by: Dave Henderson Co-authored-by: Dave Henderson --- data/datasource_git_test.go | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) (limited to 'data/datasource_git_test.go') diff --git a/data/datasource_git_test.go b/data/datasource_git_test.go index 3f74a620..3b187ecc 100644 --- a/data/datasource_git_test.go +++ b/data/datasource_git_test.go @@ -484,15 +484,13 @@ func TestGitAuth(t *testing.T) { assert.NilError(t, err) assert.DeepEqual(t, &http.BasicAuth{Username: "user", Password: "swordfish"}, a) - os.Setenv("GIT_HTTP_PASSWORD", "swordfish") - defer os.Unsetenv("GIT_HTTP_PASSWORD") + t.Setenv("GIT_HTTP_PASSWORD", "swordfish") a, err = g.auth(mustParseURL("git+https://user@example.com/foo")) assert.NilError(t, err) assert.DeepEqual(t, &http.BasicAuth{Username: "user", Password: "swordfish"}, a) os.Unsetenv("GIT_HTTP_PASSWORD") - os.Setenv("GIT_HTTP_TOKEN", "mytoken") - defer os.Unsetenv("GIT_HTTP_TOKEN") + t.Setenv("GIT_HTTP_TOKEN", "mytoken") a, err = g.auth(mustParseURL("git+https://user@example.com/foo")) assert.NilError(t, err) assert.DeepEqual(t, &http.TokenAuth{Token: "mytoken"}, a) @@ -508,25 +506,26 @@ func TestGitAuth(t *testing.T) { assert.Equal(t, "git", sa.User) } - key := string(testdata.PEMBytes["ed25519"]) - os.Setenv("GIT_SSH_KEY", key) - defer os.Unsetenv("GIT_SSH_KEY") - a, err = g.auth(mustParseURL("git+ssh://git@example.com/foo")) - assert.NilError(t, err) - ka, ok := a.(*ssh.PublicKeys) - assert.Equal(t, true, ok) - assert.Equal(t, "git", ka.User) - os.Unsetenv("GIT_SSH_KEY") - - key = base64.StdEncoding.EncodeToString(testdata.PEMBytes["ed25519"]) - os.Setenv("GIT_SSH_KEY", key) - defer os.Unsetenv("GIT_SSH_KEY") - a, err = g.auth(mustParseURL("git+ssh://git@example.com/foo")) - assert.NilError(t, err) - ka, ok = a.(*ssh.PublicKeys) - assert.Equal(t, true, ok) - assert.Equal(t, "git", ka.User) - os.Unsetenv("GIT_SSH_KEY") + t.Run("plain string ed25519", func(t *testing.T) { + key := string(testdata.PEMBytes["ed25519"]) + t.Setenv("GIT_SSH_KEY", key) + a, err = g.auth(mustParseURL("git+ssh://git@example.com/foo")) + assert.NilError(t, err) + ka, ok := a.(*ssh.PublicKeys) + assert.Equal(t, true, ok) + assert.Equal(t, "git", ka.User) + }) + + t.Run("base64 ed25519", func(t *testing.T) { + key := base64.StdEncoding.EncodeToString(testdata.PEMBytes["ed25519"]) + t.Setenv("GIT_SSH_KEY", key) + a, err = g.auth(mustParseURL("git+ssh://git@example.com/foo")) + assert.NilError(t, err) + ka, ok := a.(*ssh.PublicKeys) + assert.Equal(t, true, ok) + assert.Equal(t, "git", ka.User) + os.Unsetenv("GIT_SSH_KEY") + }) } func TestRefFromURL(t *testing.T) { -- cgit v1.2.3