mirror of https://github.com/docker/cli.git
Fix `docker invalid-subcommand` regression
Starting with a3fe7d62b8
,
`docker invalid-subcommand` did not exit with non-zero status.
Fix #1428
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
This commit is contained in:
parent
ab50c2f2b2
commit
d708cada43
|
@ -33,6 +33,9 @@ func newDockerCommand(dockerCli *command.DockerCli) *cobra.Command {
|
||||||
SilenceErrors: true,
|
SilenceErrors: true,
|
||||||
TraverseChildren: true,
|
TraverseChildren: true,
|
||||||
Args: noArgs,
|
Args: noArgs,
|
||||||
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
return command.ShowHelp(dockerCli.Err())(cmd, args)
|
||||||
|
},
|
||||||
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
|
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
|
||||||
// flags must be the top-level command flags, not cmd.Flags()
|
// flags must be the top-level command flags, not cmd.Flags()
|
||||||
opts.Common.SetDefaultOptions(flags)
|
opts.Common.SetDefaultOptions(flags)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
@ -31,3 +32,20 @@ func TestExitStatusForInvalidSubcommandWithHelpFlag(t *testing.T) {
|
||||||
err := cmd.Execute()
|
err := cmd.Execute()
|
||||||
assert.Error(t, err, "unknown help topic: invalid")
|
assert.Error(t, err, "unknown help topic: invalid")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestExitStatusForInvalidSubcommand(t *testing.T) {
|
||||||
|
discard := ioutil.Discard
|
||||||
|
cmd := newDockerCommand(command.NewDockerCli(os.Stdin, discard, discard, false, nil))
|
||||||
|
cmd.SetArgs([]string{"invalid"})
|
||||||
|
err := cmd.Execute()
|
||||||
|
assert.Check(t, is.ErrorContains(err, "docker: 'invalid' is not a docker command."))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestVersion(t *testing.T) {
|
||||||
|
var b bytes.Buffer
|
||||||
|
cmd := newDockerCommand(command.NewDockerCli(os.Stdin, &b, &b, false, nil))
|
||||||
|
cmd.SetArgs([]string{"--version"})
|
||||||
|
err := cmd.Execute()
|
||||||
|
assert.NilError(t, err)
|
||||||
|
assert.Check(t, is.Contains(b.String(), "Docker version"))
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue