diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/client.go | 18 | ||||
-rw-r--r-- | client/client_test.go | 8 | ||||
-rw-r--r-- | client/client_unix.go | 3 | ||||
-rw-r--r-- | client/client_windows.go | 3 | ||||
-rw-r--r-- | client/config_list_test.go | 9 | ||||
-rw-r--r-- | client/container_list_test.go | 22 | ||||
-rw-r--r-- | client/container_prune_test.go | 34 | ||||
-rw-r--r-- | client/events_test.go | 9 | ||||
-rw-r--r-- | client/image_list_test.go | 23 | ||||
-rw-r--r-- | client/image_prune_test.go | 23 | ||||
-rw-r--r-- | client/image_search_test.go | 19 | ||||
-rw-r--r-- | client/network_list_test.go | 38 | ||||
-rw-r--r-- | client/network_prune_test.go | 27 | ||||
-rw-r--r-- | client/node_list_test.go | 11 | ||||
-rw-r--r-- | client/options_test.go | 24 | ||||
-rw-r--r-- | client/plugin_list_test.go | 16 | ||||
-rw-r--r-- | client/secret_list_test.go | 11 | ||||
-rw-r--r-- | client/service_list_test.go | 11 | ||||
-rw-r--r-- | client/task_list_test.go | 11 | ||||
-rw-r--r-- | client/volume_list_test.go | 21 |
20 files changed, 148 insertions, 193 deletions
diff --git a/client/client.go b/client/client.go index 8d32976b2b..1c081a51ae 100644 --- a/client/client.go +++ b/client/client.go @@ -126,7 +126,12 @@ func CheckRedirect(req *http.Request, via []*http.Request) error { // client.WithAPIVersionNegotiation(), // ) func NewClientWithOpts(ops ...Opt) (*Client, error) { - client, err := defaultHTTPClient(DefaultDockerHost) + hostURL, err := ParseHostURL(DefaultDockerHost) + if err != nil { + return nil, err + } + + client, err := defaultHTTPClient(hostURL) if err != nil { return nil, err } @@ -134,8 +139,8 @@ func NewClientWithOpts(ops ...Opt) (*Client, error) { host: DefaultDockerHost, version: api.DefaultVersion, client: client, - proto: defaultProto, - addr: defaultAddr, + proto: hostURL.Scheme, + addr: hostURL.Host, } for _, op := range ops { @@ -161,13 +166,12 @@ func NewClientWithOpts(ops ...Opt) (*Client, error) { return c, nil } -func defaultHTTPClient(host string) (*http.Client, error) { - hostURL, err := ParseHostURL(host) +func defaultHTTPClient(hostURL *url.URL) (*http.Client, error) { + transport := &http.Transport{} + err := sockets.ConfigureTransport(transport, hostURL.Scheme, hostURL.Host) if err != nil { return nil, err } - transport := &http.Transport{} - _ = sockets.ConfigureTransport(transport, hostURL.Scheme, hostURL.Host) return &http.Client{ Transport: transport, CheckRedirect: CheckRedirect, diff --git a/client/client_test.go b/client/client_test.go index bb31ff069e..44586075d1 100644 --- a/client/client_test.go +++ b/client/client_test.go @@ -165,6 +165,14 @@ func TestParseHostURL(t *testing.T) { host: "tcp://localhost:2476/path", expected: &url.URL{Scheme: "tcp", Host: "localhost:2476", Path: "/path"}, }, + { + host: "unix:///var/run/docker.sock", + expected: &url.URL{Scheme: "unix", Host: "/var/run/docker.sock"}, + }, + { + host: "npipe:////./pipe/docker_engine", + expected: &url.URL{Scheme: "npipe", Host: "//./pipe/docker_engine"}, + }, } for _, testcase := range testcases { diff --git a/client/client_unix.go b/client/client_unix.go index 685149a68c..319b738d3e 100644 --- a/client/client_unix.go +++ b/client/client_unix.go @@ -6,6 +6,3 @@ package client // import "github.com/docker/docker/client" // DefaultDockerHost defines OS-specific default host if the DOCKER_HOST // (EnvOverrideHost) environment variable is unset or empty. const DefaultDockerHost = "unix:///var/run/docker.sock" - -const defaultProto = "unix" -const defaultAddr = "/var/run/docker.sock" diff --git a/client/client_windows.go b/client/client_windows.go index 5abe60457d..56572d1a27 100644 --- a/client/client_windows.go +++ b/client/client_windows.go @@ -3,6 +3,3 @@ package client // import "github.com/docker/docker/client" // DefaultDockerHost defines OS-specific default host if the DOCKER_HOST // (EnvOverrideHost) environment variable is unset or empty. const DefaultDockerHost = "npipe:////./pipe/docker_engine" - -const defaultProto = "npipe" -const defaultAddr = "//./pipe/docker_engine" diff --git a/client/config_list_test.go b/client/config_list_test.go index 9c4cf6642b..e5b9dd4e9a 100644 --- a/client/config_list_test.go +++ b/client/config_list_test.go @@ -42,10 +42,6 @@ func TestConfigListError(t *testing.T) { func TestConfigList(t *testing.T) { expectedURL := "/v1.30/configs" - filters := filters.NewArgs() - filters.Add("label", "label1") - filters.Add("label", "label2") - listCases := []struct { options types.ConfigListOptions expectedQueryParams map[string]string @@ -58,7 +54,10 @@ func TestConfigList(t *testing.T) { }, { options: types.ConfigListOptions{ - Filters: filters, + Filters: filters.NewArgs( + filters.Arg("label", "label1"), + filters.Arg("label", "label2"), + ), }, expectedQueryParams: map[string]string{ "filters": `{"label":{"label1":true,"label2":true}}`, diff --git a/client/container_list_test.go b/client/container_list_test.go index baf4e3068b..1f3ecdb356 100644 --- a/client/container_list_test.go +++ b/client/container_list_test.go @@ -54,9 +54,9 @@ func TestContainerList(t *testing.T) { if size != "1" { return nil, fmt.Errorf("size not set in URL query properly. Expected '1', got %s", size) } - filters := query.Get("filters") - if filters != expectedFilters { - return nil, fmt.Errorf("expected filters incoherent '%v' with actual filters %v", expectedFilters, filters) + fltrs := query.Get("filters") + if fltrs != expectedFilters { + return nil, fmt.Errorf("expected filters incoherent '%v' with actual filters %v", expectedFilters, fltrs) } b, err := json.Marshal([]types.Container{ @@ -78,15 +78,15 @@ func TestContainerList(t *testing.T) { }), } - filters := filters.NewArgs() - filters.Add("label", "label1") - filters.Add("label", "label2") - filters.Add("before", "container") containers, err := client.ContainerList(context.Background(), types.ContainerListOptions{ - Size: true, - All: true, - Since: "container", - Filters: filters, + Size: true, + All: true, + Since: "container", + Filters: filters.NewArgs( + filters.Arg("label", "label1"), + filters.Arg("label", "label2"), + filters.Arg("before", "container"), + ), }) if err != nil { t.Fatal(err) diff --git a/client/container_prune_test.go b/client/container_prune_test.go index 9525efc3bc..9e0e0c7f6e 100644 --- a/client/container_prune_test.go +++ b/client/container_prune_test.go @@ -23,9 +23,7 @@ func TestContainersPruneError(t *testing.T) { version: "1.25", } - filters := filters.NewArgs() - - _, err := client.ContainersPrune(context.Background(), filters) + _, err := client.ContainersPrune(context.Background(), filters.Args{}) if !errdefs.IsSystem(err) { t.Fatalf("expected a Server Error, got %[1]T: %[1]v", err) } @@ -34,21 +32,6 @@ func TestContainersPruneError(t *testing.T) { func TestContainersPrune(t *testing.T) { expectedURL := "/v1.25/containers/prune" - danglingFilters := filters.NewArgs() - danglingFilters.Add("dangling", "true") - - noDanglingFilters := filters.NewArgs() - noDanglingFilters.Add("dangling", "false") - - danglingUntilFilters := filters.NewArgs() - danglingUntilFilters.Add("dangling", "true") - danglingUntilFilters.Add("until", "2016-12-15T14:00") - - labelFilters := filters.NewArgs() - labelFilters.Add("dangling", "true") - labelFilters.Add("label", "label1=foo") - labelFilters.Add("label", "label2!=bar") - listCases := []struct { filters filters.Args expectedQueryParams map[string]string @@ -62,7 +45,7 @@ func TestContainersPrune(t *testing.T) { }, }, { - filters: danglingFilters, + filters: filters.NewArgs(filters.Arg("dangling", "true")), expectedQueryParams: map[string]string{ "until": "", "filter": "", @@ -70,7 +53,10 @@ func TestContainersPrune(t *testing.T) { }, }, { - filters: danglingUntilFilters, + filters: filters.NewArgs( + filters.Arg("dangling", "true"), + filters.Arg("until", "2016-12-15T14:00"), + ), expectedQueryParams: map[string]string{ "until": "", "filter": "", @@ -78,7 +64,7 @@ func TestContainersPrune(t *testing.T) { }, }, { - filters: noDanglingFilters, + filters: filters.NewArgs(filters.Arg("dangling", "false")), expectedQueryParams: map[string]string{ "until": "", "filter": "", @@ -86,7 +72,11 @@ func TestContainersPrune(t *testing.T) { }, }, { - filters: labelFilters, + filters: filters.NewArgs( + filters.Arg("dangling", "true"), + filters.Arg("label", "label1=foo"), + filters.Arg("label", "label2!=bar"), + ), expectedQueryParams: map[string]string{ "until": "", "filter": "", diff --git a/client/events_test.go b/client/events_test.go index f78042fb2f..e6a4b1f912 100644 --- a/client/events_test.go +++ b/client/events_test.go @@ -58,10 +58,9 @@ func TestEventsErrorFromServer(t *testing.T) { } func TestEvents(t *testing.T) { - expectedURL := "/events" + const expectedURL = "/events" - filters := filters.NewArgs() - filters.Add("type", events.ContainerEventType) + fltrs := filters.NewArgs(filters.Arg("type", events.ContainerEventType)) expectedFiltersJSON := fmt.Sprintf(`{"type":{"%s":true}}`, events.ContainerEventType) eventsCases := []struct { @@ -72,7 +71,7 @@ func TestEvents(t *testing.T) { }{ { options: types.EventsOptions{ - Filters: filters, + Filters: fltrs, }, expectedQueryParams: map[string]string{ "filters": expectedFiltersJSON, @@ -82,7 +81,7 @@ func TestEvents(t *testing.T) { }, { options: types.EventsOptions{ - Filters: filters, + Filters: fltrs, }, expectedQueryParams: map[string]string{ "filters": expectedFiltersJSON, diff --git a/client/image_list_test.go b/client/image_list_test.go index b302d970c9..5fb978d970 100644 --- a/client/image_list_test.go +++ b/client/image_list_test.go @@ -30,15 +30,7 @@ func TestImageListError(t *testing.T) { } func TestImageList(t *testing.T) { - expectedURL := "/images/json" - - noDanglingfilters := filters.NewArgs() - noDanglingfilters.Add("dangling", "false") - - filters := filters.NewArgs() - filters.Add("label", "label1") - filters.Add("label", "label2") - filters.Add("dangling", "true") + const expectedURL = "/images/json" listCases := []struct { options types.ImageListOptions @@ -54,7 +46,11 @@ func TestImageList(t *testing.T) { }, { options: types.ImageListOptions{ - Filters: filters, + Filters: filters.NewArgs( + filters.Arg("label", "label1"), + filters.Arg("label", "label2"), + filters.Arg("dangling", "true"), + ), }, expectedQueryParams: map[string]string{ "all": "", @@ -64,7 +60,7 @@ func TestImageList(t *testing.T) { }, { options: types.ImageListOptions{ - Filters: noDanglingfilters, + Filters: filters.NewArgs(filters.Arg("dangling", "false")), }, expectedQueryParams: map[string]string{ "all": "", @@ -146,11 +142,8 @@ func TestImageListApiBefore125(t *testing.T) { version: "1.24", } - filters := filters.NewArgs() - filters.Add("reference", "image:tag") - options := types.ImageListOptions{ - Filters: filters, + Filters: filters.NewArgs(filters.Arg("reference", "image:tag")), } images, err := client.ImageList(context.Background(), options) diff --git a/client/image_prune_test.go b/client/image_prune_test.go index a3652a1003..c96751d288 100644 --- a/client/image_prune_test.go +++ b/client/image_prune_test.go @@ -31,18 +31,7 @@ func TestImagesPruneError(t *testing.T) { } func TestImagesPrune(t *testing.T) { - expectedURL := "/v1.25/images/prune" - - danglingFilters := filters.NewArgs() - danglingFilters.Add("dangling", "true") - - noDanglingFilters := filters.NewArgs() - noDanglingFilters.Add("dangling", "false") - - labelFilters := filters.NewArgs() - labelFilters.Add("dangling", "true") - labelFilters.Add("label", "label1=foo") - labelFilters.Add("label", "label2!=bar") + const expectedURL = "/v1.25/images/prune" listCases := []struct { filters filters.Args @@ -57,7 +46,7 @@ func TestImagesPrune(t *testing.T) { }, }, { - filters: danglingFilters, + filters: filters.NewArgs(filters.Arg("dangling", "true")), expectedQueryParams: map[string]string{ "until": "", "filter": "", @@ -65,7 +54,7 @@ func TestImagesPrune(t *testing.T) { }, }, { - filters: noDanglingFilters, + filters: filters.NewArgs(filters.Arg("dangling", "false")), expectedQueryParams: map[string]string{ "until": "", "filter": "", @@ -73,7 +62,11 @@ func TestImagesPrune(t *testing.T) { }, }, { - filters: labelFilters, + filters: filters.NewArgs( + filters.Arg("dangling", "true"), + filters.Arg("label", "label1=foo"), + filters.Arg("label", "label2!=bar"), + ), expectedQueryParams: map[string]string{ "until": "", "filter": "", diff --git a/client/image_search_test.go b/client/image_search_test.go index 56e5c7c2cb..55d78315aa 100644 --- a/client/image_search_test.go +++ b/client/image_search_test.go @@ -118,12 +118,8 @@ func TestImageSearchWithPrivilegedFuncNoError(t *testing.T) { } func TestImageSearchWithoutErrors(t *testing.T) { - expectedURL := "/images/search" - filterArgs := filters.NewArgs() - filterArgs.Add("is-automated", "true") - filterArgs.Add("stars", "3") - - expectedFilters := `{"is-automated":{"true":true},"stars":{"3":true}}` + const expectedURL = "/images/search" + const expectedFilters = `{"is-automated":{"true":true},"stars":{"3":true}}` client := &Client{ client: newMockClient(func(req *http.Request) (*http.Response, error) { @@ -135,9 +131,9 @@ func TestImageSearchWithoutErrors(t *testing.T) { if term != "some-image" { return nil, fmt.Errorf("term not set in URL query properly. Expected 'some-image', got %s", term) } - filters := query.Get("filters") - if filters != expectedFilters { - return nil, fmt.Errorf("filters not set in URL query properly. Expected '%s', got %s", expectedFilters, filters) + fltrs := query.Get("filters") + if fltrs != expectedFilters { + return nil, fmt.Errorf("filters not set in URL query properly. Expected '%s', got %s", expectedFilters, fltrs) } content, err := json.Marshal([]registry.SearchResult{ { @@ -154,7 +150,10 @@ func TestImageSearchWithoutErrors(t *testing.T) { }), } results, err := client.ImageSearch(context.Background(), "some-image", types.ImageSearchOptions{ - Filters: filterArgs, + Filters: filters.NewArgs( + filters.Arg("is-automated", "true"), + filters.Arg("stars", "3"), + ), }) if err != nil { t.Fatal(err) diff --git a/client/network_list_test.go b/client/network_list_test.go index 66e15e1290..8366f34b76 100644 --- a/client/network_list_test.go +++ b/client/network_list_test.go @@ -20,49 +20,41 @@ func TestNetworkListError(t *testing.T) { client: newMockClient(errorMock(http.StatusInternalServerError, "Server error")), } - _, err := client.NetworkList(context.Background(), types.NetworkListOptions{ - Filters: filters.NewArgs(), - }) + _, err := client.NetworkList(context.Background(), types.NetworkListOptions{}) if !errdefs.IsSystem(err) { t.Fatalf("expected a Server Error, got %[1]T: %[1]v", err) } } func TestNetworkList(t *testing.T) { - expectedURL := "/networks" - - noDanglingFilters := filters.NewArgs() - noDanglingFilters.Add("dangling", "false") - - danglingFilters := filters.NewArgs() - danglingFilters.Add("dangling", "true") - - labelFilters := filters.NewArgs() - labelFilters.Add("label", "label1") - labelFilters.Add("label", "label2") + const expectedURL = "/networks" listCases := []struct { options types.NetworkListOptions expectedFilters string }{ { - options: types.NetworkListOptions{ - Filters: filters.NewArgs(), - }, + options: types.NetworkListOptions{}, expectedFilters: "", - }, { + }, + { options: types.NetworkListOptions{ - Filters: noDanglingFilters, + Filters: filters.NewArgs(filters.Arg("dangling", "false")), }, expectedFilters: `{"dangling":{"false":true}}`, - }, { + }, + { options: types.NetworkListOptions{ - Filters: danglingFilters, + Filters: filters.NewArgs(filters.Arg("dangling", "true")), }, expectedFilters: `{"dangling":{"true":true}}`, - }, { + }, + { options: types.NetworkListOptions{ - Filters: labelFilters, + Filters: filters.NewArgs( + filters.Arg("label", "label1"), + filters.Arg("label", "label2"), + ), }, expectedFilters: `{"label":{"label1":true,"label2":true}}`, }, diff --git a/client/network_prune_test.go b/client/network_prune_test.go index d5019efc69..af78b305a2 100644 --- a/client/network_prune_test.go +++ b/client/network_prune_test.go @@ -23,27 +23,14 @@ func TestNetworksPruneError(t *testing.T) { version: "1.25", } - filters := filters.NewArgs() - - _, err := client.NetworksPrune(context.Background(), filters) + _, err := client.NetworksPrune(context.Background(), filters.NewArgs()) if !errdefs.IsSystem(err) { t.Fatalf("expected a Server Error, got %[1]T: %[1]v", err) } } func TestNetworksPrune(t *testing.T) { - expectedURL := "/v1.25/networks/prune" - - danglingFilters := filters.NewArgs() - danglingFilters.Add("dangling", "true") - - noDanglingFilters := filters.NewArgs() - noDanglingFilters.Add("dangling", "false") - - labelFilters := filters.NewArgs() - labelFilters.Add("dangling", "true") - labelFilters.Add("label", "label1=foo") - labelFilters.Add("label", "label2!=bar") + const expectedURL = "/v1.25/networks/prune" listCases := []struct { filters filters.Args @@ -58,7 +45,7 @@ func TestNetworksPrune(t *testing.T) { }, }, { - filters: danglingFilters, + filters: filters.NewArgs(filters.Arg("dangling", "true")), expectedQueryParams: map[string]string{ "until": "", "filter": "", @@ -66,7 +53,7 @@ func TestNetworksPrune(t *testing.T) { }, }, { - filters: noDanglingFilters, + filters: filters.NewArgs(filters.Arg("dangling", "false")), expectedQueryParams: map[string]string{ "until": "", "filter": "", @@ -74,7 +61,11 @@ func TestNetworksPrune(t *testing.T) { }, }, { - filters: labelFilters, + filters: filters.NewArgs( + filters.Arg("dangling", "true"), + filters.Arg("label", "label1=foo"), + filters.Arg("label", "label2!=bar"), + ), expectedQueryParams: map[string]string{ "until": "", "filter": "", diff --git a/client/node_list_test.go b/client/node_list_test.go index 5851cd1a77..6184ef085c 100644 --- a/client/node_list_test.go +++ b/client/node_list_test.go @@ -28,11 +28,7 @@ func TestNodeListError(t *testing.T) { } func TestNodeList(t *testing.T) { - expectedURL := "/nodes" - - filters := filters.NewArgs() - filters.Add("label", "label1") - filters.Add("label", "label2") + const expectedURL = "/nodes" listCases := []struct { options types.NodeListOptions @@ -46,7 +42,10 @@ func TestNodeList(t *testing.T) { }, { options: types.NodeListOptions{ - Filters: filters, + Filters: filters.NewArgs( + filters.Arg("label", "label1"), + filters.Arg("label", "label2"), + ), }, expectedQueryParams: map[string]string{ "filters": `{"label":{"label1":true,"label2":true}}`, diff --git a/client/options_test.go b/client/options_test.go index 51900cef26..7153e24c70 100644 --- a/client/options_test.go +++ b/client/options_test.go @@ -1,31 +1,39 @@ package client import ( + "runtime" "testing" "time" "github.com/docker/docker/api" "gotest.tools/v3/assert" + is "gotest.tools/v3/assert/cmp" ) func TestOptionWithHostFromEnv(t *testing.T) { c, err := NewClientWithOpts(WithHostFromEnv()) assert.NilError(t, err) assert.Check(t, c.client != nil) - assert.Equal(t, c.host, DefaultDockerHost) - assert.Equal(t, c.proto, defaultProto) - assert.Equal(t, c.addr, defaultAddr) - assert.Equal(t, c.basePath, "") + assert.Check(t, is.Equal(c.basePath, "")) + if runtime.GOOS == "windows" { + assert.Check(t, is.Equal(c.host, "npipe:////./pipe/docker_engine")) + assert.Check(t, is.Equal(c.proto, "npipe")) + assert.Check(t, is.Equal(c.addr, "//./pipe/docker_engine")) + } else { + assert.Check(t, is.Equal(c.host, "unix:///var/run/docker.sock")) + assert.Check(t, is.Equal(c.proto, "unix")) + assert.Check(t, is.Equal(c.addr, "/var/run/docker.sock")) + } t.Setenv("DOCKER_HOST", "tcp://foo.example.com:2376/test/") c, err = NewClientWithOpts(WithHostFromEnv()) assert.NilError(t, err) assert.Check(t, c.client != nil) - assert.Equal(t, c.host, "tcp://foo.example.com:2376/test/") - assert.Equal(t, c.proto, "tcp") - assert.Equal(t, c.addr, "foo.example.com:2376") - assert.Equal(t, c.basePath, "/test/") + assert.Check(t, is.Equal(c.basePath, "/test/")) + assert.Check(t, is.Equal(c.host, "tcp://foo.example.com:2376/test/")) + assert.Check(t, is.Equal(c.proto, "tcp")) + assert.Check(t, is.Equal(c.addr, "foo.example.com:2376")) } func TestOptionWithTimeout(t *testing.T) { diff --git a/client/plugin_list_test.go b/client/plugin_list_test.go index c2643c3663..065c349ab2 100644 --- a/client/plugin_list_test.go +++ b/client/plugin_list_test.go @@ -27,14 +27,7 @@ func TestPluginListError(t *testing.T) { } func TestPluginList(t *testing.T) { - expectedURL := "/plugins" - - enabledFilters := filters.NewArgs() - enabledFilters.Add("enabled", "true") - - capabilityFilters := filters.NewArgs() - capabilityFilters.Add("capability", "volumedriver") - capabilityFilters.Add("capability", "authz") + const expectedURL = "/plugins" listCases := []struct { filters filters.Args @@ -49,7 +42,7 @@ func TestPluginList(t *testing.T) { }, }, { - filters: enabledFilters, + filters: filters.NewArgs(filters.Arg("enabled", "true")), expectedQueryParams: map[string]string{ "all": "", "filter": "", @@ -57,7 +50,10 @@ func TestPluginList(t *testing.T) { }, }, { - filters: capabilityFilters, + filters: filters.NewArgs( + filters.Arg("capability", "volumedriver"), + filters.Arg("capability", "authz"), + ), expectedQueryParams: map[string]string{ "all": "", "filter": "", diff --git a/client/secret_list_test.go b/client/secret_list_test.go index df330aa725..4c47570464 100644 --- a/client/secret_list_test.go +++ b/client/secret_list_test.go @@ -40,11 +40,7 @@ func TestSecretListError(t *testing.T) { } func TestSecretList(t *testing.T) { - expectedURL := "/v1.25/secrets" - - filters := filters.NewArgs() - filters.Add("label", "label1") - filters.Add("label", "label2") + const expectedURL = "/v1.25/secrets" listCases := []struct { options types.SecretListOptions @@ -58,7 +54,10 @@ func TestSecretList(t *testing.T) { }, { options: types.SecretListOptions{ - Filters: filters, + Filters: filters.NewArgs( + filters.Arg("label", "label1"), + filters.Arg("label", "label2"), + ), }, expectedQueryParams: map[string]string{ "filters": `{"label":{"label1":true,"label2":true}}`, diff --git a/client/service_list_test.go b/client/service_list_test.go index 4021f810bb..58a31e7462 100644 --- a/client/service_list_test.go +++ b/client/service_list_test.go @@ -28,11 +28,7 @@ func TestServiceListError(t *testing.T) { } func TestServiceList(t *testing.T) { - expectedURL := "/services" - - filters := filters.NewArgs() - filters.Add("label", "label1") - filters.Add("label", "label2") + const expectedURL = "/services" listCases := []struct { options types.ServiceListOptions @@ -46,7 +42,10 @@ func TestServiceList(t *testing.T) { }, { options: types.ServiceListOptions{ - Filters: filters, + Filters: filters.NewArgs( + filters.Arg("label", "label1"), + filters.Arg("label", "label2"), + ), }, expectedQueryParams: map[string]string{ "filters": `{"label":{"label1":true,"label2":true}}`, diff --git a/client/task_list_test.go b/client/task_list_test.go index 939319fffd..d5dfc96f3e 100644 --- a/client/task_list_test.go +++ b/client/task_list_test.go @@ -28,11 +28,7 @@ func TestTaskListError(t *testing.T) { } func TestTaskList(t *testing.T) { - expectedURL := "/tasks" - - filters := filters.NewArgs() - filters.Add("label", "label1") - filters.Add("label", "label2") + const expectedURL = "/tasks" listCases := []struct { options types.TaskListOptions @@ -46,7 +42,10 @@ func TestTaskList(t *testing.T) { }, { options: types.TaskListOptions{ - Filters: filters, + Filters: filters.NewArgs( + filters.Arg("label", "label1"), + filters.Arg("label", "label2"), + ), }, expectedQueryParams: map[string]string{ "filters": `{"label":{"label1":true,"label2":true}}`, diff --git a/client/volume_list_test.go b/client/volume_list_test.go index c7336aac0e..bf20434d54 100644 --- a/client/volume_list_test.go +++ b/client/volume_list_test.go @@ -27,17 +27,7 @@ func TestVolumeListError(t *testing.T) { } func TestVolumeList(t *testing.T) { - expectedURL := "/volumes" - - noDanglingFilters := filters.NewArgs() - noDanglingFilters.Add("dangling", "false") - - danglingFilters := filters.NewArgs() - danglingFilters.Add("dangling", "true") - - labelFilters := filters.NewArgs() - labelFilters.Add("label", "label1") - labelFilters.Add("label", "label2") + const expectedURL = "/volumes" listCases := []struct { filters filters.Args @@ -47,13 +37,16 @@ func TestVolumeList(t *testing.T) { filters: filters.NewArgs(), expectedFilters: "", }, { - filters: noDanglingFilters, + filters: filters.NewArgs(filters.Arg("dangling", "false")), expectedFilters: `{"dangling":{"false":true}}`, }, { - filters: danglingFilters, + filters: filters.NewArgs(filters.Arg("dangling", "true")), expectedFilters: `{"dangling":{"true":true}}`, }, { - filters: labelFilters, + filters: filters.NewArgs( + filters.Arg("label", "label1"), + filters.Arg("label", "label2"), + ), expectedFilters: `{"label":{"label1":true,"label2":true}}`, }, } |