diff options
| author | Alex Flint <[email protected]> | 2016-01-18 11:37:38 -0800 |
|---|---|---|
| committer | Alex Flint <[email protected]> | 2016-01-18 11:37:38 -0800 |
| commit | e560d079baf3881884b897c4cc5850675aad7c15 (patch) | |
| tree | 8c0aca1232c96f25124120005d7e32ce938a3396 /parse_test.go | |
| parent | c9155bb0c3e57557bae7d7c54b60ab8fe2e95211 (diff) | |
| parent | 8dd29d34bf0186945d53ba1ca0cde2324952a6e9 (diff) | |
Merge pull request #9 from brettlangdon/dev/environment.variables.sqwished
Add support for environment variables
Diffstat (limited to 'parse_test.go')
| -rw-r--r-- | parse_test.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/parse_test.go b/parse_test.go index 7fca76a..f3e7350 100644 --- a/parse_test.go +++ b/parse_test.go @@ -357,3 +357,53 @@ func TestMustParse(t *testing.T) { assert.Equal(t, "bar", args.Foo) assert.NotNil(t, parser) } + +func TestEnvironmentVariable(t *testing.T) { + var args struct { + Foo string `arg:"env"` + } + os.Setenv("FOO", "bar") + os.Args = []string{"example"} + MustParse(&args) + assert.Equal(t, "bar", args.Foo) +} + +func TestEnvironmentVariableOverrideName(t *testing.T) { + var args struct { + Foo string `arg:"env:BAZ"` + } + os.Setenv("BAZ", "bar") + os.Args = []string{"example"} + MustParse(&args) + assert.Equal(t, "bar", args.Foo) +} + +func TestEnvironmentVariableOverrideArgument(t *testing.T) { + var args struct { + Foo string `arg:"env"` + } + os.Setenv("FOO", "bar") + os.Args = []string{"example", "--foo", "baz"} + MustParse(&args) + assert.Equal(t, "baz", args.Foo) +} + +func TestEnvironmentVariableError(t *testing.T) { + var args struct { + Foo int `arg:"env"` + } + os.Setenv("FOO", "bar") + os.Args = []string{"example"} + err := Parse(&args) + assert.Error(t, err) +} + +func TestEnvironmentVariableRequired(t *testing.T) { + var args struct { + Foo string `arg:"env,required"` + } + os.Setenv("FOO", "bar") + os.Args = []string{"example"} + MustParse(&args) + assert.Equal(t, "bar", args.Foo) +} |
