Skip to content

Commit

Permalink
test: make sure environment vars are reset after tests
Browse files Browse the repository at this point in the history
The trust tests were not resetting the environment after they
ran, which could result in tests following those tests to fail.

While at it, I also updated some other tests to use gotest.tools

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
  • Loading branch information
thaJeztah committed Apr 9, 2020
1 parent 2f494e1 commit 19bcebd
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 37 deletions.
16 changes: 3 additions & 13 deletions cli/command/image/trust_test.go
Expand Up @@ -11,19 +11,12 @@ import (
"github.com/theupdateframework/notary/passphrase"
"github.com/theupdateframework/notary/trustpinning"
"gotest.tools/v3/assert"
"gotest.tools/v3/env"
)

func unsetENV() {
os.Unsetenv("DOCKER_CONTENT_TRUST")
os.Unsetenv("DOCKER_CONTENT_TRUST_SERVER")
}

func TestENVTrustServer(t *testing.T) {
defer unsetENV()
defer env.PatchAll(t, map[string]string{"DOCKER_CONTENT_TRUST_SERVER": "https://notary-test.com:5000"})()
indexInfo := &registrytypes.IndexInfo{Name: "testserver"}
if err := os.Setenv("DOCKER_CONTENT_TRUST_SERVER", "https://notary-test.com:5000"); err != nil {
t.Fatal("Failed to set ENV variable")
}
output, err := trust.Server(indexInfo)
expectedStr := "https://notary-test.com:5000"
if err != nil || output != expectedStr {
Expand All @@ -32,11 +25,8 @@ func TestENVTrustServer(t *testing.T) {
}

func TestHTTPENVTrustServer(t *testing.T) {
defer unsetENV()
defer env.PatchAll(t, map[string]string{"DOCKER_CONTENT_TRUST_SERVER": "http://notary-test.com:5000"})()
indexInfo := &registrytypes.IndexInfo{Name: "testserver"}
if err := os.Setenv("DOCKER_CONTENT_TRUST_SERVER", "http://notary-test.com:5000"); err != nil {
t.Fatal("Failed to set ENV variable")
}
_, err := trust.Server(indexInfo)
if err == nil {
t.Fatal("Expected error with invalid scheme")
Expand Down
29 changes: 5 additions & 24 deletions cli/config/config_test.go
Expand Up @@ -16,6 +16,7 @@ import (
"github.com/pkg/errors"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/env"
)

var homeKey = "HOME"
Expand Down Expand Up @@ -120,12 +121,7 @@ email`: "Invalid auth configuration file",
tmpHome, err := ioutil.TempDir("", "config-test")
assert.NilError(t, err)
defer os.RemoveAll(tmpHome)

homeDir, err := os.UserHomeDir()
assert.NilError(t, err)

defer func() { os.Setenv(homeKey, homeDir) }()
os.Setenv(homeKey, tmpHome)
defer env.Patch(t, homeKey, tmpHome)()

for content, expectedError := range invalids {
fn := filepath.Join(tmpHome, oldConfigfile)
Expand All @@ -141,12 +137,7 @@ func TestOldValidAuth(t *testing.T) {
tmpHome, err := ioutil.TempDir("", "config-test")
assert.NilError(t, err)
defer os.RemoveAll(tmpHome)

homeDir, err := os.UserHomeDir()
assert.NilError(t, err)

defer func() { os.Setenv(homeKey, homeDir) }()
os.Setenv(homeKey, tmpHome)
defer env.Patch(t, homeKey, tmpHome)()

fn := filepath.Join(tmpHome, oldConfigfile)
js := `username = am9lam9lOmhlbGxv
Expand Down Expand Up @@ -180,12 +171,7 @@ func TestOldJSONInvalid(t *testing.T) {
tmpHome, err := ioutil.TempDir("", "config-test")
assert.NilError(t, err)
defer os.RemoveAll(tmpHome)

homeDir, err := os.UserHomeDir()
assert.NilError(t, err)

defer func() { os.Setenv(homeKey, homeDir) }()
os.Setenv(homeKey, tmpHome)
defer env.Patch(t, homeKey, tmpHome)()

fn := filepath.Join(tmpHome, oldConfigfile)
js := `{"https://index.docker.io/v1/":{"auth":"test","email":"user@example.com"}}`
Expand All @@ -204,12 +190,7 @@ func TestOldJSON(t *testing.T) {
tmpHome, err := ioutil.TempDir("", "config-test")
assert.NilError(t, err)
defer os.RemoveAll(tmpHome)

homeDir, err := os.UserHomeDir()
assert.NilError(t, err)

defer func() { os.Setenv(homeKey, homeDir) }()
os.Setenv(homeKey, tmpHome)
defer env.Patch(t, homeKey, tmpHome)()

fn := filepath.Join(tmpHome, oldConfigfile)
js := `{"https://index.docker.io/v1/":{"auth":"am9lam9lOmhlbGxv","email":"user@example.com"}}`
Expand Down

0 comments on commit 19bcebd

Please sign in to comment.