mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Use gotestyourself env patching
Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
parent
ee9abc2120
commit
2b445a53c1
1 changed files with 13 additions and 55 deletions
|
@ -6,18 +6,19 @@ import (
|
|||
"net/url"
|
||||
"os"
|
||||
"runtime"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/docker/docker/api"
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/internal/testutil"
|
||||
"github.com/gotestyourself/gotestyourself/env"
|
||||
"github.com/gotestyourself/gotestyourself/skip"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestNewEnvClient(t *testing.T) {
|
||||
skip.IfCondition(t, runtime.GOOS == "windows")
|
||||
skip.If(t, runtime.GOOS == "windows")
|
||||
|
||||
testcases := []struct {
|
||||
doc string
|
||||
|
@ -83,10 +84,9 @@ func TestNewEnvClient(t *testing.T) {
|
|||
},
|
||||
}
|
||||
|
||||
env := envToMap()
|
||||
defer mapToEnv(env)
|
||||
defer env.PatchAll(t, nil)()
|
||||
for _, c := range testcases {
|
||||
mapToEnv(c.envs)
|
||||
env.PatchAll(t, c.envs)
|
||||
apiclient, err := NewEnvClient()
|
||||
if c.expectedError != "" {
|
||||
assert.Error(t, err, c.doc)
|
||||
|
@ -196,16 +196,12 @@ func TestParseHostURL(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestNewEnvClientSetsDefaultVersion(t *testing.T) {
|
||||
env := envToMap()
|
||||
defer mapToEnv(env)
|
||||
|
||||
envMap := map[string]string{
|
||||
defer env.PatchAll(t, map[string]string{
|
||||
"DOCKER_HOST": "",
|
||||
"DOCKER_API_VERSION": "",
|
||||
"DOCKER_TLS_VERIFY": "",
|
||||
"DOCKER_CERT_PATH": "",
|
||||
}
|
||||
mapToEnv(envMap)
|
||||
})()
|
||||
|
||||
client, err := NewEnvClient()
|
||||
if err != nil {
|
||||
|
@ -225,18 +221,10 @@ func TestNewEnvClientSetsDefaultVersion(t *testing.T) {
|
|||
// TestNegotiateAPIVersionEmpty asserts that client.Client can
|
||||
// negotiate a compatible APIVersion when omitted
|
||||
func TestNegotiateAPIVersionEmpty(t *testing.T) {
|
||||
env := envToMap()
|
||||
defer mapToEnv(env)
|
||||
|
||||
envMap := map[string]string{
|
||||
"DOCKER_API_VERSION": "",
|
||||
}
|
||||
mapToEnv(envMap)
|
||||
defer env.PatchAll(t, map[string]string{"DOCKER_API_VERSION": ""})
|
||||
|
||||
client, err := NewEnvClient()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
ping := types.Ping{
|
||||
APIVersion: "",
|
||||
|
@ -260,12 +248,9 @@ func TestNegotiateAPIVersionEmpty(t *testing.T) {
|
|||
// negotiate a compatible APIVersion with the server
|
||||
func TestNegotiateAPIVersion(t *testing.T) {
|
||||
client, err := NewEnvClient()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
expected := "1.21"
|
||||
|
||||
ping := types.Ping{
|
||||
APIVersion: expected,
|
||||
OSType: "linux",
|
||||
|
@ -291,18 +276,11 @@ func TestNegotiateAPIVersion(t *testing.T) {
|
|||
// TestNegotiateAPIVersionOverride asserts that we honor
|
||||
// the environment variable DOCKER_API_VERSION when negotianing versions
|
||||
func TestNegotiateAPVersionOverride(t *testing.T) {
|
||||
env := envToMap()
|
||||
defer mapToEnv(env)
|
||||
|
||||
envMap := map[string]string{
|
||||
"DOCKER_API_VERSION": "9.99",
|
||||
}
|
||||
mapToEnv(envMap)
|
||||
expected := "9.99"
|
||||
defer env.PatchAll(t, map[string]string{"DOCKER_API_VERSION": expected})()
|
||||
|
||||
client, err := NewEnvClient()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
ping := types.Ping{
|
||||
APIVersion: "1.24",
|
||||
|
@ -310,31 +288,11 @@ func TestNegotiateAPVersionOverride(t *testing.T) {
|
|||
Experimental: false,
|
||||
}
|
||||
|
||||
expected := envMap["DOCKER_API_VERSION"]
|
||||
|
||||
// test that we honored the env var
|
||||
client.NegotiateAPIVersionPing(ping)
|
||||
assert.Equal(t, expected, client.version)
|
||||
}
|
||||
|
||||
// mapToEnv takes a map of environment variables and sets them
|
||||
func mapToEnv(env map[string]string) {
|
||||
for k, v := range env {
|
||||
os.Setenv(k, v)
|
||||
}
|
||||
}
|
||||
|
||||
// envToMap returns a map of environment variables
|
||||
func envToMap() map[string]string {
|
||||
env := make(map[string]string)
|
||||
for _, e := range os.Environ() {
|
||||
kv := strings.SplitAfterN(e, "=", 2)
|
||||
env[kv[0]] = kv[1]
|
||||
}
|
||||
|
||||
return env
|
||||
}
|
||||
|
||||
type roundTripFunc func(*http.Request) (*http.Response, error)
|
||||
|
||||
func (rtf roundTripFunc) RoundTrip(req *http.Request) (*http.Response, error) {
|
||||
|
|
Loading…
Add table
Reference in a new issue