summaryrefslogtreecommitdiff
path: root/integration/secret
diff options
context:
space:
mode:
authorYong Tang <yong.tang.github@outlook.com>2018-02-11 21:17:44 +0000
committerYong Tang <yong.tang.github@outlook.com>2018-02-11 21:17:44 +0000
commitf955d2e2042cabaeac8a451b83a507b76e606d33 (patch)
tree5ffe1567aa60b01860fb2dd858bce5225ed1d07d /integration/secret
parent3499557c9b3aa728cb52402c1bb4302f80ab4721 (diff)
downloaddocker-f955d2e2042cabaeac8a451b83a507b76e606d33.tar.gz
Migrates several swarm secrets from integration-cli to api tests
This fix migrates several swarm secrets from integration-cli to api tests Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Diffstat (limited to 'integration/secret')
-rw-r--r--integration/secret/secret_test.go110
1 files changed, 109 insertions, 1 deletions
diff --git a/integration/secret/secret_test.go b/integration/secret/secret_test.go
index 3915bf5e82..a6e9983e23 100644
--- a/integration/secret/secret_test.go
+++ b/integration/secret/secret_test.go
@@ -9,6 +9,7 @@ import (
swarmtypes "github.com/docker/docker/api/types/swarm"
"github.com/docker/docker/client"
"github.com/docker/docker/integration/internal/swarm"
+ "github.com/docker/docker/internal/testutil"
"github.com/gotestyourself/gotestyourself/skip"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@@ -35,7 +36,7 @@ func TestSecretInspect(t *testing.T) {
secret, _, err = client.SecretInspectWithRaw(context.Background(), testName)
require.NoError(t, err)
- assert.Equal(t, secret.ID, secretID)
+ assert.Equal(t, secretID, secretID)
}
func TestSecretList(t *testing.T) {
@@ -124,3 +125,110 @@ func createSecret(ctx context.Context, t *testing.T, client client.APIClient, na
assert.NotEqual(t, secret.ID, "")
return secret.ID
}
+
+func TestSecretsCreate(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()
+
+ testName := "test_secret"
+ createSecret(ctx, t, client, testName, []byte("TESTINGDATA"), nil)
+ require.NoError(t, err)
+
+ // create an already existin secret, daemon should return a status code of 409
+ _, err = client.SecretCreate(ctx, swarmtypes.SecretSpec{
+ Annotations: swarmtypes.Annotations{
+ Name: testName,
+ },
+ Data: []byte("TESTINGDATA"),
+ })
+ testutil.ErrorContains(t, err, "already exists")
+}
+
+func TestSecretsDelete(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()
+
+ testName := "test_secret"
+ secretID := createSecret(ctx, t, client, testName, []byte("TESTINGDATA"), nil)
+ require.NoError(t, err)
+
+ insp, _, err := client.SecretInspectWithRaw(ctx, secretID)
+ require.NoError(t, err)
+ assert.Equal(t, insp.ID, secretID)
+
+ err = client.SecretRemove(ctx, secretID)
+ require.NoError(t, err)
+
+ _, _, err = client.SecretInspectWithRaw(ctx, secretID)
+ testutil.ErrorContains(t, err, "No such secret")
+
+ err = client.SecretRemove(ctx, "non-existin")
+ testutil.ErrorContains(t, err, "No such secret: non-existin")
+}
+
+func TestSecretsUpdate(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()
+
+ testName := "test_secret"
+ secretID := createSecret(ctx, t, client, testName, []byte("TESTINGDATA"), nil)
+ require.NoError(t, err)
+
+ insp, _, err := client.SecretInspectWithRaw(ctx, secretID)
+ require.NoError(t, err)
+ assert.Equal(t, insp.ID, secretID)
+
+ // test UpdateSecret with full ID
+ insp.Spec.Labels = map[string]string{"test": "test1"}
+ err = client.SecretUpdate(ctx, secretID, insp.Version, insp.Spec)
+ require.NoError(t, err)
+
+ insp, _, err = client.SecretInspectWithRaw(ctx, secretID)
+ require.NoError(t, err)
+ assert.Equal(t, insp.Spec.Labels["test"], "test1")
+
+ // test UpdateSecret with full name
+ insp.Spec.Labels = map[string]string{"test": "test2"}
+ err = client.SecretUpdate(ctx, testName, insp.Version, insp.Spec)
+ require.NoError(t, err)
+
+ insp, _, err = client.SecretInspectWithRaw(ctx, secretID)
+ require.NoError(t, err)
+ assert.Equal(t, insp.Spec.Labels["test"], "test2")
+
+ // test UpdateSecret with prefix ID
+ insp.Spec.Labels = map[string]string{"test": "test3"}
+ err = client.SecretUpdate(ctx, secretID[:1], insp.Version, insp.Spec)
+ require.NoError(t, err)
+
+ insp, _, err = client.SecretInspectWithRaw(ctx, secretID)
+ require.NoError(t, err)
+ assert.Equal(t, insp.Spec.Labels["test"], "test3")
+
+ // test UpdateSecret in updating Data which is not supported in daemon
+ // this test will produce an error in func UpdateSecret
+ insp.Spec.Data = []byte("TESTINGDATA2")
+ err = client.SecretUpdate(ctx, secretID, insp.Version, insp.Spec)
+ testutil.ErrorContains(t, err, "only updates to Labels are allowed")
+}