mirror of
https://github.com/spf13/cobra
synced 2024-11-24 14:47:12 +00:00
parent
3454e0e28e
commit
7d22e77cce
3 changed files with 24 additions and 8 deletions
|
@ -1150,12 +1150,12 @@ func TestGlobalNormFuncPropagation(t *testing.T) {
|
||||||
|
|
||||||
func TestFlagOnPflagCommandLine(t *testing.T) {
|
func TestFlagOnPflagCommandLine(t *testing.T) {
|
||||||
flagName := "flagOnCommandLine"
|
flagName := "flagOnCommandLine"
|
||||||
pflag.CommandLine.String(flagName, "", "about my flag")
|
pflag.String(flagName, "", "about my flag")
|
||||||
r := fullSetupTest("--help")
|
r := fullSetupTest("--help")
|
||||||
|
|
||||||
checkResultContains(t, r, flagName)
|
checkResultContains(t, r, flagName)
|
||||||
|
|
||||||
// reset CommandLine flagset
|
// Reset pflag.CommandLine flagset.
|
||||||
pflag.CommandLine = pflag.NewFlagSet(os.Args[0], pflag.ExitOnError)
|
pflag.CommandLine = pflag.NewFlagSet(os.Args[0], pflag.ExitOnError)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1275,8 +1275,8 @@ func (c *Command) Parent() *Command {
|
||||||
// mergePersistentFlags merges c.PersistentFlags() to c.Flags()
|
// mergePersistentFlags merges c.PersistentFlags() to c.Flags()
|
||||||
// and adds missing persistent flags of all parents.
|
// and adds missing persistent flags of all parents.
|
||||||
func (c *Command) mergePersistentFlags() {
|
func (c *Command) mergePersistentFlags() {
|
||||||
c.Flags().AddFlagSet(c.PersistentFlags())
|
|
||||||
c.updateParentsPflags()
|
c.updateParentsPflags()
|
||||||
|
c.Flags().AddFlagSet(c.PersistentFlags())
|
||||||
c.Flags().AddFlagSet(c.parentsPflags)
|
c.Flags().AddFlagSet(c.parentsPflags)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -227,7 +227,7 @@ func TestFlagErrorFunc(t *testing.T) {
|
||||||
|
|
||||||
// TestSortedFlags checks,
|
// TestSortedFlags checks,
|
||||||
// if cmd.LocalFlags() is unsorted when cmd.Flags().SortFlags set to false.
|
// if cmd.LocalFlags() is unsorted when cmd.Flags().SortFlags set to false.
|
||||||
// https://github.com/spf13/cobra/issues/404
|
// Related to https://github.com/spf13/cobra/issues/404.
|
||||||
func TestSortedFlags(t *testing.T) {
|
func TestSortedFlags(t *testing.T) {
|
||||||
cmd := &Command{}
|
cmd := &Command{}
|
||||||
cmd.Flags().SortFlags = false
|
cmd.Flags().SortFlags = false
|
||||||
|
@ -263,13 +263,13 @@ func isStringInStringSlice(s string, ss []string) bool {
|
||||||
// TestHelpFlagInHelp checks,
|
// TestHelpFlagInHelp checks,
|
||||||
// if '--help' flag is shown in help for child (executing `parent help child`),
|
// if '--help' flag is shown in help for child (executing `parent help child`),
|
||||||
// that has no other flags.
|
// that has no other flags.
|
||||||
// https://github.com/spf13/cobra/issues/302
|
// Related to https://github.com/spf13/cobra/issues/302.
|
||||||
func TestHelpFlagInHelp(t *testing.T) {
|
func TestHelpFlagInHelp(t *testing.T) {
|
||||||
output := new(bytes.Buffer)
|
output := new(bytes.Buffer)
|
||||||
parent := &Command{Use: "parent", Long: "long", Run: func(*Command, []string) { return }}
|
parent := &Command{Use: "parent", Run: func(*Command, []string) {}}
|
||||||
parent.SetOutput(output)
|
parent.SetOutput(output)
|
||||||
|
|
||||||
child := &Command{Use: "child", Long: "long", Run: func(*Command, []string) { return }}
|
child := &Command{Use: "child", Run: func(*Command, []string) {}}
|
||||||
parent.AddCommand(child)
|
parent.AddCommand(child)
|
||||||
|
|
||||||
parent.SetArgs([]string{"help", "child"})
|
parent.SetArgs([]string{"help", "child"})
|
||||||
|
@ -279,6 +279,22 @@ func TestHelpFlagInHelp(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if !strings.Contains(output.String(), "[flags]") {
|
if !strings.Contains(output.String(), "[flags]") {
|
||||||
t.Fatalf("\nExpecting to contain: %v\nGot: %v", "[flags]", output.String())
|
t.Errorf("\nExpecting to contain: %v\nGot: %v", "[flags]", output.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TestMergeCommandLineToFlags checks,
|
||||||
|
// if pflag.CommandLine is correctly merged to c.Flags() after first call
|
||||||
|
// of c.mergePersistentFlags.
|
||||||
|
// Related to https://github.com/spf13/cobra/issues/443.
|
||||||
|
func TestMergeCommandLineToFlags(t *testing.T) {
|
||||||
|
pflag.Bool("boolflag", false, "")
|
||||||
|
c := &Command{Use: "c", Run: func(*Command, []string) {}}
|
||||||
|
c.mergePersistentFlags()
|
||||||
|
if c.Flags().Lookup("boolflag") == nil {
|
||||||
|
t.Fatal("Expecting to have flag from CommandLine in c.Flags()")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reset pflag.CommandLine flagset.
|
||||||
|
pflag.CommandLine = pflag.NewFlagSet(os.Args[0], pflag.ExitOnError)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue