mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Migrate secret list tests from integration-cli to api tests
This fix migrates secret list tests from integration-cli to api tests Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This commit is contained in:
parent
42465784dc
commit
9349c03583
1 changed files with 93 additions and 10 deletions
|
@ -1,8 +1,11 @@
|
||||||
package secret
|
package secret
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"sort"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/docker/docker/api/types"
|
||||||
|
"github.com/docker/docker/api/types/filters"
|
||||||
swarmtypes "github.com/docker/docker/api/types/swarm"
|
swarmtypes "github.com/docker/docker/api/types/swarm"
|
||||||
"github.com/docker/docker/client"
|
"github.com/docker/docker/client"
|
||||||
"github.com/docker/docker/integration/util/swarm"
|
"github.com/docker/docker/integration/util/swarm"
|
||||||
|
@ -24,20 +27,100 @@ func TestSecretInspect(t *testing.T) {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
testName := "test_secret"
|
testName := "test_secret"
|
||||||
secretResp, err := client.SecretCreate(ctx, swarmtypes.SecretSpec{
|
secretID := createSecret(ctx, t, client, testName, []byte("TESTINGDATA"), nil)
|
||||||
Annotations: swarmtypes.Annotations{
|
|
||||||
Name: testName,
|
|
||||||
},
|
|
||||||
Data: []byte("TESTINGDATA"),
|
|
||||||
})
|
|
||||||
require.NoError(t, err)
|
|
||||||
assert.NotEqual(t, secretResp.ID, "")
|
|
||||||
|
|
||||||
secret, _, err := client.SecretInspectWithRaw(context.Background(), secretResp.ID)
|
secret, _, err := client.SecretInspectWithRaw(context.Background(), secretID)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, secret.Spec.Name, testName)
|
assert.Equal(t, secret.Spec.Name, testName)
|
||||||
|
|
||||||
secret, _, err = client.SecretInspectWithRaw(context.Background(), testName)
|
secret, _, err = client.SecretInspectWithRaw(context.Background(), testName)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, secret.ID, secretResp.ID)
|
assert.Equal(t, secret.ID, secretID)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSecretList(t *testing.T) {
|
||||||
|
skip.If(t, testEnv.DaemonInfo.OSType != "linux")
|
||||||
|
|
||||||
|
defer setupTest(t)()
|
||||||
|
d := swarm.NewSwarm(t, testEnv)
|
||||||
|
defer d.Stop(t)
|
||||||
|
client, err := client.NewClientWithOpts(client.WithHost((d.Sock())))
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
testName0 := "test0"
|
||||||
|
testName1 := "test1"
|
||||||
|
testNames := []string{testName0, testName1}
|
||||||
|
sort.Strings(testNames)
|
||||||
|
|
||||||
|
// create secret test0
|
||||||
|
createSecret(ctx, t, client, testName0, []byte("TESTINGDATA0"), map[string]string{"type": "test"})
|
||||||
|
|
||||||
|
// create secret test1
|
||||||
|
secret1ID := createSecret(ctx, t, client, testName1, []byte("TESTINGDATA1"), map[string]string{"type": "production"})
|
||||||
|
|
||||||
|
names := func(entries []swarmtypes.Secret) []string {
|
||||||
|
values := []string{}
|
||||||
|
for _, entry := range entries {
|
||||||
|
values = append(values, entry.Spec.Name)
|
||||||
|
}
|
||||||
|
sort.Strings(values)
|
||||||
|
return values
|
||||||
|
}
|
||||||
|
|
||||||
|
// test by `secret ls`
|
||||||
|
entries, err := client.SecretList(ctx, types.SecretListOptions{})
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Equal(t, names(entries), testNames)
|
||||||
|
|
||||||
|
testCases := []struct {
|
||||||
|
filters filters.Args
|
||||||
|
expected []string
|
||||||
|
}{
|
||||||
|
// test filter by name `secret ls --filter name=xxx`
|
||||||
|
{
|
||||||
|
filters: filters.NewArgs(filters.Arg("name", testName0)),
|
||||||
|
expected: []string{testName0},
|
||||||
|
},
|
||||||
|
// test filter by id `secret ls --filter id=xxx`
|
||||||
|
{
|
||||||
|
filters: filters.NewArgs(filters.Arg("id", secret1ID)),
|
||||||
|
expected: []string{testName1},
|
||||||
|
},
|
||||||
|
// test filter by label `secret ls --filter label=xxx`
|
||||||
|
{
|
||||||
|
filters: filters.NewArgs(filters.Arg("label", "type")),
|
||||||
|
expected: testNames,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
filters: filters.NewArgs(filters.Arg("label", "type=test")),
|
||||||
|
expected: []string{testName0},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
filters: filters.NewArgs(filters.Arg("label", "type=production")),
|
||||||
|
expected: []string{testName1},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, tc := range testCases {
|
||||||
|
entries, err = client.SecretList(ctx, types.SecretListOptions{
|
||||||
|
Filters: tc.filters,
|
||||||
|
})
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Equal(t, names(entries), tc.expected)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func createSecret(ctx context.Context, t *testing.T, client client.APIClient, name string, data []byte, labels map[string]string) string {
|
||||||
|
secret, err := client.SecretCreate(ctx, swarmtypes.SecretSpec{
|
||||||
|
Annotations: swarmtypes.Annotations{
|
||||||
|
Name: name,
|
||||||
|
Labels: labels,
|
||||||
|
},
|
||||||
|
Data: data,
|
||||||
|
})
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.NotEqual(t, secret.ID, "")
|
||||||
|
return secret.ID
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue