Skip to content

Commit

Permalink
[Jasoet|Bimo.horizon] Fix Failed Test
Browse files Browse the repository at this point in the history
  • Loading branch information
jasoet committed Aug 7, 2019
1 parent 551408a commit c662fd1
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 25 deletions.
61 changes: 43 additions & 18 deletions internal/app/cli/command/execution/executioner_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"github.com/stretchr/testify/mock"
"proctor/internal/app/cli/daemon"
"proctor/internal/pkg/io"
"proctor/internal/pkg/model/execution"
"testing"

"github.com/fatih/color"
Expand Down Expand Up @@ -49,14 +50,18 @@ func (s *ExecutionCmdTestSuite) TestExecutionCmd() {
s.mockPrinter.On("Println", fmt.Sprintf("%-40s %-100s", "SAMPLE_ARG_ONE", "any"), color.Reset).Once()
s.mockPrinter.On("Println", fmt.Sprintf("%-40s %-100s", "SAMPLE_ARG_TWO", "variable"), color.Reset).Once()

s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return("executed-proc-name", nil).Once()
executionResult := &execution.ExecutionResult{
ExecutionId: uint64(42),
}

s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return(executionResult, nil).Once()

s.mockPrinter.On("Println", "Proc submitted for execution. \nStreaming logs:", color.FgGreen).Once()

s.mockProctorDClient.On("StreamProcLogs", "executed-proc-name").Return(nil).Once()
s.mockProctorDClient.On("StreamProcLogs", executionResult.ExecutionId).Return(nil).Once()
s.mockPrinter.On("Println", "Log stream of proc completed.", color.FgGreen).Once()

s.mockProctorDClient.On("GetDefinitiveProcExecutionStatus", "executed-proc-name").Return(constant.JobSucceeded, nil).Once()
s.mockProctorDClient.On("GetDefinitiveProcExecutionStatus", executionResult.ExecutionId).Return(constant.JobSucceeded, nil).Once()
s.mockPrinter.On("Println", "Proc execution successful", color.FgGreen).Once()

s.testExecutionCmd.Run(&cobra.Command{}, args)
Expand All @@ -71,15 +76,19 @@ func (s *ExecutionCmdTestSuite) TestExecutionCmdForNoProcVariables() {
s.mockPrinter.On("Println", fmt.Sprintf("%-40s %-100s", "Executing Proc", "say-hello-world"), color.Reset).Once()
s.mockPrinter.On("Println", "With No Variables", color.FgRed).Once()

executionResult := &execution.ExecutionResult{
ExecutionId: uint64(42),
}

procArgs := make(map[string]string)
s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return("executed-proc-name", nil).Once()
s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return(executionResult, nil).Once()

s.mockPrinter.On("Println", "Proc submitted for execution. \nStreaming logs:", color.FgGreen).Once()

s.mockProctorDClient.On("StreamProcLogs", "executed-proc-name").Return(nil).Once()
s.mockProctorDClient.On("StreamProcLogs", executionResult.ExecutionId).Return(nil).Once()
s.mockPrinter.On("Println", "Log stream of proc completed.", color.FgGreen).Once()

s.mockProctorDClient.On("GetDefinitiveProcExecutionStatus", "executed-proc-name").Return(constant.JobSucceeded, nil).Once()
s.mockProctorDClient.On("GetDefinitiveProcExecutionStatus", executionResult.ExecutionId).Return(constant.JobSucceeded, nil).Once()
s.mockPrinter.On("Println", "Proc execution successful", color.FgGreen).Once()

s.testExecutionCmd.Run(&cobra.Command{}, args)
Expand All @@ -95,15 +104,19 @@ func (s *ExecutionCmdTestSuite) TestExecutionCmdForIncorrectVariableFormat() {
s.mockPrinter.On("Println", "With Variables", color.FgMagenta).Once()
s.mockPrinter.On("Println", fmt.Sprintf("%-40s %-100s", "\nIncorrect variable format\n", "incorrect-format"), color.FgRed).Once()

executionResult := &execution.ExecutionResult{
ExecutionId: uint64(42),
}

procArgs := make(map[string]string)
s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return("executed-proc-name", nil).Once()
s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return(executionResult, nil).Once()

s.mockPrinter.On("Println", "Proc submitted for execution. \nStreaming logs:", color.FgGreen).Once()

s.mockProctorDClient.On("StreamProcLogs", "executed-proc-name").Return(nil).Once()
s.mockProctorDClient.On("StreamProcLogs", executionResult.ExecutionId).Return(nil).Once()
s.mockPrinter.On("Println", "Log stream of proc completed.", color.FgGreen).Once()

s.mockProctorDClient.On("GetDefinitiveProcExecutionStatus", "executed-proc-name").Return(constant.JobSucceeded, nil).Once()
s.mockProctorDClient.On("GetDefinitiveProcExecutionStatus", executionResult.ExecutionId).Return(constant.JobSucceeded, nil).Once()
s.mockPrinter.On("Println", "Proc execution successful", color.FgGreen).Once()

s.testExecutionCmd.Run(&cobra.Command{}, args)
Expand All @@ -118,8 +131,11 @@ func (s *ExecutionCmdTestSuite) TestExecutionCmdForProctorDExecutionFailure() {
s.mockPrinter.On("Println", fmt.Sprintf("%-40s %-100s", "Executing Proc", "say-hello-world"), color.Reset).Once()
s.mockPrinter.On("Println", "With No Variables", color.FgRed).Once()

executionResult := &execution.ExecutionResult{
ExecutionId: uint64(42),
}
procArgs := make(map[string]string)
s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return("", errors.New("test error")).Once()
s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return(executionResult, errors.New("test error")).Once()

s.mockPrinter.On("Println", mock.Anything, color.FgRed).Once()

Expand All @@ -139,12 +155,15 @@ func (s *ExecutionCmdTestSuite) TestExecutionCmdForProctorDLogStreamingFailure()
s.mockPrinter.On("Println", fmt.Sprintf("%-40s %-100s", "Executing Proc", "say-hello-world"), color.Reset).Once()
s.mockPrinter.On("Println", "With No Variables", color.FgRed).Once()

executionResult := &execution.ExecutionResult{
ExecutionId: uint64(42),
}
procArgs := make(map[string]string)
s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return("executed-proc-name", nil).Once()
s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return(executionResult, nil).Once()

s.mockPrinter.On("Println", "Proc submitted for execution. \nStreaming logs:", color.FgGreen).Once()

s.mockProctorDClient.On("StreamProcLogs", "executed-proc-name").Return(errors.New("error")).Once()
s.mockProctorDClient.On("StreamProcLogs", executionResult.ExecutionId).Return(errors.New("error")).Once()
s.mockPrinter.On("Println", "Error Streaming Logs", color.FgRed).Once()

osExitFunc := func(exitCode int) {
Expand All @@ -163,15 +182,18 @@ func (s *ExecutionCmdTestSuite) TestExecutionCmdForProctorDGetDefinitiveProcExec
s.mockPrinter.On("Println", fmt.Sprintf("%-40s %-100s", "Executing Proc", "say-hello-world"), color.Reset).Once()
s.mockPrinter.On("Println", "With No Variables", color.FgRed).Once()

executionResult := &execution.ExecutionResult{
ExecutionId: uint64(42),
}
procArgs := make(map[string]string)
s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return("executed-proc-name", nil).Once()
s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return(executionResult, nil).Once()

s.mockPrinter.On("Println", "Proc submitted for execution. \nStreaming logs:", color.FgGreen).Once()

s.mockProctorDClient.On("StreamProcLogs", "executed-proc-name").Return(nil).Once()
s.mockProctorDClient.On("StreamProcLogs", executionResult.ExecutionId).Return(nil).Once()
s.mockPrinter.On("Println", "Log stream of proc completed.", color.FgGreen).Once()

s.mockProctorDClient.On("GetDefinitiveProcExecutionStatus", "executed-proc-name").Return("", errors.New("some error")).Once()
s.mockProctorDClient.On("GetDefinitiveProcExecutionStatus", executionResult.ExecutionId).Return("", errors.New("some error")).Once()
s.mockPrinter.On("Println", "Error Fetching Proc execution status", color.FgRed).Once()

osExitFunc := func(exitCode int) {
Expand All @@ -190,15 +212,18 @@ func (s *ExecutionCmdTestSuite) TestExecutionCmdForProctorDGetDefinitiveProcExec
s.mockPrinter.On("Println", fmt.Sprintf("%-40s %-100s", "Executing Proc", "say-hello-world"), color.Reset).Once()
s.mockPrinter.On("Println", "With No Variables", color.FgRed).Once()

executionResult := &execution.ExecutionResult{
ExecutionId: uint64(42),
}
procArgs := make(map[string]string)
s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return("executed-proc-name", nil).Once()
s.mockProctorDClient.On("ExecuteProc", "say-hello-world", procArgs).Return(executionResult, nil).Once()

s.mockPrinter.On("Println", "Proc submitted for execution. \nStreaming logs:", color.FgGreen).Once()

s.mockProctorDClient.On("StreamProcLogs", "executed-proc-name").Return(nil).Once()
s.mockProctorDClient.On("StreamProcLogs", executionResult.ExecutionId).Return(nil).Once()
s.mockPrinter.On("Println", "Log stream of proc completed.", color.FgGreen).Once()

s.mockProctorDClient.On("GetDefinitiveProcExecutionStatus", "executed-proc-name").Return(constant.JobFailed, nil).Once()
s.mockProctorDClient.On("GetDefinitiveProcExecutionStatus", executionResult.ExecutionId).Return(constant.JobFailed, nil).Once()
s.mockPrinter.On("Println", "Proc execution failed", color.FgRed).Once()

osExitFunc := func(exitCode int) {
Expand Down
14 changes: 7 additions & 7 deletions internal/app/cli/daemon/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -592,7 +592,7 @@ func (s *ClientTestSuite) TestGetDefinitiveProcExecutionStatusForSucceededProcs(
httpmock.RegisterStubRequest(
httpmock.NewStubRequest(
"GET",
"http://"+proctorConfig.Host+ExecutionRoute+"/some-proc-name/status",
"http://"+proctorConfig.Host+ExecutionRoute+"/42/status",
func(req *http.Request) (*http.Response, error) {
return httpmock.NewStringResponse(200, responseBody), nil
},
Expand Down Expand Up @@ -628,7 +628,7 @@ func (s *ClientTestSuite) TestGetDefinitiveProcExecutionStatusForFailedProcs() {
httpmock.RegisterStubRequest(
httpmock.NewStubRequest(
"GET",
"http://"+proctorConfig.Host+ExecutionRoute+"/some-proc-name/status",
"http://"+proctorConfig.Host+ExecutionRoute+"/42/status",
func(req *http.Request) (*http.Response, error) {
return httpmock.NewStringResponse(200, responseBody), nil
},
Expand Down Expand Up @@ -661,7 +661,7 @@ func (s *ClientTestSuite) TestGetDefinitiveProcExecutionStatusForHTTPRequestFail
httpmock.RegisterStubRequest(
httpmock.NewStubRequest(
"GET",
"http://"+proctorConfig.Host+ExecutionRoute+"/some-proc-name/status",
"http://"+proctorConfig.Host+ExecutionRoute+"/42/status",
func(req *http.Request) (*http.Response, error) {
return nil, TestConnectionError{message: "Unable to reach http://proctor.example.com/", timeout: true}
},
Expand All @@ -678,7 +678,7 @@ func (s *ClientTestSuite) TestGetDefinitiveProcExecutionStatusForHTTPRequestFail

procExecutionStatus, err := s.testClient.GetDefinitiveProcExecutionStatus(uint64(42))

assert.Equal(t, errors.New("Connection Timeout!!!\nGet http://proctor.example.com/execution/some-proc-name/status: Unable to reach http://proctor.example.com/\nPlease check your Internet/VPN connection for connectivity to ProctorD."), err)
assert.Equal(t, errors.New("Connection Timeout!!!\nGet http://proctor.example.com/execution/42/status: Unable to reach http://proctor.example.com/\nPlease check your Internet/VPN connection for connectivity to ProctorD."), err)
s.mockConfigLoader.AssertExpectations(t)
assert.Equal(t, "", procExecutionStatus)
}
Expand All @@ -694,7 +694,7 @@ func (s *ClientTestSuite) TestGetDefinitiveProcExecutionStatusForNonOKResponse()
httpmock.RegisterStubRequest(
httpmock.NewStubRequest(
"GET",
"http://"+proctorConfig.Host+ExecutionRoute+"/some-proc-name/status",
"http://"+proctorConfig.Host+ExecutionRoute+"/42/status",
func(req *http.Request) (*http.Response, error) {
return httpmock.NewStringResponse(500, ""), nil
},
Expand Down Expand Up @@ -733,7 +733,7 @@ func (s *ClientTestSuite) TestGetDefinitiveProcExecutionStatusWhenPollCountReach
httpmock.RegisterStubRequest(
httpmock.NewStubRequest(
"GET",
"http://"+proctorConfig.Host+ExecutionRoute+"/some-proc-name/status",
"http://"+proctorConfig.Host+ExecutionRoute+"/42/status",
func(req *http.Request) (*http.Response, error) {
requestsToProctorDCount += 1
return httpmock.NewStringResponse(200, responseBody), nil
Expand All @@ -751,7 +751,7 @@ func (s *ClientTestSuite) TestGetDefinitiveProcExecutionStatusWhenPollCountReach

procExecutionStatus, err := s.testClient.GetDefinitiveProcExecutionStatus(uint64(42))

assert.Equal(t, errors.New("No definitive status received for proc name some-proc-name from proctord"), err)
assert.Equal(t, errors.New("No definitive status received for execution with id 42 from proctord"), err)
s.mockConfigLoader.AssertExpectations(t)
assert.Equal(t, expectedRequestsToProctorDCount, requestsToProctorDCount)
assert.Equal(t, "", procExecutionStatus)
Expand Down

0 comments on commit c662fd1

Please sign in to comment.