Skip to content
This repository was archived by the owner on Apr 29, 2020. It is now read-only.

Commit 7102a62

Browse files
committed
Add test for docker environment variable behavior
1 parent f2e01b7 commit 7102a62

1 file changed

Lines changed: 72 additions & 0 deletions

File tree

pkg/docker/docker_test.go

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package docker
2+
3+
import (
4+
"io/ioutil"
5+
"os"
6+
"path/filepath"
7+
"testing"
8+
)
9+
10+
func TestLoadEnvVars(t *testing.T) {
11+
tempDir, err := ioutil.TempDir("", "test_load_env_vars")
12+
if err != nil {
13+
t.Fatal(err)
14+
}
15+
defer os.RemoveAll(tempDir)
16+
17+
podEnvDir := filepath.Join(tempDir, "pod")
18+
launchableEnvDir := filepath.Join(tempDir, "launchable")
19+
err = os.Mkdir(podEnvDir, 0755)
20+
if err != nil {
21+
t.Fatal(err)
22+
}
23+
err = os.Mkdir(launchableEnvDir, 0755)
24+
if err != nil {
25+
t.Fatal(err)
26+
}
27+
28+
err = ioutil.WriteFile(filepath.Join(podEnvDir, "OVERRIDE"), []byte("not_overridden"), 0755)
29+
if err != nil {
30+
t.Fatal(err)
31+
}
32+
err = ioutil.WriteFile(filepath.Join(launchableEnvDir, "OVERRIDE"), []byte("overridden"), 0755)
33+
if err != nil {
34+
t.Fatal(err)
35+
}
36+
err = ioutil.WriteFile(filepath.Join(launchableEnvDir, "LAUNCHABLE_ONLY"), []byte("whatever"), 0755)
37+
if err != nil {
38+
t.Fatal(err)
39+
}
40+
err = ioutil.WriteFile(filepath.Join(podEnvDir, "POD_ONLY"), []byte("whatever"), 0755)
41+
if err != nil {
42+
t.Fatal(err)
43+
}
44+
45+
envVars, err := loadEnvVars(podEnvDir, launchableEnvDir)
46+
if err != nil {
47+
t.Fatal(err)
48+
}
49+
if len(envVars) != 3 {
50+
t.Fatalf("expected 3 env vars but there were %d", len(envVars))
51+
}
52+
53+
if !contains(envVars, "OVERRIDE=overridden") {
54+
t.Error("expected to find OVERRIDE=overridden in teh environment variables because the launchable one should override the pod one, found %s", envVars)
55+
}
56+
if !contains(envVars, "POD_ONLY=whatever") {
57+
t.Error("expected to find POD_ONLY=whatever in teh environment variables because the launchable one should override the pod one, found %s", envVars)
58+
}
59+
if !contains(envVars, "LAUNCHABLE_ONLY=whatever") {
60+
t.Error("expected to find LAUNCHABLE_ONLY=whatever in teh environment variables because the launchable one should override the pod one, found %s", envVars)
61+
}
62+
}
63+
64+
func contains(set []string, val string) bool {
65+
for _, s := range set {
66+
if s == val {
67+
return true
68+
}
69+
}
70+
71+
return false
72+
}

0 commit comments

Comments
 (0)