Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Datree
Commits
50293c8a
Commit
50293c8a
authored
4 years ago
by
Dima Brusilovsky
Browse files
Options
Download
Email Patches
Plain Diff
fix: cli client tests
parent
bddd0a98
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
bl/evaluation/evaluator.go
+5
-5
bl/evaluation/evaluator.go
bl/evaluation/evaluator_test.go
+8
-4
bl/evaluation/evaluator_test.go
cmd/test/main.go
+6
-5
cmd/test/main.go
cmd/test/main_test.go
+5
-5
cmd/test/main_test.go
pkg/cliClient/cliClient_test.go
+14
-9
pkg/cliClient/cliClient_test.go
pkg/cliClient/evaluation.go
+9
-7
pkg/cliClient/evaluation.go
with
47 additions
and
35 deletions
+47
-35
bl/evaluation/evaluator.go
+
5
-
5
View file @
50293c8a
...
...
@@ -8,7 +8,7 @@ import (
type
CLIClient
interface
{
RequestEvaluation
(
request
*
cliClient
.
EvaluationRequest
)
(
*
cliClient
.
EvaluationResponse
,
error
)
CreateEvaluation
(
request
*
cliClient
.
CreateEvaluationRequest
)
(
int
,
error
)
CreateEvaluation
(
request
*
cliClient
.
CreateEvaluationRequest
)
(
*
cliClient
.
CreateEvaluationResponse
,
error
)
UpdateEvaluationValidation
(
request
*
cliClient
.
UpdateEvaluationValidationRequest
)
error
}
...
...
@@ -40,9 +40,9 @@ type Error struct {
Filename
string
}
func
(
e
*
Evaluator
)
CreateEvaluation
(
cliId
string
,
cliVersion
string
,
k8sVersion
string
)
(
int
,
error
)
{
e
valuation
Id
,
err
:=
e
.
cliClient
.
CreateEvaluation
(
&
cliClient
.
CreateEvaluationRequest
{
K8sVersion
:
k8sVersion
,
func
(
e
*
Evaluator
)
CreateEvaluation
(
cliId
string
,
cliVersion
string
,
k8sVersion
string
)
(
*
cliClient
.
CreateEvaluationResponse
,
error
)
{
createE
valuation
Response
,
err
:=
e
.
cliClient
.
CreateEvaluation
(
&
cliClient
.
CreateEvaluationRequest
{
K8sVersion
:
&
k8sVersion
,
CliId
:
cliId
,
Metadata
:
&
cliClient
.
Metadata
{
CliVersion
:
cliVersion
,
...
...
@@ -52,7 +52,7 @@ func (e *Evaluator) CreateEvaluation(cliId string, cliVersion string, k8sVersion
},
})
return
e
valuation
Id
,
err
return
createE
valuation
Response
,
err
}
func
(
e
*
Evaluator
)
Evaluate
(
validFilesPathsChan
chan
string
,
invalidFilesPathsChan
chan
*
validation
.
InvalidFile
,
evaluationId
int
)
(
*
EvaluationResults
,
[]
*
validation
.
InvalidFile
,
[]
*
extractor
.
FileConfiguration
,
[]
*
Error
,
error
)
{
...
...
This diff is collapsed.
Click to expand it.
bl/evaluation/evaluator_test.go
+
8
-
4
View file @
50293c8a
package
evaluation
import
(
"github.com/datreeio/datree/bl/validation"
"path/filepath"
"testing"
"github.com/datreeio/datree/bl/validation"
"github.com/datreeio/datree/pkg/cliClient"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
...
...
@@ -14,9 +15,9 @@ type mockCliClient struct {
mock
.
Mock
}
func
(
m
*
mockCliClient
)
CreateEvaluation
(
createEvaluationRequest
*
cliClient
.
CreateEvaluationRequest
)
(
int
,
error
)
{
func
(
m
*
mockCliClient
)
CreateEvaluation
(
createEvaluationRequest
*
cliClient
.
CreateEvaluationRequest
)
(
*
cliClient
.
CreateEvaluationResponse
,
error
)
{
args
:=
m
.
Called
(
createEvaluationRequest
)
return
args
.
Get
(
0
)
.
(
int
),
args
.
Error
(
1
)
return
args
.
Get
(
0
)
.
(
*
cliClient
.
CreateEvaluationResponse
),
args
.
Error
(
1
)
}
func
(
m
*
mockCliClient
)
RequestEvaluation
(
evaluationRequest
*
cliClient
.
EvaluationRequest
)
(
*
cliClient
.
EvaluationResponse
,
error
)
{
...
...
@@ -37,6 +38,7 @@ func (m *mockCliClient) GetVersionMessage(cliVersion string, timeout int) (*cliC
type
cliClientMockTestCase
struct
{
createEvaluation
struct
{
evaluationId
int
k8sVersion
string
err
error
}
requestEvaluation
struct
{
...
...
@@ -62,7 +64,7 @@ func TestEvaluate(t *testing.T) {
t
.
Run
(
tt
.
name
,
func
(
t
*
testing
.
T
)
{
mockedCliClient
:=
&
mockCliClient
{}
mockedCliClient
.
On
(
"CreateEvaluation"
,
mock
.
Anything
)
.
Return
(
tt
.
mock
.
cliClient
.
createEvaluation
.
evaluationId
,
tt
.
mock
.
cliClient
.
createEvaluation
.
err
)
mockedCliClient
.
On
(
"CreateEvaluation"
,
mock
.
Anything
)
.
Return
(
tt
.
mock
.
cliClient
.
createEvaluation
,
tt
.
mock
.
cliClient
.
createEvaluation
.
err
)
mockedCliClient
.
On
(
"UpdateEvaluationValidation"
,
mock
.
Anything
)
.
Return
(
nil
)
evaluator
:=
&
Evaluator
{
...
...
@@ -163,6 +165,7 @@ func request_evaluation_all_valid() *evaluateTestCase {
cliClient
:
&
cliClientMockTestCase
{
createEvaluation
:
struct
{
evaluationId
int
k8sVersion
string
err
error
}{
evaluationId
:
1
,
...
...
@@ -230,6 +233,7 @@ func request_evaluation_all_invalid() *evaluateTestCase {
cliClient
:
&
cliClientMockTestCase
{
createEvaluation
:
struct
{
evaluationId
int
k8sVersion
string
err
error
}{
evaluationId
:
1
,
...
...
This diff is collapsed.
Click to expand it.
cmd/test/main.go
+
6
-
5
View file @
50293c8a
...
...
@@ -4,6 +4,7 @@ import (
"fmt"
"time"
"github.com/datreeio/datree/pkg/cliClient"
"github.com/datreeio/datree/pkg/extractor"
"github.com/briandowns/spinner"
...
...
@@ -17,7 +18,7 @@ import (
type
Evaluator
interface
{
Evaluate
(
validFilesPathsChan
chan
string
,
invalidFilesPaths
chan
*
validation
.
InvalidFile
,
evaluationId
int
)
(
*
evaluation
.
EvaluationResults
,
[]
*
validation
.
InvalidFile
,
[]
*
extractor
.
FileConfiguration
,
[]
*
evaluation
.
Error
,
error
)
CreateEvaluation
(
cliId
string
,
cliVersion
string
,
k8sVersion
string
)
(
int
,
error
)
CreateEvaluation
(
cliId
string
,
cliVersion
string
,
k8sVersion
string
)
(
*
cliClient
.
CreateEvaluationResponse
,
error
)
}
type
Messager
interface
{
...
...
@@ -73,7 +74,6 @@ func New(ctx *TestCommandContext) *cobra.Command {
}
testCommandFlags
:=
TestCommandFlags
{
Output
:
outputFlag
,
K8sVersion
:
k8sVersion
}
ctx
.
K8sValidator
=
validation
.
New
(
k8sVersion
)
return
test
(
ctx
,
args
,
testCommandFlags
)
},
SilenceUsage
:
true
,
...
...
@@ -106,12 +106,13 @@ func test(ctx *TestCommandContext, paths []string, flags TestCommandFlags) error
go
ctx
.
Messager
.
LoadVersionMessages
(
messages
,
ctx
.
CliVersion
)
e
valuation
Id
,
err
:=
ctx
.
Evaluator
.
CreateEvaluation
(
ctx
.
LocalConfig
.
CliId
,
ctx
.
CliVersion
,
flags
.
K8sVersion
)
createE
valuation
Response
,
err
:=
ctx
.
Evaluator
.
CreateEvaluation
(
ctx
.
LocalConfig
.
CliId
,
ctx
.
CliVersion
,
flags
.
K8sVersion
)
if
err
!=
nil
{
fmt
.
Println
(
err
.
Error
())
return
err
}
ctx
.
K8sValidator
=
validation
.
New
(
createEvaluationResponse
.
K8sVersion
)
validFilesPathsChan
,
invalidFilesPathsChan
,
errorsChan
:=
ctx
.
K8sValidator
.
ValidateResources
(
paths
)
go
func
()
{
for
err
:=
range
errorsChan
{
...
...
@@ -119,7 +120,7 @@ func test(ctx *TestCommandContext, paths []string, flags TestCommandFlags) error
}
}()
results
,
invalidFiles
,
filesConfigurations
,
errors
,
err
:=
ctx
.
Evaluator
.
Evaluate
(
validFilesPathsChan
,
invalidFilesPathsChan
,
e
valuationId
)
results
,
invalidFiles
,
filesConfigurations
,
errors
,
err
:=
ctx
.
Evaluator
.
Evaluate
(
validFilesPathsChan
,
invalidFilesPathsChan
,
createEvaluationResponse
.
E
valuationId
)
spinner
.
Stop
()
...
...
@@ -135,7 +136,7 @@ func test(ctx *TestCommandContext, paths []string, flags TestCommandFlags) error
PassedPolicyCheckCount
:
passedPolicyCheckCount
,
}
err
=
evaluation
.
PrintResults
(
results
,
invalidFiles
,
evaluationSummary
,
fmt
.
Sprintf
(
"https://app.datree.io/login?cliId=%s"
,
ctx
.
LocalConfig
.
CliId
),
flags
.
Output
,
ctx
.
Printer
,
flags
.
K8sVersion
)
err
=
evaluation
.
PrintResults
(
results
,
invalidFiles
,
evaluationSummary
,
fmt
.
Sprintf
(
"https://app.datree.io/login?cliId=%s"
,
ctx
.
LocalConfig
.
CliId
),
flags
.
Output
,
ctx
.
Printer
,
createEvaluationResponse
.
K8sVersion
)
var
invocationFailedErr
error
=
nil
...
...
This diff is collapsed.
Click to expand it.
cmd/test/main_test.go
+
5
-
5
View file @
50293c8a
...
...
@@ -4,6 +4,7 @@ import (
"testing"
"github.com/datreeio/datree/bl/validation"
"github.com/datreeio/datree/pkg/cliClient"
"github.com/datreeio/datree/pkg/extractor"
"github.com/datreeio/datree/pkg/printer"
...
...
@@ -22,9 +23,9 @@ func (m *mockEvaluator) Evaluate(validFilesPathsChan chan string, invalidFilesPa
return
args
.
Get
(
0
)
.
(
*
evaluation
.
EvaluationResults
),
args
.
Get
(
1
)
.
([]
*
validation
.
InvalidFile
),
args
.
Get
(
2
)
.
([]
*
extractor
.
FileConfiguration
),
args
.
Get
(
3
)
.
([]
*
evaluation
.
Error
),
args
.
Error
(
4
)
}
func
(
m
*
mockEvaluator
)
CreateEvaluation
(
cliId
string
,
cliVersion
string
,
k8sVersion
string
)
(
int
,
error
)
{
func
(
m
*
mockEvaluator
)
CreateEvaluation
(
cliId
string
,
cliVersion
string
,
k8sVersion
string
)
(
*
cliClient
.
CreateEvaluationResponse
,
error
)
{
args
:=
m
.
Called
(
cliId
,
cliVersion
,
k8sVersion
)
return
args
.
Get
(
0
)
.
(
int
),
args
.
Error
(
1
)
return
args
.
Get
(
0
)
.
(
*
cliClient
.
CreateEvaluationResponse
),
args
.
Error
(
1
)
}
type
mockMessager
struct
{
...
...
@@ -103,8 +104,7 @@ func TestTestCommand(t *testing.T) {
mockedEvaluator
:=
&
mockEvaluator
{}
mockedEvaluator
.
On
(
"Evaluate"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
evaluationResults
,
invalidFiles
,
fileConfigurations
,
evaluationErrors
,
nil
)
mockedEvaluator
.
On
(
"CreateEvaluation"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
evaluationId
,
nil
)
mockedEvaluator
.
On
(
"CreateEvaluation"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
&
cliClient
.
CreateEvaluationResponse
{
EvaluationId
:
evaluationId
,
K8sVersion
:
"1.18.0"
},
nil
)
messager
:=
&
mockMessager
{}
messager
.
On
(
"LoadVersionMessages"
,
mock
.
Anything
,
mock
.
Anything
)
...
...
@@ -140,7 +140,7 @@ func TestTestCommand(t *testing.T) {
}
func
test_testCommand_no_flags
(
t
*
testing
.
T
,
evaluator
*
mockEvaluator
,
validFilesPathChan
chan
string
,
invalidFilesChan
chan
*
validation
.
InvalidFile
,
evaluationId
int
,
ctx
*
TestCommandContext
)
{
test
(
ctx
,
[]
string
{
"8/*"
},
TestCommandFlags
{})
test
(
ctx
,
[]
string
{
"8/*"
},
TestCommandFlags
{
K8sVersion
:
""
,
Output
:
""
})
evaluator
.
AssertCalled
(
t
,
"Evaluate"
,
validFilesPathChan
,
invalidFilesChan
,
evaluationId
)
evaluator
.
AssertNotCalled
(
t
,
"PrintFileParsingErrors"
)
...
...
This diff is collapsed.
Click to expand it.
pkg/cliClient/cliClient_test.go
+
14
-
9
View file @
50293c8a
...
...
@@ -3,12 +3,13 @@ package cliClient
import
(
"bytes"
"encoding/json"
"gopkg.in/yaml.v3"
"io/ioutil"
"net/http"
"path/filepath"
"testing"
"gopkg.in/yaml.v3"
"github.com/datreeio/datree/pkg/extractor"
"github.com/datreeio/datree/pkg/httpClient"
"github.com/stretchr/testify/assert"
...
...
@@ -25,7 +26,7 @@ func (c *mockHTTPClient) Request(method string, resourceURI string, body interfa
return
args
.
Get
(
0
)
.
(
httpClient
.
Response
),
args
.
Error
(
1
)
}
func
(
c
*
mockHTTPClient
)
name
()
{
func
(
c
*
mockHTTPClient
)
name
()
{
}
...
...
@@ -140,11 +141,10 @@ func TestCreateRequestEvaluation(t *testing.T) {
httpClient
:
&
httpClientMock
,
}
actualEvaluationId
,
_
:=
client
.
CreateEvaluation
(
tt
.
args
.
createEvaluationRequest
)
res
,
_
:=
client
.
CreateEvaluation
(
tt
.
args
.
createEvaluationRequest
)
httpClientMock
.
AssertCalled
(
t
,
"Request"
,
tt
.
expected
.
request
.
method
,
tt
.
expected
.
request
.
uri
,
tt
.
expected
.
request
.
body
,
tt
.
expected
.
request
.
headers
)
assert
.
Equal
(
t
,
tt
.
expected
.
response
.
EvaluationId
,
actualEvaluationId
)
assert
.
Equal
(
t
,
tt
.
expected
.
response
,
res
)
})
}
}
...
...
@@ -161,9 +161,8 @@ func TestGetVersionMessage(t *testing.T) {
mockedHTTPResponse
:=
httpClient
.
Response
{
StatusCode
:
tt
.
mock
.
response
.
status
,
Body
:
body
}
httpClientMock
.
On
(
"Request"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
mockedHTTPResponse
,
nil
)
client
:=
&
CliClient
{
baseUrl
:
"http://cli-service.test.io"
,
baseUrl
:
"http://cli-service.test.io"
,
timeoutClient
:
&
httpClientMock
,
}
...
...
@@ -312,13 +311,16 @@ func test_requestEvaluation_success() *RequestEvaluationTestCase {
}
func
test_createEvaluation_success
()
*
CreateEvaluationTestCase
{
k8sVersion
:=
"1.18.0"
return
&
CreateEvaluationTestCase
{
name
:
"success - create evaluation"
,
args
:
struct
{
createEvaluationRequest
*
CreateEvaluationRequest
}{
createEvaluationRequest
:
&
CreateEvaluationRequest
{
CliId
:
"cli_id"
,
K8sVersion
:
&
k8sVersion
,
CliId
:
"cli_id"
,
Metadata
:
&
Metadata
{
CliVersion
:
"0.0.1"
,
Os
:
"darwin"
,
...
...
@@ -340,6 +342,7 @@ func test_createEvaluation_success() *CreateEvaluationTestCase {
status
:
http
.
StatusOK
,
body
:
&
CreateEvaluationResponse
{
EvaluationId
:
123
,
K8sVersion
:
k8sVersion
,
},
},
},
...
...
@@ -361,7 +364,8 @@ func test_createEvaluation_success() *CreateEvaluationTestCase {
method
:
http
.
MethodPost
,
uri
:
"/cli/evaluation/create"
,
body
:
&
CreateEvaluationRequest
{
CliId
:
"cli_id"
,
K8sVersion
:
&
k8sVersion
,
CliId
:
"cli_id"
,
Metadata
:
&
Metadata
{
CliVersion
:
"0.0.1"
,
Os
:
"darwin"
,
...
...
@@ -373,6 +377,7 @@ func test_createEvaluation_success() *CreateEvaluationTestCase {
},
response
:
&
CreateEvaluationResponse
{
EvaluationId
:
123
,
K8sVersion
:
k8sVersion
,
},
},
}
...
...
This diff is collapsed.
Click to expand it.
pkg/cliClient/evaluation.go
+
9
-
7
View file @
50293c8a
...
...
@@ -2,8 +2,9 @@ package cliClient
import
(
"encoding/json"
"github.com/datreeio/datree/pkg/extractor"
"net/http"
"github.com/datreeio/datree/pkg/extractor"
)
type
Metadata
struct
{
...
...
@@ -16,26 +17,27 @@ type Metadata struct {
type
CreateEvaluationRequest
struct
{
CliId
string
`json:"cliId"`
Metadata
*
Metadata
`json:"metadata"`
K8sVersion
string
`json:"k8sVersion"`
K8sVersion
*
string
`json:"k8sVersion"`
}
type
CreateEvaluationResponse
struct
{
EvaluationId
int
`json:"evaluationId"`
EvaluationId
int
`json:"evaluationId"`
K8sVersion
string
`json:"k8sVersion"`
}
func
(
c
*
CliClient
)
CreateEvaluation
(
request
*
CreateEvaluationRequest
)
(
int
,
error
)
{
func
(
c
*
CliClient
)
CreateEvaluation
(
request
*
CreateEvaluationRequest
)
(
*
CreateEvaluationResponse
,
error
)
{
httpRes
,
err
:=
c
.
httpClient
.
Request
(
http
.
MethodPost
,
"/cli/evaluation/create"
,
request
,
nil
)
if
err
!=
nil
{
return
0
,
err
return
nil
,
err
}
var
res
=
&
CreateEvaluationResponse
{}
err
=
json
.
Unmarshal
(
httpRes
.
Body
,
&
res
)
if
err
!=
nil
{
return
0
,
err
return
nil
,
err
}
return
res
.
EvaluationId
,
nil
return
res
,
nil
}
type
Match
struct
{
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help