route/vendor/github.com/hashicorp/go-getter/util_test.go

50 lines
947 B
Go

package getter
import (
"io"
"io/ioutil"
"os"
"strings"
"testing"
)
// tempEnv sets the env var temporarily and returns a function that should
// be deferred to clean it up.
func tempEnv(t *testing.T, k, v string) func() {
old := os.Getenv(k)
// Set env
if err := os.Setenv(k, v); err != nil {
t.Fatalf("err: %s", err)
}
// Easy cleanup
return func() {
if err := os.Setenv(k, old); err != nil {
t.Fatalf("err: %s", err)
}
}
}
// tempFileContents writes a temporary file and returns the path and a function
// to clean it up.
func tempFileContents(t *testing.T, contents string) (string, func()) {
tf, err := ioutil.TempFile("", "getter")
if err != nil {
t.Fatalf("err: %s", err)
}
if _, err := io.Copy(tf, strings.NewReader(contents)); err != nil {
t.Fatalf("err: %s", err)
}
tf.Close()
path := tf.Name()
return path, func() {
if err := os.Remove(path); err != nil {
t.Fatalf("err: %s", err)
}
}
}