Simplify setting file/extension annotations on a flag

This commit is contained in:
Jordan Liggitt
2015-06-22 14:28:16 -04:00
parent 312092086b
commit 6119fc993e
2 changed files with 38 additions and 27 deletions

View File

@ -42,23 +42,19 @@ func TestBashCompletions(t *testing.T) {
// required flag
c.MarkFlagRequired("introot")
// valid nounds
// valid nouns
validArgs := []string{"pods", "nodes", "services", "replicationControllers"}
c.ValidArgs = validArgs
// filename extentions
annotations := make([]string, 3)
annotations[0] = "json"
annotations[1] = "yaml"
annotations[2] = "yml"
annotation := make(map[string][]string)
annotation[BashCompFilenameExt] = annotations
// filename
var flagval string
c.Flags().StringVar(&flagval, "filename", "", "Enter a filename")
flag := c.Flags().Lookup("filename")
flag.Annotations = annotation
c.MarkFlagFilename("filename", "json", "yaml", "yml")
// filename extensions
var flagvalExt string
c.Flags().StringVar(&flagvalExt, "filename-ext", "", "Enter a filename (extension limited)")
c.MarkFlagFilename("filename-ext")
out := new(bytes.Buffer)
c.GenBashCompletion(out)
@ -75,7 +71,9 @@ func TestBashCompletions(t *testing.T) {
check(t, str, `COMPREPLY=( "hello" )`)
// check for required nouns
check(t, str, `must_have_one_noun+=("pods")`)
// check for filename extention flags
// check for filename extension flags
check(t, str, `flags_completion+=("_filedir")`)
// check for filename extension flags
check(t, str, `flags_completion+=("__handle_filename_extension_flag json|yaml|yml")`)
checkOmit(t, str, cmdDeprecated.Name())