Improve Code and Add Test Case

This commit is contained in:
Ajitem Sahasrabuddhe 2019-09-11 09:21:45 +05:30
parent 7d6a604106
commit cbb9e015b8
No known key found for this signature in database
GPG Key ID: 782DEBC01D3967A5
2 changed files with 11 additions and 2 deletions

View File

@ -314,14 +314,16 @@ func checkRequiredFlags(flags []Flag, context *Context) requiredFlagsErr {
for _, f := range flags {
if rf, ok := f.(RequiredFlag); ok && rf.IsRequired() {
key := strings.Split(f.GetName(), ",")
shortName := strings.TrimSpace(key[0])
if len(key) > 1 {
// has short name
if !context.IsSet(strings.TrimSpace(key[0])) && !context.IsSet(strings.TrimSpace(key[1])) {
longName := strings.TrimSpace(key[1])
if !context.IsSet(shortName) && !context.IsSet(longName) {
missingFlags = append(missingFlags, key[0])
}
} else {
// does not have short name
if !context.IsSet(strings.TrimSpace(key[0])) {
if !context.IsSet(shortName) {
missingFlags = append(missingFlags, key[0])
}
}

View File

@ -517,6 +517,13 @@ func TestCheckRequiredFlags(t *testing.T) {
},
parseInput: []string{"--requiredFlag", "myinput", "--requiredFlagTwo", "myinput"},
},
{
testCase: "required_flag_with_short_name",
flags: []Flag{
StringSliceFlag{Name: "names, N", Required: true},
},
parseInput: []string{"-N", "asd", "-N", "qwe"},
},
}
for _, test := range tdata {
t.Run(test.testCase, func(t *testing.T) {