cli/command/manifest: remove deprecated io/ioutil and use t.TempDir()

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 43795ec8f7)
Signed-off-by: Cory Snider <csnider@mirantis.com>
This commit is contained in:
Sebastiaan van Stijn 2022-02-25 13:11:27 +01:00 committed by Cory Snider
parent 5c97f5c918
commit 5237d943a8
5 changed files with 32 additions and 47 deletions

View File

@ -1,9 +1,10 @@
package manifest package manifest
import ( import (
"io/ioutil" "io"
"testing" "testing"
"github.com/docker/cli/cli/manifest/store"
"github.com/docker/cli/internal/test" "github.com/docker/cli/internal/test"
"gotest.tools/v3/assert" "gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp" is "gotest.tools/v3/assert/cmp"
@ -33,14 +34,13 @@ func TestManifestAnnotateError(t *testing.T) {
cli := test.NewFakeCli(nil) cli := test.NewFakeCli(nil)
cmd := newAnnotateCommand(cli) cmd := newAnnotateCommand(cli)
cmd.SetArgs(tc.args) cmd.SetArgs(tc.args)
cmd.SetOut(ioutil.Discard) cmd.SetOut(io.Discard)
assert.ErrorContains(t, cmd.Execute(), tc.expectedError) assert.ErrorContains(t, cmd.Execute(), tc.expectedError)
} }
} }
func TestManifestAnnotate(t *testing.T) { func TestManifestAnnotate(t *testing.T) {
store, cleanup := newTempManifestStore(t) store := store.NewStore(t.TempDir())
defer cleanup()
cli := test.NewFakeCli(nil) cli := test.NewFakeCli(nil)
cli.SetManifestStore(store) cli.SetManifestStore(store)
@ -51,7 +51,7 @@ func TestManifestAnnotate(t *testing.T) {
cmd := newAnnotateCommand(cli) cmd := newAnnotateCommand(cli)
cmd.SetArgs([]string{"example.com/list:v1", "example.com/fake:0.0"}) cmd.SetArgs([]string{"example.com/list:v1", "example.com/fake:0.0"})
cmd.SetOut(ioutil.Discard) cmd.SetOut(io.Discard)
expectedError := "manifest for image example.com/fake:0.0 does not exist" expectedError := "manifest for image example.com/fake:0.0 does not exist"
assert.ErrorContains(t, cmd.Execute(), expectedError) assert.ErrorContains(t, cmd.Execute(), expectedError)

View File

@ -2,9 +2,10 @@ package manifest
import ( import (
"context" "context"
"io/ioutil" "io"
"testing" "testing"
"github.com/docker/cli/cli/manifest/store"
manifesttypes "github.com/docker/cli/cli/manifest/types" manifesttypes "github.com/docker/cli/cli/manifest/types"
"github.com/docker/cli/internal/test" "github.com/docker/cli/internal/test"
"github.com/docker/distribution/reference" "github.com/docker/distribution/reference"
@ -33,15 +34,14 @@ func TestManifestCreateErrors(t *testing.T) {
cli := test.NewFakeCli(nil) cli := test.NewFakeCli(nil)
cmd := newCreateListCommand(cli) cmd := newCreateListCommand(cli)
cmd.SetArgs(tc.args) cmd.SetArgs(tc.args)
cmd.SetOut(ioutil.Discard) cmd.SetOut(io.Discard)
assert.ErrorContains(t, cmd.Execute(), tc.expectedError) assert.ErrorContains(t, cmd.Execute(), tc.expectedError)
} }
} }
// create a manifest list, then overwrite it, and inspect to see if the old one is still there // create a manifest list, then overwrite it, and inspect to see if the old one is still there
func TestManifestCreateAmend(t *testing.T) { func TestManifestCreateAmend(t *testing.T) {
store, cleanup := newTempManifestStore(t) store := store.NewStore(t.TempDir())
defer cleanup()
cli := test.NewFakeCli(nil) cli := test.NewFakeCli(nil)
cli.SetManifestStore(store) cli.SetManifestStore(store)
@ -58,7 +58,7 @@ func TestManifestCreateAmend(t *testing.T) {
cmd := newCreateListCommand(cli) cmd := newCreateListCommand(cli)
cmd.SetArgs([]string{"example.com/list:v1", "example.com/alpine:3.1"}) cmd.SetArgs([]string{"example.com/list:v1", "example.com/alpine:3.1"})
cmd.Flags().Set("amend", "true") cmd.Flags().Set("amend", "true")
cmd.SetOut(ioutil.Discard) cmd.SetOut(io.Discard)
err = cmd.Execute() err = cmd.Execute()
assert.NilError(t, err) assert.NilError(t, err)
@ -75,8 +75,7 @@ func TestManifestCreateAmend(t *testing.T) {
// attempt to overwrite a saved manifest and get refused // attempt to overwrite a saved manifest and get refused
func TestManifestCreateRefuseAmend(t *testing.T) { func TestManifestCreateRefuseAmend(t *testing.T) {
store, cleanup := newTempManifestStore(t) store := store.NewStore(t.TempDir())
defer cleanup()
cli := test.NewFakeCli(nil) cli := test.NewFakeCli(nil)
cli.SetManifestStore(store) cli.SetManifestStore(store)
@ -87,15 +86,14 @@ func TestManifestCreateRefuseAmend(t *testing.T) {
cmd := newCreateListCommand(cli) cmd := newCreateListCommand(cli)
cmd.SetArgs([]string{"example.com/list:v1", "example.com/alpine:3.0"}) cmd.SetArgs([]string{"example.com/list:v1", "example.com/alpine:3.0"})
cmd.SetOut(ioutil.Discard) cmd.SetOut(io.Discard)
err = cmd.Execute() err = cmd.Execute()
assert.Error(t, err, "refusing to amend an existing manifest list with no --amend flag") assert.Error(t, err, "refusing to amend an existing manifest list with no --amend flag")
} }
// attempt to make a manifest list without valid images // attempt to make a manifest list without valid images
func TestManifestCreateNoManifest(t *testing.T) { func TestManifestCreateNoManifest(t *testing.T) {
store, cleanup := newTempManifestStore(t) store := store.NewStore(t.TempDir())
defer cleanup()
cli := test.NewFakeCli(nil) cli := test.NewFakeCli(nil)
cli.SetManifestStore(store) cli.SetManifestStore(store)
@ -110,7 +108,7 @@ func TestManifestCreateNoManifest(t *testing.T) {
cmd := newCreateListCommand(cli) cmd := newCreateListCommand(cli)
cmd.SetArgs([]string{"example.com/list:v1", "example.com/alpine:3.0"}) cmd.SetArgs([]string{"example.com/list:v1", "example.com/alpine:3.0"})
cmd.SetOut(ioutil.Discard) cmd.SetOut(io.Discard)
err := cmd.Execute() err := cmd.Execute()
assert.Error(t, err, "No such image: example.com/alpine:3.0") assert.Error(t, err, "No such image: example.com/alpine:3.0")
} }

View File

@ -2,8 +2,7 @@ package manifest
import ( import (
"context" "context"
"io/ioutil" "io"
"os"
"testing" "testing"
"github.com/docker/cli/cli/manifest/store" "github.com/docker/cli/cli/manifest/store"
@ -21,13 +20,6 @@ import (
"gotest.tools/v3/golden" "gotest.tools/v3/golden"
) )
func newTempManifestStore(t *testing.T) (store.Store, func()) {
tmpdir, err := ioutil.TempDir("", "test-manifest-storage")
assert.NilError(t, err)
return store.NewStore(tmpdir), func() { os.RemoveAll(tmpdir) }
}
func ref(t *testing.T, name string) reference.Named { func ref(t *testing.T, name string) reference.Named {
named, err := reference.ParseNamed("example.com/" + name) named, err := reference.ParseNamed("example.com/" + name)
assert.NilError(t, err) assert.NilError(t, err)
@ -70,22 +62,20 @@ func fullImageManifest(t *testing.T, ref reference.Named) types.ImageManifest {
} }
func TestInspectCommandLocalManifestNotFound(t *testing.T) { func TestInspectCommandLocalManifestNotFound(t *testing.T) {
store, cleanup := newTempManifestStore(t) store := store.NewStore(t.TempDir())
defer cleanup()
cli := test.NewFakeCli(nil) cli := test.NewFakeCli(nil)
cli.SetManifestStore(store) cli.SetManifestStore(store)
cmd := newInspectCommand(cli) cmd := newInspectCommand(cli)
cmd.SetOut(ioutil.Discard) cmd.SetOut(io.Discard)
cmd.SetArgs([]string{"example.com/list:v1", "example.com/alpine:3.0"}) cmd.SetArgs([]string{"example.com/list:v1", "example.com/alpine:3.0"})
err := cmd.Execute() err := cmd.Execute()
assert.Error(t, err, "No such manifest: example.com/alpine:3.0") assert.Error(t, err, "No such manifest: example.com/alpine:3.0")
} }
func TestInspectCommandNotFound(t *testing.T) { func TestInspectCommandNotFound(t *testing.T) {
store, cleanup := newTempManifestStore(t) store := store.NewStore(t.TempDir())
defer cleanup()
cli := test.NewFakeCli(nil) cli := test.NewFakeCli(nil)
cli.SetManifestStore(store) cli.SetManifestStore(store)
@ -99,15 +89,14 @@ func TestInspectCommandNotFound(t *testing.T) {
}) })
cmd := newInspectCommand(cli) cmd := newInspectCommand(cli)
cmd.SetOut(ioutil.Discard) cmd.SetOut(io.Discard)
cmd.SetArgs([]string{"example.com/alpine:3.0"}) cmd.SetArgs([]string{"example.com/alpine:3.0"})
err := cmd.Execute() err := cmd.Execute()
assert.Error(t, err, "No such manifest: example.com/alpine:3.0") assert.Error(t, err, "No such manifest: example.com/alpine:3.0")
} }
func TestInspectCommandLocalManifest(t *testing.T) { func TestInspectCommandLocalManifest(t *testing.T) {
store, cleanup := newTempManifestStore(t) store := store.NewStore(t.TempDir())
defer cleanup()
cli := test.NewFakeCli(nil) cli := test.NewFakeCli(nil)
cli.SetManifestStore(store) cli.SetManifestStore(store)
@ -125,8 +114,7 @@ func TestInspectCommandLocalManifest(t *testing.T) {
} }
func TestInspectcommandRemoteManifest(t *testing.T) { func TestInspectcommandRemoteManifest(t *testing.T) {
store, cleanup := newTempManifestStore(t) store := store.NewStore(t.TempDir())
defer cleanup()
cli := test.NewFakeCli(nil) cli := test.NewFakeCli(nil)
cli.SetManifestStore(store) cli.SetManifestStore(store)
@ -137,7 +125,7 @@ func TestInspectcommandRemoteManifest(t *testing.T) {
}) })
cmd := newInspectCommand(cli) cmd := newInspectCommand(cli)
cmd.SetOut(ioutil.Discard) cmd.SetOut(io.Discard)
cmd.SetArgs([]string{"example.com/alpine:3.0"}) cmd.SetArgs([]string{"example.com/alpine:3.0"})
assert.NilError(t, cmd.Execute()) assert.NilError(t, cmd.Execute())
actual := cli.OutBuffer() actual := cli.OutBuffer()

View File

@ -2,9 +2,10 @@ package manifest
import ( import (
"context" "context"
"io/ioutil" "io"
"testing" "testing"
"github.com/docker/cli/cli/manifest/store"
manifesttypes "github.com/docker/cli/cli/manifest/types" manifesttypes "github.com/docker/cli/cli/manifest/types"
"github.com/docker/cli/internal/test" "github.com/docker/cli/internal/test"
"github.com/docker/distribution/reference" "github.com/docker/distribution/reference"
@ -42,14 +43,13 @@ func TestManifestPushErrors(t *testing.T) {
cli := test.NewFakeCli(nil) cli := test.NewFakeCli(nil)
cmd := newPushListCommand(cli) cmd := newPushListCommand(cli)
cmd.SetArgs(tc.args) cmd.SetArgs(tc.args)
cmd.SetOut(ioutil.Discard) cmd.SetOut(io.Discard)
assert.ErrorContains(t, cmd.Execute(), tc.expectedError) assert.ErrorContains(t, cmd.Execute(), tc.expectedError)
} }
} }
func TestManifestPush(t *testing.T) { func TestManifestPush(t *testing.T) {
store, sCleanup := newTempManifestStore(t) store := store.NewStore(t.TempDir())
defer sCleanup()
registry := newFakeRegistryClient() registry := newFakeRegistryClient()

View File

@ -1,17 +1,17 @@
package manifest package manifest
import ( import (
"io/ioutil" "io"
"testing" "testing"
"github.com/docker/cli/cli/manifest/store"
"github.com/docker/cli/internal/test" "github.com/docker/cli/internal/test"
"gotest.tools/v3/assert" "gotest.tools/v3/assert"
) )
// create two manifest lists and remove them both // create two manifest lists and remove them both
func TestRmSeveralManifests(t *testing.T) { func TestRmSeveralManifests(t *testing.T) {
store, cleanup := newTempManifestStore(t) store := store.NewStore(t.TempDir())
defer cleanup()
cli := test.NewFakeCli(nil) cli := test.NewFakeCli(nil)
cli.SetManifestStore(store) cli.SetManifestStore(store)
@ -31,7 +31,7 @@ func TestRmSeveralManifests(t *testing.T) {
cmd := newRmManifestListCommand(cli) cmd := newRmManifestListCommand(cli)
cmd.SetArgs([]string{"example.com/first:1", "example.com/second:2"}) cmd.SetArgs([]string{"example.com/first:1", "example.com/second:2"})
cmd.SetOut(ioutil.Discard) cmd.SetOut(io.Discard)
err = cmd.Execute() err = cmd.Execute()
assert.NilError(t, err) assert.NilError(t, err)
@ -43,8 +43,7 @@ func TestRmSeveralManifests(t *testing.T) {
// attempt to remove a manifest list which was never created // attempt to remove a manifest list which was never created
func TestRmManifestNotCreated(t *testing.T) { func TestRmManifestNotCreated(t *testing.T) {
store, cleanup := newTempManifestStore(t) store := store.NewStore(t.TempDir())
defer cleanup()
cli := test.NewFakeCli(nil) cli := test.NewFakeCli(nil)
cli.SetManifestStore(store) cli.SetManifestStore(store)
@ -56,7 +55,7 @@ func TestRmManifestNotCreated(t *testing.T) {
cmd := newRmManifestListCommand(cli) cmd := newRmManifestListCommand(cli)
cmd.SetArgs([]string{"example.com/first:1", "example.com/second:2"}) cmd.SetArgs([]string{"example.com/first:1", "example.com/second:2"})
cmd.SetOut(ioutil.Discard) cmd.SetOut(io.Discard)
err = cmd.Execute() err = cmd.Execute()
assert.Error(t, err, "No such manifest: example.com/first:1") assert.Error(t, err, "No such manifest: example.com/first:1")