github.com/wynshop-open-source/gomplate@v3.5.0+incompatible/data/datasource_env_test.go (about) 1 package data 2 3 import ( 4 "net/url" 5 "os" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func mustParseURL(in string) *url.URL { 12 u, _ := url.Parse(in) 13 return u 14 } 15 16 func TestReadEnv(t *testing.T) { 17 content := []byte(`hello world`) 18 os.Setenv("HELLO_WORLD", "hello world") 19 defer os.Unsetenv("HELLO_WORLD") 20 os.Setenv("HELLO_UNIVERSE", "hello universe") 21 defer os.Unsetenv("HELLO_UNIVERSE") 22 23 source := &Source{Alias: "foo", URL: mustParseURL("env:HELLO_WORLD")} 24 25 actual, err := readEnv(source) 26 assert.NoError(t, err) 27 assert.Equal(t, content, actual) 28 29 source = &Source{Alias: "foo", URL: mustParseURL("env:/HELLO_WORLD")} 30 31 actual, err = readEnv(source) 32 assert.NoError(t, err) 33 assert.Equal(t, content, actual) 34 35 source = &Source{Alias: "foo", URL: mustParseURL("env:///HELLO_WORLD")} 36 37 actual, err = readEnv(source) 38 assert.NoError(t, err) 39 assert.Equal(t, content, actual) 40 41 source = &Source{Alias: "foo", URL: mustParseURL("env:HELLO_WORLD?foo=bar")} 42 43 actual, err = readEnv(source) 44 assert.NoError(t, err) 45 assert.Equal(t, content, actual) 46 47 source = &Source{Alias: "foo", URL: mustParseURL("env:///HELLO_WORLD?foo=bar")} 48 49 actual, err = readEnv(source) 50 assert.NoError(t, err) 51 assert.Equal(t, content, actual) 52 }