github.com/wuhuizuo/gomplate@v3.5.0+incompatible/tests/integration/envvars_test.go (about) 1 //+build integration 2 3 package integration 4 5 import ( 6 . "gopkg.in/check.v1" 7 8 "github.com/gotestyourself/gotestyourself/icmd" 9 ) 10 11 type EnvvarsSuite struct{} 12 13 var _ = Suite(&EnvvarsSuite{}) 14 15 func (s *EnvvarsSuite) TestNonExistantEnvVar(c *C) { 16 result := icmd.RunCommand(GomplateBin, "-i", 17 `{{ .Env.FOO }}`) 18 result.Assert(c, icmd.Expected{ExitCode: 1, Err: "map has no entry for key"}) 19 20 result = icmd.RunCommand(GomplateBin, "-i", 21 `{{ getenv "FOO" }}`) 22 result.Assert(c, icmd.Expected{ExitCode: 0, Out: ""}) 23 24 result = icmd.RunCommand(GomplateBin, "-i", 25 `{{ getenv "FOO" "foo" }}`) 26 result.Assert(c, icmd.Expected{ExitCode: 0, Out: "foo"}) 27 28 result = icmd.RunCommand(GomplateBin, "-i", 29 `{{env.ExpandEnv "${BAR}foo"}}`) 30 result.Assert(c, icmd.Expected{ExitCode: 0, Out: "foo"}) 31 32 result = icmd.RunCmd(icmd.Command(GomplateBin, "-i", `{{ getenv "FOO" "foo" }}`), 33 func(c *icmd.Cmd) { 34 c.Env = []string{"FOO="} 35 }) 36 result.Assert(c, icmd.Expected{ExitCode: 0, Out: "foo"}) 37 } 38 39 func (s *EnvvarsSuite) TestExistantEnvVar(c *C) { 40 setFoo := func(c *icmd.Cmd) { 41 c.Env = []string{"FOO=foo"} 42 } 43 expected := icmd.Expected{ExitCode: 0, Out: "foo"} 44 result := icmd.RunCmd(icmd.Command(GomplateBin, "-i", 45 `{{ .Env.FOO }}`), setFoo) 46 result.Assert(c, expected) 47 48 result = icmd.RunCmd(icmd.Command(GomplateBin, "-i", 49 `{{ getenv "FOO" }}`), setFoo) 50 result.Assert(c, expected) 51 52 result = icmd.RunCmd(icmd.Command(GomplateBin, "-i", 53 `{{ env.Getenv "FOO" }}`), setFoo) 54 result.Assert(c, expected) 55 56 result = icmd.RunCmd(icmd.Command(GomplateBin, "-i", 57 `{{env.ExpandEnv "${FOO}"}}`), setFoo) 58 result.Assert(c, expected) 59 }