Skip to content

Commit 2eb9688

Browse files
smothikimboersma
authored andcommitted
test(integration): working versions of auth and keys commands
1 parent 0f5c6ce commit 2eb9688

5 files changed

Lines changed: 70 additions & 37 deletions

File tree

integration/auth_test.go

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,41 +6,45 @@ import (
66
"testing"
77
)
88

9-
func authSetup(t *testing.T) *AuthData {
10-
_ := itutils.GlobalSetup(t)
9+
func authSetup(t *testing.T) *itutils.UserDetails {
10+
//_ = itutils.GlobalSetup(t)
1111
ucfg := itutils.SetUser()
1212
fmt.Println("username :" + ucfg.UserName)
1313
fmt.Println("password :" + ucfg.Password)
14-
return &ucfg
14+
return ucfg
1515
}
1616

17-
func authRegisterTest(t *testing.T, params *AuthData) {
17+
func authRegisterTest(t *testing.T, params *itutils.UserDetails) {
1818
cmd := itutils.GetCommand("auth", "register")
19-
itutils.Execute(t, cmd, params, false)
20-
itutils.Execute(t, cmd, params, true)
19+
itutils.Execute(t, cmd, params, false,"")
20+
itutils.Execute(t, cmd, params, true,"Registration failed")
2121
}
2222

23-
func authLoginTest(t *testing.T, params *AuthData) {
23+
func authLoginTest(t *testing.T, params *itutils.UserDetails) {
2424
cmd := itutils.GetCommand("auth", "login")
25-
itutils.Execute(t, cmd, params, false)
25+
itutils.Execute(t, cmd, params, false,"")
2626
params = authSetup(t)
27-
itutils.Execute(t, cmd, params, true)
27+
itutils.Execute(t, cmd, params, true,"200 OK")
2828
}
2929

30-
func authLogoutTest(t *testing.T, params *AuthData) {
30+
func authLogoutTest(t *testing.T, params *itutils.UserDetails) {
3131
cmd := itutils.GetCommand("auth", "logout")
32-
itutils.Execute(t, cmd, params, false)
32+
itutils.Execute(t, cmd, params, false,"")
3333

3434
}
3535

3636
func authCancel() {
3737
fmt.Println("coming soon")
3838
}
3939

40+
func teardown(t *testing.T, params *itutils.UserDetails){
41+
authLogoutTest(t, params)
42+
}
43+
4044
func TestAuth(t *testing.T) {
4145
params := authSetup(t)
4246
authRegisterTest(t, params)
4347
authLogoutTest(t, params)
4448
authLoginTest(t, params)
45-
49+
teardown(t, params)
4650
}

integration/keys_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,19 @@ func keysSetup(t *testing.T) *itutils.DeisTestConfig {
1313

1414
func keysAddTest(t *testing.T, params *itutils.DeisTestConfig) {
1515
cmd := itutils.GetCommand("keys", "add")
16-
itutils.Execute(t, cmd, params, false)
17-
itutils.Execute(t, cmd, params, true)
16+
itutils.Execute(t, cmd, params, false,"")
17+
itutils.Execute(t, cmd, params, true,"Uploading deis to Deis...400 BAD REQUEST")
1818
}
1919

2020
func keysListTest(t *testing.T, params *itutils.DeisTestConfig) {
2121
cmd := itutils.GetCommand("keys", "list")
22-
itutils.Execute(t, cmd, params, false)
22+
itutils.Execute(t, cmd, params, false,"")
2323
}
2424

2525
func keysRemoveTest(t *testing.T, params *itutils.DeisTestConfig) {
2626
cmd := itutils.GetCommand("keys", "remove")
27-
itutils.Execute(t, cmd, params, false)
27+
itutils.Execute(t, cmd, params, false,"")
28+
itutils.Execute(t, cmd, params, true,"Not found")
2829
}
2930

3031
func authCancel() {

integration/testconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"keys": {
1010
"add": "keys:add {{.AuthKey}}.pub || true",
1111
"list": "keys:list",
12-
"remove": "keys:remove {{.AuthKey}}.pub ||true"
12+
"remove": "keys:remove {{.AuthKey}} ||true"
1313
}
1414
},
1515
"apps": {

tests/integration-utils/itutils.go

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
gson "github.com/bitly/go-simplejson"
77
"github.com/deis/deis/tests/utils"
88
"os/exec"
9+
"strings"
910
"testing"
1011
"text/template"
1112
)
@@ -30,14 +31,15 @@ func SetUser() *UserDetails {
3031
var user = new(UserDetails)
3132
user.UserName, user.Password = utils.GetUserDetails()
3233
user.Email = "test@test.co.nz"
34+
user.HostName = "deis.54.193.35.8.xip.io"
3335
return user
3436
}
3537

3638
func GlobalSetup(t *testing.T) *DeisTestConfig {
3739
var envCfg = DeisTestConfig{
3840
"~/.ssh/deis",
39-
"54.193.41.120",
40-
"deis.54.193.9.175.xip.io",
41+
"54.193.35.8",
42+
"deis.54.193.35.8.xip.io",
4143
"~/.vagrant.d/insecure_private_key",
4244
}
4345
var user = UserDetails{
@@ -46,10 +48,19 @@ func GlobalSetup(t *testing.T) *DeisTestConfig {
4648
"test@test.co.nz",
4749
envCfg.HostName,
4850
}
49-
Execute(t, GetCommand("auth", "register"), user, false)
51+
Execute(t, GetCommand("auth", "register"), user, false, "")
5052
return &envCfg
5153
}
5254

55+
/***Execute function takes command string and parameters required to execute the command
56+
A failflag to check whether the command is expected to fail
57+
An expect string to check whether the command has failed according to failflag
58+
59+
If a failflag is true and command failed we check the stdout and stderr for expect string
60+
61+
***/
62+
63+
5364
func Execute(t *testing.T, cmd string, params interface{}, failFlag bool, expect string) {
5465
var cmdBuf bytes.Buffer
5566
tmpl := template.Must(template.New("cmd").Parse(cmd))
@@ -59,19 +70,33 @@ func Execute(t *testing.T, cmd string, params interface{}, failFlag bool, expect
5970
cmdString := cmdBuf.String()
6071
fmt.Println(cmdString)
6172
cmdl := exec.Command("sh", "-c", Deis+cmdString)
62-
if err := utils.RunCommandWithStdoutStderr(cmdl); err != nil {
63-
if failFlag {
64-
fmt.Println("Test Failed expected behavior ")
73+
74+
switch failFlag {
75+
case true:
76+
if stdout, stderr, err := utils.RunCommandWithStdoutStderr(cmdl); err != nil {
77+
if strings.Contains(stdout.String(), expect) || strings.Contains(stderr.String(), expect) {
78+
fmt.Println("Test Failed Expected behavior")
79+
} else {
80+
t.Fatalf("Failed:\n%v", err)
81+
}
6582
} else {
66-
t.Fatalf("Output:\n%v", err)
83+
if strings.Contains(stdout.String(), expect) || strings.Contains(stderr.String(), expect) {
84+
fmt.Println("expected" + expect)
85+
} else {
86+
t.Fatalf("Failed:\n%v", err)
87+
}
88+
}
89+
case false:
90+
if _, _, err := utils.RunCommandWithStdoutStderr(cmdl); err != nil {
91+
t.Fatalf("Failed:\n%v", err)
92+
} else {
93+
fmt.Println("ok")
6794
}
68-
} else if failFlag {
69-
t.Fatalf("test should be failed here but passing ")
70-
} else {
71-
fmt.Println("ok")
7295
}
7396
}
7497

98+
99+
75100
func GetCommand(cmdtype, cmd string) string {
76101
js, _ := gson.NewJson(utils.GetFileBytes("testconfig.json"))
77102
command, _ := js.Get("commands").Get(cmdtype).Get(cmd).String()

tests/utils/utils.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package utils
22

33
import (
4-
"bufio"
4+
_ "bufio"
5+
"bytes"
56
"fmt"
67
"github.com/satori/go.uuid"
78
"io"
@@ -85,35 +86,37 @@ func getExitCode(err error) (int, error) {
8586
return exitCode, fmt.Errorf("failed to get exit code")
8687
}
8788

88-
func RunCommandWithStdoutStderr(cmd *exec.Cmd) (stdout, stderr bytes.Buffer, err error) {
89+
func RunCommandWithStdoutStderr(cmd *exec.Cmd) (bytes.Buffer, bytes.Buffer, error) {
8990
var stdout, stderr bytes.Buffer
9091
stderrPipe, err := cmd.StderrPipe()
91-
stdoutpipe, err := cmd.StdoutPipe()
92+
stdoutPipe, err := cmd.StdoutPipe()
9293

9394
cmd.Env = os.Environ()
9495
if err != nil {
95-
return
96+
fmt.Println("error at io pipes")
9697
}
9798

9899
err = cmd.Start()
99100
if err != nil {
100-
return
101+
fmt.Println("error at command start")
101102
}
102103

103104
go func() {
104105
io.Copy(&stdout, stdoutPipe)
105-
io.Copy(os.Stdout, stdoutPipe)
106+
fmt.Println(stdout.String())
107+
//io.Copy(os.Stdout, stdoutPipe)
106108
}()
107109
go func() {
108110
io.Copy(&stderr, stderrPipe)
109-
io.Copy(os.Stderr, stderrPipe)
111+
fmt.Println(stderr.String())
112+
//io.Copy(os.Stderr, stderrPipe)
110113
}()
111114
time.Sleep(2000 * time.Millisecond)
112115
err = cmd.Wait()
113116
if err != nil {
114-
return
117+
fmt.Println("error at command wait")
115118
}
116-
return
119+
return stdout, stderr, err
117120
}
118121

119122
func runCommandWithOutput(cmd *exec.Cmd) (output string, exitCode int, err error) {

0 commit comments

Comments
 (0)