mirror of https://github.com/docker/cli.git
Merge pull request #3203 from thaJeztah/no_custom_http_headers
cli/command: don't use client.CustomHTTPHeaders()
This commit is contained in:
commit
13e4a097ea
|
@ -6,8 +6,11 @@ import (
|
||||||
"crypto/x509"
|
"crypto/x509"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"net/http"
|
||||||
|
"net/http/httptest"
|
||||||
"os"
|
"os"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
cliconfig "github.com/docker/cli/cli/config"
|
cliconfig "github.com/docker/cli/cli/config"
|
||||||
|
@ -18,7 +21,6 @@ import (
|
||||||
"github.com/docker/docker/client"
|
"github.com/docker/docker/client"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"gotest.tools/v3/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/v3/assert/cmp"
|
|
||||||
"gotest.tools/v3/env"
|
"gotest.tools/v3/env"
|
||||||
"gotest.tools/v3/fs"
|
"gotest.tools/v3/fs"
|
||||||
)
|
)
|
||||||
|
@ -29,42 +31,54 @@ func TestNewAPIClientFromFlags(t *testing.T) {
|
||||||
host = "npipe://./"
|
host = "npipe://./"
|
||||||
}
|
}
|
||||||
opts := &flags.CommonOptions{Hosts: []string{host}}
|
opts := &flags.CommonOptions{Hosts: []string{host}}
|
||||||
configFile := &configfile.ConfigFile{
|
apiClient, err := NewAPIClientFromFlags(opts, &configfile.ConfigFile{})
|
||||||
HTTPHeaders: map[string]string{
|
|
||||||
"My-Header": "Custom-Value",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
apiclient, err := NewAPIClientFromFlags(opts, configFile)
|
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
assert.Check(t, is.Equal(host, apiclient.DaemonHost()))
|
assert.Equal(t, apiClient.DaemonHost(), host)
|
||||||
|
assert.Equal(t, apiClient.ClientVersion(), api.DefaultVersion)
|
||||||
expectedHeaders := map[string]string{
|
|
||||||
"My-Header": "Custom-Value",
|
|
||||||
"User-Agent": UserAgent(),
|
|
||||||
}
|
|
||||||
assert.Check(t, is.DeepEqual(expectedHeaders, apiclient.(*client.Client).CustomHTTPHeaders()))
|
|
||||||
assert.Check(t, is.Equal(api.DefaultVersion, apiclient.ClientVersion()))
|
|
||||||
assert.DeepEqual(t, configFile.HTTPHeaders, map[string]string{"My-Header": "Custom-Value"})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNewAPIClientFromFlagsForDefaultSchema(t *testing.T) {
|
func TestNewAPIClientFromFlagsForDefaultSchema(t *testing.T) {
|
||||||
host := ":2375"
|
host := ":2375"
|
||||||
opts := &flags.CommonOptions{Hosts: []string{host}}
|
opts := &flags.CommonOptions{Hosts: []string{host}}
|
||||||
|
apiClient, err := NewAPIClientFromFlags(opts, &configfile.ConfigFile{})
|
||||||
|
assert.NilError(t, err)
|
||||||
|
assert.Equal(t, apiClient.DaemonHost(), "tcp://localhost"+host)
|
||||||
|
assert.Equal(t, apiClient.ClientVersion(), api.DefaultVersion)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNewAPIClientFromFlagsWithCustomHeaders(t *testing.T) {
|
||||||
|
var received map[string]string
|
||||||
|
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
received = map[string]string{
|
||||||
|
"My-Header": r.Header.Get("My-Header"),
|
||||||
|
"User-Agent": r.Header.Get("User-Agent"),
|
||||||
|
}
|
||||||
|
_, _ = w.Write([]byte("OK"))
|
||||||
|
}))
|
||||||
|
defer ts.Close()
|
||||||
|
host := strings.Replace(ts.URL, "http://", "tcp://", 1)
|
||||||
|
opts := &flags.CommonOptions{Hosts: []string{host}}
|
||||||
configFile := &configfile.ConfigFile{
|
configFile := &configfile.ConfigFile{
|
||||||
HTTPHeaders: map[string]string{
|
HTTPHeaders: map[string]string{
|
||||||
"My-Header": "Custom-Value",
|
"My-Header": "Custom-Value",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
apiclient, err := NewAPIClientFromFlags(opts, configFile)
|
|
||||||
|
apiClient, err := NewAPIClientFromFlags(opts, configFile)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
assert.Check(t, is.Equal("tcp://localhost"+host, apiclient.DaemonHost()))
|
assert.Equal(t, apiClient.DaemonHost(), host)
|
||||||
|
assert.Equal(t, apiClient.ClientVersion(), api.DefaultVersion)
|
||||||
|
|
||||||
|
// verify User-Agent is not appended to the configfile. see https://github.com/docker/cli/pull/2756
|
||||||
|
assert.DeepEqual(t, configFile.HTTPHeaders, map[string]string{"My-Header": "Custom-Value"})
|
||||||
|
|
||||||
expectedHeaders := map[string]string{
|
expectedHeaders := map[string]string{
|
||||||
"My-Header": "Custom-Value",
|
"My-Header": "Custom-Value",
|
||||||
"User-Agent": UserAgent(),
|
"User-Agent": UserAgent(),
|
||||||
}
|
}
|
||||||
assert.Check(t, is.DeepEqual(expectedHeaders, apiclient.(*client.Client).CustomHTTPHeaders()))
|
_, err = apiClient.Ping(context.Background())
|
||||||
assert.Check(t, is.Equal(api.DefaultVersion, apiclient.ClientVersion()))
|
assert.NilError(t, err)
|
||||||
|
assert.DeepEqual(t, received, expectedHeaders)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNewAPIClientFromFlagsWithAPIVersionFromEnv(t *testing.T) {
|
func TestNewAPIClientFromFlagsWithAPIVersionFromEnv(t *testing.T) {
|
||||||
|
@ -76,7 +90,7 @@ func TestNewAPIClientFromFlagsWithAPIVersionFromEnv(t *testing.T) {
|
||||||
configFile := &configfile.ConfigFile{}
|
configFile := &configfile.ConfigFile{}
|
||||||
apiclient, err := NewAPIClientFromFlags(opts, configFile)
|
apiclient, err := NewAPIClientFromFlags(opts, configFile)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
assert.Check(t, is.Equal(customVersion, apiclient.ClientVersion()))
|
assert.Equal(t, apiclient.ClientVersion(), customVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
type fakeClient struct {
|
type fakeClient struct {
|
||||||
|
@ -142,8 +156,8 @@ func TestInitializeFromClient(t *testing.T) {
|
||||||
|
|
||||||
cli := &DockerCli{client: apiclient}
|
cli := &DockerCli{client: apiclient}
|
||||||
cli.initializeFromClient()
|
cli.initializeFromClient()
|
||||||
assert.Check(t, is.DeepEqual(testcase.expectedServer, cli.serverInfo))
|
assert.DeepEqual(t, cli.serverInfo, testcase.expectedServer)
|
||||||
assert.Check(t, is.Equal(testcase.negotiated, apiclient.negotiated))
|
assert.Equal(t, apiclient.negotiated, testcase.negotiated)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -186,7 +200,7 @@ func TestExperimentalCLI(t *testing.T) {
|
||||||
err := cli.Initialize(flags.NewClientOptions())
|
err := cli.Initialize(flags.NewClientOptions())
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
// For backward-compatibility, HasExperimental will always be "true"
|
// For backward-compatibility, HasExperimental will always be "true"
|
||||||
assert.Check(t, is.Equal(true, cli.ClientInfo().HasExperimental))
|
assert.Equal(t, cli.ClientInfo().HasExperimental, true)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue