diff options
author | Christopher Speller <crspeller@gmail.com> | 2017-05-17 16:51:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-17 16:51:25 -0400 |
commit | d103ed6ca97ca5a2669f6cf5fe4b3d2a9c945f26 (patch) | |
tree | dbde13123c6add150448f7b75753ac022d862475 /vendor/github.com/spf13/cobra/cobra_test.go | |
parent | cd23b8139a9463b67e3096744321f6f4eb0ca40a (diff) | |
download | chat-d103ed6ca97ca5a2669f6cf5fe4b3d2a9c945f26.tar.gz chat-d103ed6ca97ca5a2669f6cf5fe4b3d2a9c945f26.tar.bz2 chat-d103ed6ca97ca5a2669f6cf5fe4b3d2a9c945f26.zip |
Upgrading server dependancies (#6431)
Diffstat (limited to 'vendor/github.com/spf13/cobra/cobra_test.go')
-rw-r--r-- | vendor/github.com/spf13/cobra/cobra_test.go | 185 |
1 files changed, 77 insertions, 108 deletions
diff --git a/vendor/github.com/spf13/cobra/cobra_test.go b/vendor/github.com/spf13/cobra/cobra_test.go index d6593a539..576c97d36 100644 --- a/vendor/github.com/spf13/cobra/cobra_test.go +++ b/vendor/github.com/spf13/cobra/cobra_test.go @@ -3,6 +3,7 @@ package cobra import ( "bytes" "fmt" + "os" "reflect" "runtime" "strings" @@ -12,13 +13,12 @@ import ( "github.com/spf13/pflag" ) -var tp, te, tt, t1, tr []string +var tp, te, tt, tr []string var rootPersPre, echoPre, echoPersPre, timesPersPre []string var flagb1, flagb2, flagb3, flagbr, flagbp bool var flags1, flags2a, flags2b, flags3, outs string var flagi1, flagi2, flagi3, flagi4, flagir int -var globalFlag1 bool -var flagEcho, rootcalled bool +var rootcalled bool var versionUsed int const strtwoParentHelp = "help message for parent flag strtwo" @@ -226,36 +226,36 @@ type resulter struct { Command *Command } -func fullSetupTest(input string) resulter { +func fullSetupTest(args ...string) resulter { c := initializeWithRootCmd() - return fullTester(c, input) + return fullTester(c, args...) } -func noRRSetupTestSilenced(input string) resulter { +func noRRSetupTestSilenced(args ...string) resulter { c := initialize() c.SilenceErrors = true c.SilenceUsage = true - return fullTester(c, input) + return fullTester(c, args...) } -func noRRSetupTest(input string) resulter { +func noRRSetupTest(args ...string) resulter { c := initialize() - return fullTester(c, input) + return fullTester(c, args...) } -func rootOnlySetupTest(input string) resulter { +func rootOnlySetupTest(args ...string) resulter { c := initializeWithRootCmd() - return simpleTester(c, input) + return simpleTester(c, args...) } -func simpleTester(c *Command, input string) resulter { +func simpleTester(c *Command, args ...string) resulter { buf := new(bytes.Buffer) // Testing flag with invalid input c.SetOutput(buf) - c.SetArgs(strings.Split(input, " ")) + c.SetArgs(args) err := c.Execute() output := buf.String() @@ -263,11 +263,11 @@ func simpleTester(c *Command, input string) resulter { return resulter{err, output, c} } -func simpleTesterC(c *Command, input string) resulter { +func simpleTesterC(c *Command, args ...string) resulter { buf := new(bytes.Buffer) // Testing flag with invalid input c.SetOutput(buf) - c.SetArgs(strings.Split(input, " ")) + c.SetArgs(args) cmd, err := c.ExecuteC() output := buf.String() @@ -275,13 +275,13 @@ func simpleTesterC(c *Command, input string) resulter { return resulter{err, output, cmd} } -func fullTester(c *Command, input string) resulter { +func fullTester(c *Command, args ...string) resulter { buf := new(bytes.Buffer) // Testing flag with invalid input c.SetOutput(buf) cmdEcho.AddCommand(cmdTimes) c.AddCommand(cmdPrint, cmdEcho, cmdSubNoRun, cmdCustomFlags, cmdDeprecated) - c.SetArgs(strings.Split(input, " ")) + c.SetArgs(args) err := c.Execute() output := buf.String() @@ -331,7 +331,7 @@ func checkOutputContains(t *testing.T, c *Command, check string) { } func TestSingleCommand(t *testing.T) { - noRRSetupTest("print one two") + noRRSetupTest("print", "one", "two") if te != nil || tt != nil { t.Error("Wrong command called") @@ -345,7 +345,7 @@ func TestSingleCommand(t *testing.T) { } func TestChildCommand(t *testing.T) { - noRRSetupTest("echo times one two") + noRRSetupTest("echo", "times", "one", "two") if te != nil || tp != nil { t.Error("Wrong command called") @@ -359,7 +359,7 @@ func TestChildCommand(t *testing.T) { } func TestCommandAlias(t *testing.T) { - noRRSetupTest("say times one two") + noRRSetupTest("say", "times", "one", "two") if te != nil || tp != nil { t.Error("Wrong command called") @@ -374,7 +374,7 @@ func TestCommandAlias(t *testing.T) { func TestPrefixMatching(t *testing.T) { EnablePrefixMatching = true - noRRSetupTest("ech times one two") + noRRSetupTest("ech", "times", "one", "two") if te != nil || tp != nil { t.Error("Wrong command called") @@ -392,7 +392,7 @@ func TestPrefixMatching(t *testing.T) { func TestNoPrefixMatching(t *testing.T) { EnablePrefixMatching = false - noRRSetupTest("ech times one two") + noRRSetupTest("ech", "times", "one", "two") if !(tt == nil && te == nil && tp == nil) { t.Error("Wrong command called") @@ -401,7 +401,7 @@ func TestNoPrefixMatching(t *testing.T) { func TestAliasPrefixMatching(t *testing.T) { EnablePrefixMatching = true - noRRSetupTest("sa times one two") + noRRSetupTest("sa", "times", "one", "two") if te != nil || tp != nil { t.Error("Wrong command called") @@ -418,7 +418,7 @@ func TestAliasPrefixMatching(t *testing.T) { func TestChildSameName(t *testing.T) { c := initializeWithSameName() c.AddCommand(cmdPrint, cmdEcho) - c.SetArgs(strings.Split("print one two", " ")) + c.SetArgs([]string{"print", "one", "two"}) c.Execute() if te != nil || tt != nil { @@ -436,7 +436,7 @@ func TestGrandChildSameName(t *testing.T) { c := initializeWithSameName() cmdTimes.AddCommand(cmdPrint) c.AddCommand(cmdTimes) - c.SetArgs(strings.Split("times print one two", " ")) + c.SetArgs([]string{"times", "print", "one", "two"}) c.Execute() if te != nil || tt != nil { @@ -453,13 +453,13 @@ func TestGrandChildSameName(t *testing.T) { func TestUsage(t *testing.T) { x := fullSetupTest("help") checkResultContains(t, x, cmdRootWithRun.Use+" [flags]") - x = fullSetupTest("help customflags") + x = fullSetupTest("help", "customflags") checkResultContains(t, x, cmdCustomFlags.Use) checkResultOmits(t, x, cmdCustomFlags.Use+" [flags]") } func TestFlagLong(t *testing.T) { - noRRSetupTest("echo --intone=13 something -- here") + noRRSetupTest("echo", "--intone=13", "something", "--", "here") if cmdEcho.ArgsLenAtDash() != 1 { t.Errorf("expected argsLenAtDash: %d but got %d", 1, cmdRootNoRun.ArgsLenAtDash()) @@ -476,7 +476,7 @@ func TestFlagLong(t *testing.T) { } func TestFlagShort(t *testing.T) { - noRRSetupTest("echo -i13 -- something here") + noRRSetupTest("echo", "-i13", "--", "something", "here") if cmdEcho.ArgsLenAtDash() != 0 { t.Errorf("expected argsLenAtDash: %d but got %d", 0, cmdRootNoRun.ArgsLenAtDash()) @@ -491,7 +491,7 @@ func TestFlagShort(t *testing.T) { t.Errorf("default flag value changed, 234 expected, %d given", flagi2) } - noRRSetupTest("echo -i 13 something here") + noRRSetupTest("echo", "-i", "13", "something", "here") if strings.Join(te, " ") != "something here" { t.Errorf("flags didn't leave proper args remaining..%s given", te) @@ -503,7 +503,7 @@ func TestFlagShort(t *testing.T) { t.Errorf("default flag value changed, 234 expected, %d given", flagi2) } - noRRSetupTest("print -i99 one two") + noRRSetupTest("print", "-i99", "one", "two") if strings.Join(tp, " ") != "one two" { t.Errorf("flags didn't leave proper args remaining..%s given", tp) @@ -517,14 +517,14 @@ func TestFlagShort(t *testing.T) { } func TestChildCommandFlags(t *testing.T) { - noRRSetupTest("echo times -j 99 one two") + noRRSetupTest("echo", "times", "-j", "99", "one", "two") if strings.Join(tt, " ") != "one two" { t.Errorf("flags didn't leave proper args remaining..%s given", tt) } // Testing with flag that shouldn't be persistent - r := noRRSetupTest("echo times -j 99 -i77 one two") + r := noRRSetupTest("echo", "times", "-j", "99", "-i77", "one", "two") if r.Error == nil { t.Errorf("invalid flag should generate error") @@ -543,7 +543,7 @@ func TestChildCommandFlags(t *testing.T) { } // Testing with flag only existing on child - r = noRRSetupTest("echo -j 99 -i77 one two") + r = noRRSetupTest("echo", "-j", "99", "-i77", "one", "two") if r.Error == nil { t.Errorf("invalid flag should generate error") @@ -553,7 +553,7 @@ func TestChildCommandFlags(t *testing.T) { } // Testing with persistent flag overwritten by child - noRRSetupTest("echo times --strtwo=child one two") + noRRSetupTest("echo", "times", "--strtwo=child", "one", "two") if flags2b != "child" { t.Errorf("flag value should be child, %s given", flags2b) @@ -564,7 +564,7 @@ func TestChildCommandFlags(t *testing.T) { } // Testing flag with invalid input - r = noRRSetupTest("echo -i10E") + r = noRRSetupTest("echo", "-i10E") if r.Error == nil { t.Errorf("invalid input should generate error") @@ -575,7 +575,7 @@ func TestChildCommandFlags(t *testing.T) { } func TestTrailingCommandFlags(t *testing.T) { - x := fullSetupTest("echo two -x") + x := fullSetupTest("echo", "two", "-x") if x.Error == nil { t.Errorf("invalid flag should generate error") @@ -586,7 +586,7 @@ func TestInvalidSubcommandFlags(t *testing.T) { cmd := initializeWithRootCmd() cmd.AddCommand(cmdTimes) - result := simpleTester(cmd, "times --inttwo=2 --badflag=bar") + result := simpleTester(cmd, "times", "--inttwo=2", "--badflag=bar") // given that we are not checking here result.Error we check for // stock usage message checkResultContains(t, result, "cobra-test times [# times]") @@ -616,14 +616,14 @@ func TestSubcommandExecuteC(t *testing.T) { cmd.AddCommand(double, echo) - result := simpleTesterC(cmd, "double hello world") + result := simpleTesterC(cmd, "double", "hello", "world") checkResultContains(t, result, "hello world hello world") if result.Command.Name() != "double" { t.Errorf("invalid cmd returned from ExecuteC: should be 'double' but got %s", result.Command.Name()) } - result = simpleTesterC(cmd, "echo msg to be echoed") + result = simpleTesterC(cmd, "echo", "msg", "to", "be", "echoed") checkResultContains(t, result, "msg to be echoed") if result.Command.Name() != "echo" { @@ -649,16 +649,16 @@ func TestSubcommandArgEvaluation(t *testing.T) { } first.AddCommand(second) - result := simpleTester(cmd, "first second first third") + result := simpleTester(cmd, "first", "second", "first", "third") - expectedOutput := fmt.Sprintf("%v", []string{"first third"}) + expectedOutput := fmt.Sprint([]string{"first third"}) if result.Output != expectedOutput { t.Errorf("exptected %v, got %v", expectedOutput, result.Output) } } func TestPersistentFlags(t *testing.T) { - fullSetupTest("echo -s something -p more here") + fullSetupTest("echo", "-s", "something", "-p", "more", "here") // persistentFlag should act like normal flag on its own command if strings.Join(te, " ") != "more here" { @@ -672,7 +672,7 @@ func TestPersistentFlags(t *testing.T) { } // persistentFlag should act like normal flag on its own command - fullSetupTest("echo times -s again -c -p test here") + fullSetupTest("echo", "times", "-s", "again", "-c", "-p", "test", "here") if strings.Join(tt, " ") != "test here" { t.Errorf("flags didn't leave proper args remaining. %s given", tt) @@ -694,17 +694,17 @@ func TestHelpCommand(t *testing.T) { x := fullSetupTest("help") checkResultContains(t, x, cmdRootWithRun.Long) - x = fullSetupTest("help echo") + x = fullSetupTest("help", "echo") checkResultContains(t, x, cmdEcho.Long) - x = fullSetupTest("help echo times") + x = fullSetupTest("help", "echo", "times") checkResultContains(t, x, cmdTimes.Long) } func TestChildCommandHelp(t *testing.T) { - c := noRRSetupTest("print --help") + c := noRRSetupTest("print", "--help") checkResultContains(t, c, strtwoParentHelp) - r := noRRSetupTest("echo times --help") + r := noRRSetupTest("echo", "times", "--help") checkResultContains(t, r, strtwoChildHelp) } @@ -716,7 +716,7 @@ func TestNonRunChildHelp(t *testing.T) { func TestRunnableRootCommand(t *testing.T) { x := fullSetupTest("") - if rootcalled != true { + if !rootcalled { t.Errorf("Root Function was not called\n out:%v", x.Error) } } @@ -750,7 +750,6 @@ func TestVisitParents(t *testing.T) { } func TestRunnableRootCommandNilInput(t *testing.T) { - var emptyArg []string c := initializeWithRootCmd() buf := new(bytes.Buffer) @@ -758,23 +757,20 @@ func TestRunnableRootCommandNilInput(t *testing.T) { c.SetOutput(buf) cmdEcho.AddCommand(cmdTimes) c.AddCommand(cmdPrint, cmdEcho) - c.SetArgs(emptyArg) + c.SetArgs([]string{}) err := c.Execute() if err != nil { t.Errorf("Execute() failed with %v", err) } - if rootcalled != true { + if !rootcalled { t.Errorf("Root Function was not called") } } func TestRunnableRootCommandEmptyInput(t *testing.T) { - args := make([]string, 3) - args[0] = "" - args[1] = "--introot=12" - args[2] = "" + args := []string{"", "--introot=12", ""} c := initializeWithRootCmd() buf := new(bytes.Buffer) @@ -786,13 +782,13 @@ func TestRunnableRootCommandEmptyInput(t *testing.T) { c.Execute() - if rootcalled != true { - t.Errorf("Root Function was not called.\n\nOutput was:\n\n%s\n", buf) + if !rootcalled { + t.Errorf("Root Function was not called.\nOutput was:\n%s\n", buf) } } func TestInvalidSubcommandWhenArgsAllowed(t *testing.T) { - fullSetupTest("echo invalid-sub") + fullSetupTest("echo", "invalid-sub") if te[0] != "invalid-sub" { t.Errorf("Subcommand didn't work...") @@ -800,9 +796,9 @@ func TestInvalidSubcommandWhenArgsAllowed(t *testing.T) { } func TestRootFlags(t *testing.T) { - fullSetupTest("-i 17 -b") + fullSetupTest("-i", "17", "-b") - if flagbr != true { + if !flagbr { t.Errorf("flag value should be true, %v given", flagbr) } @@ -825,7 +821,7 @@ func TestRootHelp(t *testing.T) { t.Errorf("--help shouldn't display subcommand's usage, Got: \n %s", x.Output) } - x = fullSetupTest("echo --help") + x = fullSetupTest("echo", "--help") if strings.Contains(x.Output, cmdTimes.Use) { t.Errorf("--help shouldn't display subsubcommand's usage, Got: \n %s", x.Output) @@ -860,7 +856,6 @@ func TestFlagAccess(t *testing.T) { } func TestNoNRunnableRootCommandNilInput(t *testing.T) { - var args []string c := initialize() buf := new(bytes.Buffer) @@ -868,7 +863,7 @@ func TestNoNRunnableRootCommandNilInput(t *testing.T) { c.SetOutput(buf) cmdEcho.AddCommand(cmdTimes) c.AddCommand(cmdPrint, cmdEcho) - c.SetArgs(args) + c.SetArgs([]string{}) c.Execute() @@ -887,7 +882,7 @@ func TestRootNoCommandHelp(t *testing.T) { t.Errorf("--help shouldn't trigger an error, Got: \n %s", x.Output) } - x = rootOnlySetupTest("echo --help") + x = rootOnlySetupTest("echo", "--help") checkResultOmits(t, x, "Available Commands:") checkResultOmits(t, x, "for more information about a command") @@ -905,7 +900,7 @@ func TestRootUnknownCommand(t *testing.T) { t.Errorf("Unexpected response.\nExpecting to be:\n %q\nGot:\n %q\n", s, r.Output) } - r = noRRSetupTest("--strtwo=a bogus") + r = noRRSetupTest("--strtwo=a", "bogus") if r.Output != s { t.Errorf("Unexpected response.\nExpecting to be:\n %q\nGot:\n %q\n", s, r.Output) } @@ -918,7 +913,7 @@ func TestRootUnknownCommandSilenced(t *testing.T) { t.Errorf("Unexpected response.\nExpecting to be: \n\"\"\n Got:\n %q\n", r.Output) } - r = noRRSetupTestSilenced("--strtwo=a bogus") + r = noRRSetupTestSilenced("--strtwo=a", "bogus") if r.Output != "" { t.Errorf("Unexpected response.\nExpecting to be:\n\"\"\nGot:\n %q\n", r.Output) } @@ -965,56 +960,27 @@ func TestRootSuggestions(t *testing.T) { func TestFlagsBeforeCommand(t *testing.T) { // short without space - x := fullSetupTest("-i10 echo") + x := fullSetupTest("-i10", "echo") if x.Error != nil { t.Errorf("Valid Input shouldn't have errors, got:\n %q", x.Error) } - // short (int) with equals - // It appears that pflags doesn't support this... - // Commenting out until support can be added - - //x = noRRSetupTest("echo -i=10") - //if x.Error != nil { - //t.Errorf("Valid Input shouldn't have errors, got:\n %s", x.Error) - //} + x = noRRSetupTest("echo", "-i=10") + if x.Error != nil { + t.Errorf("Valid Input shouldn't have errors, got:\n %s", x.Error) + } // long with equals - x = noRRSetupTest("--intone=123 echo one two") + x = noRRSetupTest("--intone=123", "echo", "one", "two") if x.Error != nil { t.Errorf("Valid Input shouldn't have errors, got:\n %s", x.Error) } // With parsing error properly reported - x = fullSetupTest("-i10E echo") + x = fullSetupTest("-i10E", "echo") if !strings.Contains(x.Error.Error(), "invalid syntax") { t.Errorf("Wrong error message displayed, \n %s", x.Error) } - - //With quotes - x = fullSetupTest("-s=\"walking\" echo") - if x.Error != nil { - t.Errorf("Valid Input shouldn't have errors, got:\n %q", x.Error) - } - - //With quotes and space - x = fullSetupTest("-s=\"walking fast\" echo") - if x.Error != nil { - t.Errorf("Valid Input shouldn't have errors, got:\n %q", x.Error) - } - - //With inner quote - x = fullSetupTest("-s=\"walking \\\"Inner Quote\\\" fast\" echo") - if x.Error != nil { - t.Errorf("Valid Input shouldn't have errors, got:\n %q", x.Error) - } - - //With quotes and space - x = fullSetupTest("-s=\"walking \\\"Inner Quote\\\" fast\" echo") - if x.Error != nil { - t.Errorf("Valid Input shouldn't have errors, got:\n %q", x.Error) - } - } func TestRemoveCommand(t *testing.T) { @@ -1080,7 +1046,7 @@ func TestDeprecatedSub(t *testing.T) { } func TestPreRun(t *testing.T) { - noRRSetupTest("echo one two") + noRRSetupTest("echo", "one", "two") if echoPre == nil || echoPersPre == nil { t.Error("PreRun or PersistentPreRun not called") } @@ -1088,7 +1054,7 @@ func TestPreRun(t *testing.T) { t.Error("Wrong *Pre functions called!") } - noRRSetupTest("echo times one two") + noRRSetupTest("echo", "times", "one", "two") if timesPersPre == nil { t.Error("PreRun or PersistentPreRun not called") } @@ -1096,7 +1062,7 @@ func TestPreRun(t *testing.T) { t.Error("Wrong *Pre functions called!") } - noRRSetupTest("print one two") + noRRSetupTest("print", "one", "two") if rootPersPre == nil { t.Error("Parent PersistentPreRun not called but should not have been") } @@ -1114,10 +1080,10 @@ func TestPeristentPreRunPropagation(t *testing.T) { // Now add cmdPrint to rootCmd rootCmd.AddCommand(cmdPrint) - rootCmd.SetArgs(strings.Split("print echosub lala", " ")) + rootCmd.SetArgs([]string{"print", "echosub", "lala"}) rootCmd.Execute() - if rootPersPre == nil || len(rootPersPre) == 0 || rootPersPre[0] != "lala" { + if len(rootPersPre) == 0 || rootPersPre[0] != "lala" { t.Error("RootCmd PersistentPreRun not called but should have been") } } @@ -1149,10 +1115,13 @@ func TestGlobalNormFuncPropagation(t *testing.T) { func TestFlagOnPflagCommandLine(t *testing.T) { flagName := "flagOnCommandLine" - pflag.CommandLine.String(flagName, "", "about my flag") + pflag.String(flagName, "", "about my flag") r := fullSetupTest("--help") checkResultContains(t, r, flagName) + + // Reset pflag.CommandLine flagset. + pflag.CommandLine = pflag.NewFlagSet(os.Args[0], pflag.ExitOnError) } func TestAddTemplateFunctions(t *testing.T) { |