cli args moved from Init() to Parse()
This commit is contained in:
+29
-40
@@ -33,7 +33,7 @@ func TestVerbose(t *testing.T) {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
if err := cli.Parse(); err != nil {
|
||||
if err := cli.Parse(commonArgs()); err != nil {
|
||||
t.Error(err)
|
||||
} else if gd.verbose != 3 {
|
||||
t.Errorf("Expected verbose level 3, got %d", gd.verbose)
|
||||
@@ -134,7 +134,7 @@ Option: version, Type: n/a, Value: <nil>
|
||||
return
|
||||
}
|
||||
tracer := NewSimpleOptionTracer(&sb)
|
||||
if err := cli.Parse(); err == nil {
|
||||
if err := cli.Parse(commonArgs()); err == nil {
|
||||
cli.TraceOptions(tracer)
|
||||
if sb.String() != expectedOutput {
|
||||
t.Errorf("Parsed options do not match expected list.\nGot:\n%q\nExpected:\n%q", sb.String(), expectedOutput)
|
||||
@@ -144,8 +144,8 @@ Option: version, Type: n/a, Value: <nil>
|
||||
}
|
||||
}
|
||||
|
||||
func initCli(cli *CliParser, gd *GlobalData) (err error) {
|
||||
args := []string{
|
||||
func commonArgs() []string {
|
||||
return []string{
|
||||
"ddt-ocr",
|
||||
"--log", "all",
|
||||
"-t",
|
||||
@@ -157,7 +157,10 @@ func initCli(cli *CliParser, gd *GlobalData) (err error) {
|
||||
"--input-name=my-scan.pdf",
|
||||
"scan1.pdf", "scan2.pdf", "result.txt", "report.txt",
|
||||
}
|
||||
cli.Init(args, version, "cli-test")
|
||||
}
|
||||
|
||||
func initCli(cli *CliParser, gd *GlobalData) (err error) {
|
||||
cli.Init(version, "cli-test")
|
||||
err = gd.addOptions(cli)
|
||||
return
|
||||
}
|
||||
@@ -168,8 +171,8 @@ func TestOptErrorUnknownOption(t *testing.T) {
|
||||
var cli CliParser
|
||||
var gd GlobalData
|
||||
|
||||
if err := initCliUnknownOption(&cli, &gd, unknownOption); err == nil {
|
||||
if err = cli.Parse(); err != nil {
|
||||
if err := initCliUnknownOption(&cli, &gd); err == nil {
|
||||
if err = cli.Parse(commonBadArgs(unknownOption)); err != nil {
|
||||
if err.Error() != expectedErr.Error() {
|
||||
t.Errorf("Invalid error message.\nGot:\n%v\nExpected:\n%v", err, expectedErr)
|
||||
}
|
||||
@@ -182,13 +185,15 @@ func TestOptErrorUnknownOption(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func initCliUnknownOption(cli *CliParser, gd *GlobalData, option string) (err error) {
|
||||
args := []string{
|
||||
func commonBadArgs(option string) []string {
|
||||
return []string{
|
||||
"ddt-ocr",
|
||||
option,
|
||||
"scan1.pdf", "scan2.pdf", "result.txt", "report.txt",
|
||||
}
|
||||
cli.Init(args, version, "cli-test")
|
||||
}
|
||||
func initCliUnknownOption(cli *CliParser, gd *GlobalData) (err error) {
|
||||
cli.Init(version, "cli-test")
|
||||
err = gd.addOptions(cli)
|
||||
return
|
||||
}
|
||||
@@ -199,8 +204,8 @@ func TestOptErrorMissingOptionValue(t *testing.T) {
|
||||
var cli CliParser
|
||||
var gd GlobalData
|
||||
|
||||
if err := initCliMissingOptionValue(&cli, &gd, missingValueOption); err == nil {
|
||||
if err = cli.Parse(); err != nil {
|
||||
if err := initCliMissingOptionValue(&cli, &gd); err == nil {
|
||||
if err = cli.Parse(commonBadArgs(missingValueOption)); err != nil {
|
||||
if err.Error() != expectedErr.Error() {
|
||||
t.Errorf("Invalid error message.\nGot:\n%v\nExpected:\n%v", err, expectedErr)
|
||||
}
|
||||
@@ -213,25 +218,20 @@ func TestOptErrorMissingOptionValue(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func initCliMissingOptionValue(cli *CliParser, gd *GlobalData, option string) (err error) {
|
||||
args := []string{
|
||||
"ddt-ocr",
|
||||
option,
|
||||
"scan1.pdf", "scan2.pdf", "result.txt", "report.txt",
|
||||
}
|
||||
cli.Init(args, version, "cli-test")
|
||||
func initCliMissingOptionValue(cli *CliParser, gd *GlobalData) (err error) {
|
||||
cli.Init(version, "cli-test")
|
||||
err = gd.addOptions(cli)
|
||||
return
|
||||
}
|
||||
|
||||
func TestOptErrorInvalidOptionValue(t *testing.T) {
|
||||
const missingInvalidValueOption = "--page"
|
||||
var expectedErr = errInvalidOptionValue("page", "some", "num-array")
|
||||
var expectedErr = errInvalidOptionValue("page", "scan1.pdf", "num-array")
|
||||
var cli CliParser
|
||||
var gd GlobalData
|
||||
|
||||
if err := initCliInvalidOptionValue(&cli, &gd, missingInvalidValueOption); err == nil {
|
||||
if err = cli.Parse(); err != nil {
|
||||
if err := initCliInvalidOptionValue(&cli, &gd); err == nil {
|
||||
if err = cli.Parse(commonBadArgs(missingInvalidValueOption)); err != nil {
|
||||
if err.Error() != expectedErr.Error() {
|
||||
t.Errorf("Invalid error message.\nGot:\n%v\nExpected:\n%v", err, expectedErr)
|
||||
}
|
||||
@@ -244,13 +244,8 @@ func TestOptErrorInvalidOptionValue(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func initCliInvalidOptionValue(cli *CliParser, gd *GlobalData, option string) (err error) {
|
||||
args := []string{
|
||||
"ddt-ocr",
|
||||
option, "some",
|
||||
"scan1.pdf", "scan2.pdf", "result.txt", "report.txt",
|
||||
}
|
||||
cli.Init(args, version, "cli-test")
|
||||
func initCliInvalidOptionValue(cli *CliParser, gd *GlobalData) (err error) {
|
||||
cli.Init(version, "cli-test")
|
||||
err = gd.addOptions(cli)
|
||||
return
|
||||
}
|
||||
@@ -262,7 +257,7 @@ func TestArgErrorMissingRequired(t *testing.T) {
|
||||
var gd GlobalData
|
||||
|
||||
if err := initCliMissingRequiredArg(&cli, &gd); err == nil {
|
||||
if err = cli.Parse(); err != nil {
|
||||
if err = cli.Parse([]string{"ddt-ocr"}); err != nil {
|
||||
if err.Error() != expectedErr.Error() {
|
||||
t.Errorf("Invalid error message.\nGot:\n%v\nExpected:\n%v", err, expectedErr)
|
||||
}
|
||||
@@ -276,15 +271,12 @@ func TestArgErrorMissingRequired(t *testing.T) {
|
||||
}
|
||||
|
||||
func initCliMissingRequiredArg(cli *CliParser, gd *GlobalData) (err error) {
|
||||
args := []string{
|
||||
"ddt-ocr",
|
||||
}
|
||||
cli.Init(args, version, "cli-test")
|
||||
cli.Init(version, "cli-test")
|
||||
err = gd.addOptions(cli)
|
||||
return
|
||||
}
|
||||
|
||||
func TestArgErrorRepeat(t *testing.T) {
|
||||
func TestArgErrorRepeatProperty(t *testing.T) {
|
||||
var expectedErr = fmt.Errorf(`repeat property already set for arg <other>`)
|
||||
var cli CliParser
|
||||
var gd GlobalData
|
||||
@@ -299,17 +291,14 @@ func TestArgErrorRepeat(t *testing.T) {
|
||||
}
|
||||
|
||||
func initCliRepeatArg(cli *CliParser, gd *GlobalData) (err error) {
|
||||
args := []string{
|
||||
"ddt-ocr",
|
||||
"scan1.pdf", "scan2.pdf", "result.txt", "report.txt",
|
||||
}
|
||||
cli.Init(args, version, "cli-test")
|
||||
cli.Init(version, "cli-test")
|
||||
if err = gd.addOptions(cli); err == nil {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
err = r.(error)
|
||||
}
|
||||
}()
|
||||
// This will raise error because we can't declare two args array
|
||||
cli.AddStringArrayArg("other", true, nil, "other args")
|
||||
cli.AddStringArrayArg("other2", true, nil, "other args 2")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user