mirror of
https://github.com/moby/moby.git
synced 2026-01-11 18:51:37 +00:00
test: migrate test api network get defaults and filter
Signed-off-by: Muhammad Daffa Dinaya <muhammaddaffadinaya@gmail.com>
This commit is contained in:
@@ -5,11 +5,9 @@ import (
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/moby/moby/api/types/filters"
|
||||
"github.com/moby/moby/api/types/network"
|
||||
"github.com/moby/moby/client"
|
||||
"github.com/moby/moby/v2/integration-cli/cli"
|
||||
@@ -18,21 +16,6 @@ import (
|
||||
"gotest.tools/v3/assert"
|
||||
)
|
||||
|
||||
func (s *DockerAPISuite) TestAPINetworkGetDefaults(c *testing.T) {
|
||||
testRequires(c, DaemonIsLinux)
|
||||
// By default docker daemon creates 3 networks. check if they are present
|
||||
defaults := []string{"bridge", "host", "none"}
|
||||
for _, nn := range defaults {
|
||||
assert.Assert(c, isNetworkAvailable(c, nn))
|
||||
}
|
||||
}
|
||||
|
||||
func (s *DockerAPISuite) TestAPINetworkFilter(c *testing.T) {
|
||||
testRequires(c, DaemonIsLinux)
|
||||
nr := getNetworkResource(c, getNetworkIDByName(c, "bridge"))
|
||||
assert.Equal(c, nr.Name, "bridge")
|
||||
}
|
||||
|
||||
func (s *DockerAPISuite) TestAPINetworkInspectBridge(c *testing.T) {
|
||||
testRequires(c, DaemonIsLinux)
|
||||
// Inspect default bridge network
|
||||
@@ -222,31 +205,6 @@ func isNetworkAvailable(t *testing.T, name string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func getNetworkIDByName(t *testing.T, name string) string {
|
||||
filterJSON, err := filters.ToJSON(filters.NewArgs(filters.Arg("name", name)))
|
||||
assert.NilError(t, err)
|
||||
v := url.Values{}
|
||||
v.Set("filters", filterJSON)
|
||||
|
||||
resp, body, err := request.Get(testutil.GetContext(t), "/networks?"+v.Encode())
|
||||
assert.Equal(t, resp.StatusCode, http.StatusOK)
|
||||
assert.NilError(t, err)
|
||||
|
||||
var nJSON []network.Inspect
|
||||
err = json.NewDecoder(body).Decode(&nJSON)
|
||||
assert.NilError(t, err)
|
||||
var res string
|
||||
for _, n := range nJSON {
|
||||
// Find exact match
|
||||
if n.Name == name {
|
||||
res = n.ID
|
||||
}
|
||||
}
|
||||
assert.Assert(t, res != "")
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
func getNetworkResource(t *testing.T, id string) *network.Inspect {
|
||||
_, obj, err := request.Get(testutil.GetContext(t), "/networks/"+id)
|
||||
assert.NilError(t, err)
|
||||
|
||||
@@ -2,13 +2,17 @@ package network
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"github.com/moby/moby/api/types/filters"
|
||||
networktypes "github.com/moby/moby/api/types/network"
|
||||
"github.com/moby/moby/client"
|
||||
"github.com/moby/moby/v2/internal/testutil"
|
||||
"github.com/moby/moby/v2/internal/testutil/request"
|
||||
"gotest.tools/v3/assert"
|
||||
|
||||
is "gotest.tools/v3/assert/cmp"
|
||||
)
|
||||
|
||||
@@ -103,3 +107,41 @@ func TestNetworkList(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestAPINetworkGetDefaults(t *testing.T) {
|
||||
ctx := setupTest(t)
|
||||
apiClient := testEnv.APIClient()
|
||||
|
||||
defaults := []string{"bridge", "host", "none"}
|
||||
if testEnv.DaemonInfo.OSType == "windows" {
|
||||
defaults = []string{"nat", "none"}
|
||||
}
|
||||
|
||||
for _, netName := range defaults {
|
||||
assert.Assert(t, IsNetworkAvailable(ctx, apiClient, netName))
|
||||
}
|
||||
}
|
||||
|
||||
func TestAPINetworkFilter(t *testing.T) {
|
||||
networkName := "bridge"
|
||||
if testEnv.DaemonInfo.OSType == "windows" {
|
||||
networkName = "nat"
|
||||
}
|
||||
|
||||
ctx := setupTest(t)
|
||||
apiClient := testEnv.APIClient()
|
||||
|
||||
networks, err := apiClient.NetworkList(ctx, client.NetworkListOptions{
|
||||
Filters: filters.NewArgs(filters.Arg("name", networkName)),
|
||||
})
|
||||
|
||||
assert.NilError(t, err)
|
||||
|
||||
found := false
|
||||
for _, network := range networks {
|
||||
if network.Name == networkName {
|
||||
found = true
|
||||
}
|
||||
}
|
||||
assert.Assert(t, found, fmt.Sprintf("%s is not found", networkName))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user