|
|
|
@ -0,0 +1,46 @@ |
|
|
|
package arg |
|
|
|
|
|
|
|
import ( |
|
|
|
"bytes" |
|
|
|
"os" |
|
|
|
"testing" |
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert" |
|
|
|
"github.com/stretchr/testify/require" |
|
|
|
) |
|
|
|
|
|
|
|
func TestWriteUsage(t *testing.T) { |
|
|
|
expectedUsage := "usage: example [--verbose] [--dataset DATASET] [--optimize OPTIMIZE] INPUT [OUTPUT [OUTPUT ...]] \n" |
|
|
|
|
|
|
|
expectedHelp := `usage: example [--verbose] [--dataset DATASET] [--optimize OPTIMIZE] INPUT [OUTPUT [OUTPUT ...]] |
|
|
|
|
|
|
|
positional arguments: |
|
|
|
input |
|
|
|
output |
|
|
|
|
|
|
|
options: |
|
|
|
--verbose, -v verbosity level |
|
|
|
--dataset DATASET dataset to use |
|
|
|
--optimize OPTIMIZE, -O OPTIMIZE |
|
|
|
optimization level |
|
|
|
` |
|
|
|
var args struct { |
|
|
|
Input string `arg:"positional"` |
|
|
|
Output []string `arg:"positional"` |
|
|
|
Verbose bool `arg:"-v,help:verbosity level"` |
|
|
|
Dataset string `arg:"help:dataset to use"` |
|
|
|
Optimize int `arg:"-O,help:optimization level"` |
|
|
|
} |
|
|
|
p, err := NewParser(&args) |
|
|
|
require.NoError(t, err) |
|
|
|
|
|
|
|
os.Args[0] = "example" |
|
|
|
|
|
|
|
var usage bytes.Buffer |
|
|
|
p.WriteUsage(&usage) |
|
|
|
assert.Equal(t, expectedUsage, usage.String()) |
|
|
|
|
|
|
|
var help bytes.Buffer |
|
|
|
p.WriteHelp(&help) |
|
|
|
assert.Equal(t, expectedHelp, help.String()) |
|
|
|
} |