summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/client.go18
-rw-r--r--client/client_test.go8
-rw-r--r--client/client_unix.go3
-rw-r--r--client/client_windows.go3
-rw-r--r--client/config_list_test.go9
-rw-r--r--client/container_list_test.go22
-rw-r--r--client/container_prune_test.go34
-rw-r--r--client/events_test.go9
-rw-r--r--client/image_list_test.go23
-rw-r--r--client/image_prune_test.go23
-rw-r--r--client/image_search_test.go19
-rw-r--r--client/network_list_test.go38
-rw-r--r--client/network_prune_test.go27
-rw-r--r--client/node_list_test.go11
-rw-r--r--client/options_test.go24
-rw-r--r--client/plugin_list_test.go16
-rw-r--r--client/secret_list_test.go11
-rw-r--r--client/service_list_test.go11
-rw-r--r--client/task_list_test.go11
-rw-r--r--client/volume_list_test.go21
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}}`,
},
}