Skip to content

Commit bd024ec

Browse files
committed
ref(tests): move test commands into code
Deis' integration tests are more approachable without the indirection of looking them up from a JSON fixture.
1 parent 9bad5ef commit bd024ec

12 files changed

Lines changed: 186 additions & 261 deletions

tests/apps_test.go

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,81 +10,83 @@ import (
1010
"github.com/deis/deis/tests/utils"
1111
)
1212

13+
var (
14+
appsCreateCmd = "apps:create {{.AppName}}"
15+
appsListCmd = "apps:list"
16+
appsRunCmd = "apps:run echo hello"
17+
appsOpenCmd = "apps:open --app={{.AppName}}"
18+
appsLogsCmd = "apps:logs --app={{.AppName}}"
19+
appsInfoCmd = "apps:info --app={{.AppName}}"
20+
appsDestroyCmd = "apps:destroy --app={{.AppName}} --confirm={{.AppName}}"
21+
)
22+
1323
func appsSetup(t *testing.T) *itutils.DeisTestConfig {
1424
cfg := itutils.GetGlobalConfig()
1525
cfg.AppName = "appssample"
16-
cmd := itutils.GetCommand("auth", "login")
17-
itutils.Execute(t, cmd, cfg, false, "")
18-
cmd = itutils.GetCommand("git", "clone")
19-
itutils.Execute(t, cmd, cfg, false, "")
26+
itutils.Execute(t, authLoginCmd, cfg, false, "")
27+
itutils.Execute(t, gitCloneCmd, cfg, false, "")
2028
return cfg
2129
}
2230

2331
func appsCreateTest(t *testing.T, params *itutils.DeisTestConfig) {
24-
cmd := itutils.GetCommand("apps", "create")
32+
cmd := appsCreateCmd
2533
if err := utils.Chdir(params.ExampleApp); err != nil {
26-
t.Fatalf("Failed:\n%v", err)
34+
t.Fatal(err)
2735
}
2836
itutils.Execute(t, cmd, params, false, "")
2937
itutils.Execute(t, cmd, params, true, "App with this Id already exists")
30-
3138
if err := utils.Chdir(".."); err != nil {
32-
t.Fatalf("Failed:\n%v", err)
39+
t.Fatal(err)
3340
}
3441
}
3542

3643
func appsRunTest(t *testing.T, params *itutils.DeisTestConfig) {
37-
cmd := itutils.GetCommand("apps", "run")
44+
cmd := appsRunCmd
3845
if err := utils.Chdir(params.ExampleApp); err != nil {
39-
t.Fatalf("Failed:\n%v", err)
46+
t.Fatal(err)
4047
}
4148
itutils.Execute(t, cmd, params, false, "")
42-
4349
if err := utils.Chdir(".."); err != nil {
44-
t.Fatalf("Failed:\n%v", err)
50+
t.Fatal(err)
4551
}
4652
itutils.Execute(t, cmd, params, true, "Not found")
4753
}
4854

4955
func appsDestroyTest(t *testing.T, params *itutils.DeisTestConfig) {
50-
cmd := itutils.GetCommand("apps", "destroy")
5156
if err := utils.Chdir(params.ExampleApp); err != nil {
52-
t.Fatalf("Failed:\n%v", err)
57+
t.Fatal(err)
5358
}
54-
itutils.Execute(t, cmd, params, false, "")
59+
itutils.Execute(t, appsDestroyCmd, params, false, "")
5560
if err := utils.Chdir(".."); err != nil {
56-
t.Fatalf("Failed:\n%v", err)
61+
t.Fatal(err)
5762
}
5863
if err := utils.Rmdir(params.ExampleApp); err != nil {
59-
t.Fatalf("Failed:\n%v", err)
64+
t.Fatal(err)
6065
}
6166
}
6267

6368
func appsListTest(t *testing.T, params *itutils.DeisTestConfig, notflag bool) {
64-
cmd := itutils.GetCommand("apps", "list")
65-
itutils.CheckList(t, params, cmd, params.AppName, notflag)
69+
itutils.CheckList(t, params, appsListCmd, params.AppName, notflag)
6670
}
6771

6872
func appsLogsTest(t *testing.T, params *itutils.DeisTestConfig) {
69-
cmd := itutils.GetCommand("apps", "logs")
70-
cmd1 := itutils.GetCommand("git", "push")
73+
cmd := appsLogsCmd
7174
itutils.Execute(t, cmd, params, true, "204 NO CONTENT")
7275
if err := utils.Chdir(params.ExampleApp); err != nil {
73-
t.Fatalf("Failed:\n%v", err)
76+
t.Fatal(err)
7477
}
75-
itutils.Execute(t, cmd1, params, false, "")
78+
itutils.Execute(t, gitPushCmd, params, false, "")
7679
// TODO: nginx needs a few seconds to wake up here--fixme!
7780
time.Sleep(5000 * time.Millisecond)
7881
itutils.Curl(t, params)
7982
itutils.Execute(t, cmd, params, false, "")
8083
if err := utils.Chdir(".."); err != nil {
81-
t.Fatalf("Failed:\n%v", err)
84+
t.Fatal(err)
8285
}
8386
}
8487

8588
func appsInfoTest(t *testing.T, params *itutils.DeisTestConfig) {
86-
cmd := itutils.GetCommand("apps", "info")
87-
itutils.Execute(t, cmd, params, false, "")
89+
itutils.Execute(t, appsInfoCmd, params, false, "")
8890
}
8991

9092
func appsOpenTest(t *testing.T, params *itutils.DeisTestConfig) {

tests/auth_test.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,41 @@
33
package tests
44

55
import (
6-
"fmt"
76
"testing"
87

98
"github.com/deis/deis/tests/integration-utils"
109
"github.com/deis/deis/tests/utils"
1110
)
1211

12+
var (
13+
authLoginCmd = `auth:login http://deis.{{.Domain}} \
14+
--username={{.UserName}} --password={{.Password}}`
15+
authLogoutCmd = "auth:logout"
16+
authRegisterCmd = `auth:register http://deis.{{.Domain}} \
17+
--username={{.UserName}} --password={{.Password}} --email={{.Email}}`
18+
)
19+
1320
func authSetup(t *testing.T) *itutils.DeisTestConfig {
1421
user := itutils.GetGlobalConfig()
1522
user.UserName, user.Password = utils.GetUserDetails()
16-
fmt.Println("username :" + user.UserName)
17-
fmt.Println("password :" + user.Password)
1823
return user
1924
}
2025

2126
func authRegisterTest(t *testing.T, params *itutils.DeisTestConfig) {
22-
cmd := itutils.GetCommand("auth", "register")
27+
cmd := authRegisterCmd
2328
itutils.Execute(t, cmd, params, false, "")
2429
itutils.Execute(t, cmd, params, true, "Registration failed")
2530
}
2631

2732
func authLoginTest(t *testing.T, params *itutils.DeisTestConfig) {
28-
cmd := itutils.GetCommand("auth", "login")
33+
cmd := authLoginCmd
2934
itutils.Execute(t, cmd, params, false, "")
3035
params = authSetup(t)
3136
itutils.Execute(t, cmd, params, true, "200 OK")
3237
}
3338

3439
func authLogoutTest(t *testing.T, params *itutils.DeisTestConfig) {
35-
cmd := itutils.GetCommand("auth", "logout")
36-
itutils.Execute(t, cmd, params, false, "")
40+
itutils.Execute(t, authLogoutCmd, params, false, "")
3741
}
3842

3943
func authCancel(t *testing.T, params *itutils.DeisTestConfig) {

tests/builds_test.go

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,38 +14,36 @@ import (
1414
"github.com/deis/deis/tests/utils"
1515
)
1616

17+
var (
18+
buildsListCmd = "builds:list --app={{.AppName}}"
19+
buildsCreateCmd = "builds:create {{.ImageID}} --app={{.AppName}}"
20+
)
21+
1722
func buildSetup(t *testing.T) *itutils.DeisTestConfig {
1823
cfg := itutils.GetGlobalConfig()
1924
cfg.AppName = "buildsample"
20-
cmd := itutils.GetCommand("auth", "login")
21-
itutils.Execute(t, cmd, cfg, false, "")
22-
cmd = itutils.GetCommand("git", "clone")
23-
itutils.Execute(t, cmd, cfg, false, "")
24-
cmd = itutils.GetCommand("apps", "create")
25-
cmd1 := itutils.GetCommand("git", "push")
26-
cmd2 := itutils.GetCommand("git", "add")
27-
cmd3 := itutils.GetCommand("git", "commit")
25+
itutils.Execute(t, authLoginCmd, cfg, false, "")
26+
itutils.Execute(t, gitCloneCmd, cfg, false, "")
2827
if err := utils.Chdir(cfg.ExampleApp); err != nil {
29-
t.Fatalf("Failed:\n%v", err)
28+
t.Fatal(err)
3029
}
31-
32-
itutils.Execute(t, cmd, cfg, false, "")
33-
itutils.Execute(t, cmd1, cfg, false, "")
30+
itutils.Execute(t, appsCreateCmd, cfg, false, "")
31+
itutils.Execute(t, gitPushCmd, cfg, false, "")
3432
if err := utils.CreateFile(cfg.ExampleApp); err != nil {
35-
t.Fatalf("Failed:\n%v", err)
33+
t.Fatal(err)
3634
}
37-
itutils.Execute(t, cmd2, cfg, false, "")
38-
itutils.Execute(t, cmd3, cfg, false, "")
39-
itutils.Execute(t, cmd1, cfg, false, "")
35+
itutils.Execute(t, gitAddCmd, cfg, false, "")
36+
itutils.Execute(t, gitCommitCmd, cfg, false, "")
37+
itutils.Execute(t, gitPushCmd, cfg, false, "")
4038
if err := utils.Chdir(".."); err != nil {
41-
t.Fatalf("Failed:\n%v", err)
39+
t.Fatal(err)
4240
}
4341
return cfg
4442
}
4543

4644
func buildsListTest(t *testing.T, params *itutils.DeisTestConfig) {
4745
Deis := "deis "
48-
cmd := itutils.GetCommand("builds", "list")
46+
cmd := buildsListCmd
4947
var cmdBuf bytes.Buffer
5048
tmpl := template.Must(template.New("cmd").Parse(cmd))
5149
if err := tmpl.Execute(&cmdBuf, params); err != nil {
@@ -55,18 +53,15 @@ func buildsListTest(t *testing.T, params *itutils.DeisTestConfig) {
5553
fmt.Println(cmdString)
5654
cmdl := exec.Command("sh", "-c", Deis+cmdString)
5755
if stdout, _, err := utils.RunCommandWithStdoutStderr(cmdl); err != nil {
58-
t.Fatalf("Failed:\n%v", err)
56+
t.Fatal(err)
5957
} else {
6058
ImageID := strings.Split(stdout.String(), "\n")[2]
6159
params.ImageID = strings.Fields(ImageID)[0]
6260
}
63-
6461
}
6562

6663
func buildsCreateTest(t *testing.T, params *itutils.DeisTestConfig) {
67-
cmd := itutils.GetCommand("builds", "create")
68-
itutils.Execute(t, cmd, params, false, "")
69-
64+
itutils.Execute(t, buildsCreateCmd, params, false, "")
7065
}
7166

7267
func TestBuilds(t *testing.T) {

tests/clusters_test.go

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,40 +8,44 @@ import (
88
"github.com/deis/deis/tests/integration-utils"
99
)
1010

11+
var (
12+
clustersCreateCmd = "clusters:create {{.ClusterName}} {{.Domain}} --hosts={{.Hosts}} --auth={{.SSHKey}}"
13+
clustersListCmd = "clusters:list"
14+
clustersUpdateCmd = "clusters:update {{.ClusterName}} --domain={{.Domain}} --hosts={{.Hosts}} --auth=~/.ssh/{{.AuthKey}}"
15+
clustersInfoCmd = "clusters:info {{.ClusterName}}"
16+
clustersDestroyCmd = "clusters:destroy {{.ClusterName}} --confirm={{.ClusterName}}"
17+
)
18+
1119
func clustersSetup(t *testing.T) *itutils.DeisTestConfig {
1220
cfg := itutils.GetGlobalConfig()
1321
cfg.ClusterName = "devtest"
14-
cmd := itutils.GetCommand("auth", "login")
15-
itutils.Execute(t, cmd, cfg, false, "")
22+
itutils.Execute(t, authLoginCmd, cfg, false, "")
1623
return cfg
1724
}
1825

1926
func clustersCreateTest(t *testing.T, params *itutils.DeisTestConfig) {
20-
cmd := itutils.GetCommand("clusters", "create")
27+
cmd := clustersCreateCmd
2128
itutils.Execute(t, cmd, params, false, "")
2229
itutils.Execute(t, cmd, params, true, "Cluster with this Id already exists")
2330
}
2431

25-
func clustersListTest(t *testing.T, params *itutils.DeisTestConfig, notflag bool) {
26-
cmd := itutils.GetCommand("clusters", "list")
27-
itutils.CheckList(t, params, cmd, params.ClusterName, notflag)
32+
func clustersListTest(
33+
t *testing.T, params *itutils.DeisTestConfig, notflag bool) {
34+
itutils.CheckList(t, params, clustersListCmd, params.ClusterName, notflag)
2835
}
2936

3037
func clustersInfoTest(t *testing.T, params *itutils.DeisTestConfig) {
31-
cmd := itutils.GetCommand("clusters", "info")
32-
itutils.Execute(t, cmd, params, false, "")
38+
itutils.Execute(t, clustersInfoCmd, params, false, "")
3339
}
3440

3541
func clustersUpdateTest(t *testing.T, params *itutils.DeisTestConfig) {
36-
cmd := itutils.GetCommand("clusters", "update")
3742
// Regression test for https://github.com/deis/deis/pull/1283
3843
// Check that we didn't store the path of the key in the cluster.
39-
itutils.CheckList(t, params, cmd, "~/.ssh/", true)
44+
itutils.CheckList(t, params, clustersUpdateCmd, "~/.ssh/", true)
4045
}
4146

4247
func clustersDestroyTest(t *testing.T, params *itutils.DeisTestConfig) {
43-
cmd := itutils.GetCommand("clusters", "destroy")
44-
itutils.Execute(t, cmd, params, false, "")
48+
itutils.Execute(t, clustersDestroyCmd, params, false, "")
4549
}
4650

4751
func TestClusters(t *testing.T) {

tests/config_test.go

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,50 +3,47 @@
33
package tests
44

55
import (
6-
_ "fmt"
76
"testing"
87

98
"github.com/deis/deis/tests/integration-utils"
109
"github.com/deis/deis/tests/utils"
1110
)
1211

12+
var (
13+
configListCmd = "config:list --app={{.AppName}}"
14+
configSetCmd = "config:set jaf=1 --app={{.AppName}}"
15+
configUnsetCmd = "config:unset jaf --app={{.AppName}}"
16+
)
17+
1318
func configSetup(t *testing.T) *itutils.DeisTestConfig {
1419
cfg := itutils.GetGlobalConfig()
1520
cfg.AppName = "configsample"
16-
cmd := itutils.GetCommand("auth", "login")
17-
itutils.Execute(t, cmd, cfg, false, "")
18-
cmd = itutils.GetCommand("git", "clone")
19-
itutils.Execute(t, cmd, cfg, false, "")
20-
cmd = itutils.GetCommand("apps", "create")
21-
cmd1 := itutils.GetCommand("git", "push")
21+
itutils.Execute(t, authLoginCmd, cfg, false, "")
22+
itutils.Execute(t, gitCloneCmd, cfg, false, "")
2223
if err := utils.Chdir(cfg.ExampleApp); err != nil {
23-
t.Fatalf("Failed:\n%v", err)
24+
t.Fatal(err)
2425
}
25-
26-
itutils.Execute(t, cmd, cfg, false, "")
27-
itutils.Execute(t, cmd1, cfg, false, "")
26+
itutils.Execute(t, appsCreateCmd, cfg, false, "")
27+
itutils.Execute(t, gitPushCmd, cfg, false, "")
2828
if err := utils.Chdir(".."); err != nil {
29-
t.Fatalf("Failed:\n%v", err)
29+
t.Fatal(err)
3030
}
3131
return cfg
3232
}
3333

34-
func configlistTest(t *testing.T, params *itutils.DeisTestConfig, notflag bool) {
35-
cmd := itutils.GetCommand("config", "list")
36-
itutils.CheckList(t, params, cmd, "jaf", notflag)
37-
34+
func configlistTest(
35+
t *testing.T, params *itutils.DeisTestConfig, notflag bool) {
36+
itutils.CheckList(t, params, configListCmd, "jaf", notflag)
3837
}
3938

4039
func configSetTest(t *testing.T, params *itutils.DeisTestConfig) {
41-
cmd := itutils.GetCommand("config", "set")
42-
itutils.Execute(t, cmd, params, false, "")
43-
itutils.CheckList(t, params, itutils.GetCommand("apps", "info"), "(v3)", false)
40+
itutils.Execute(t, configSetCmd, params, false, "")
41+
itutils.CheckList(t, params, appsInfoCmd, "(v3)", false)
4442
}
4543

4644
func configUnsetTest(t *testing.T, params *itutils.DeisTestConfig) {
47-
cmd := itutils.GetCommand("config", "unset")
48-
itutils.Execute(t, cmd, params, false, "")
49-
itutils.CheckList(t, params, itutils.GetCommand("apps", "info"), "(v4)", false)
45+
itutils.Execute(t, configUnsetCmd, params, false, "")
46+
itutils.CheckList(t, params, appsInfoCmd, "(v4)", false)
5047
}
5148

5249
func TestConfig(t *testing.T) {

0 commit comments

Comments
 (0)