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  }