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
c602ff1f
Unverified
Commit
c602ff1f
authored
3 years ago
by
Yishay Mendelsohn
Committed by
GitHub
3 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #100 from datreeio/staging
staging
parents
ee670358
03da46fc
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
cmd/test/main.go
+5
-5
cmd/test/main.go
pkg/httpClient/client.go
+32
-11
pkg/httpClient/client.go
pkg/httpClient/client_test.go
+22
-1
pkg/httpClient/client_test.go
with
59 additions
and
17 deletions
+59
-17
cmd/test/main.go
+
5
-
5
View file @
c602ff1f
...
...
@@ -70,13 +70,13 @@ type TestCommandContext struct {
func
New
(
ctx
*
TestCommandContext
)
*
cobra
.
Command
{
testCommand
:=
&
cobra
.
Command
{
Use
:
"test"
,
Short
:
"Execute static analysis for pattern"
,
Long
:
"Execute static analysis for pattern. Input should be glob or `-` for stdin"
,
Use
:
"test
<pattern>
"
,
Short
:
"Execute static analysis for
given <
pattern
>
"
,
Long
:
"Execute static analysis for
given <
pattern
>
. Input should be glob or `-` for stdin"
,
Args
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
error
{
if
len
(
args
)
<
1
{
errMessage
:=
"
r
equires at least 1 arg"
fmt
.
Println
(
errMes
sage
)
errMessage
:=
"
R
equires at least 1 arg
\n
"
cmd
.
U
sage
(
)
return
fmt
.
Errorf
(
errMessage
)
}
return
nil
...
...
This diff is collapsed.
Click to expand it.
pkg/httpClient/client.go
+
32
-
11
View file @
c602ff1f
...
...
@@ -2,6 +2,7 @@ package httpClient
import
(
"bytes"
"compress/gzip"
"encoding/json"
"fmt"
"io"
...
...
@@ -89,27 +90,47 @@ func (c *Client) Request(method string, resourceURI string, body interface{}, he
}
func
(
c
*
Client
)
createNewRequest
(
method
string
,
url
string
,
body
interface
{},
headers
map
[
string
]
string
)
(
*
http
.
Request
,
error
)
{
bodyBuffer
,
err
:=
c
.
parseBody
(
body
)
if
err
!=
nil
{
return
nil
,
err
}
request
,
err
:=
http
.
NewRequest
(
method
,
url
,
bodyBuffer
)
if
err
!=
nil
{
return
nil
,
err
}
requestHeaders
:=
c
.
mergeWithDefaultHeaders
(
headers
)
c
.
addHeadersToRequest
(
request
,
requestHeaders
)
var
request
*
http
.
Request
var
err
error
if
body
!=
nil
{
var
encodedBuf
bytes
.
Buffer
enc
:=
json
.
NewEncoder
(
&
encodedBuf
)
enc
.
SetEscapeHTML
(
false
)
err
=
enc
.
Encode
(
body
)
if
err
!=
nil
{
return
nil
,
err
}
var
gzippedBuf
bytes
.
Buffer
gzipWriter
:=
gzip
.
NewWriter
(
&
gzippedBuf
)
gzipWriter
.
Write
(
encodedBuf
.
Bytes
())
if
err
=
gzipWriter
.
Close
();
err
!=
nil
{
return
nil
,
err
}
request
,
err
=
http
.
NewRequest
(
method
,
url
,
&
gzippedBuf
)
if
err
!=
nil
{
return
nil
,
err
}
contentTypeHeader
:=
c
.
getValueOfHeader
(
headers
,
"Content-Type"
)
if
contentTypeHeader
==
""
{
request
.
Header
.
Set
(
"Content-Type"
,
defaultContentType
)
}
else
{
request
.
Header
.
Set
(
"Content-Type"
,
contentTypeHeader
)
}
request
.
Header
.
Set
(
"Content-Encoding"
,
"gzip"
)
}
else
{
request
,
err
=
http
.
NewRequest
(
method
,
url
,
nil
)
if
err
!=
nil
{
return
nil
,
err
}
}
requestHeaders
:=
c
.
mergeWithDefaultHeaders
(
headers
)
c
.
addHeadersToRequest
(
request
,
requestHeaders
)
return
request
,
nil
}
...
...
This diff is collapsed.
Click to expand it.
pkg/httpClient/client_test.go
+
22
-
1
View file @
c602ff1f
package
httpClient
import
(
"bytes"
"compress/gzip"
"io/ioutil"
"net/http"
"net/http/httptest"
...
...
@@ -79,6 +81,20 @@ func TestRequestWithBadUrl(t *testing.T) {
assert
.
NotNil
(
t
,
err
)
}
func
gunzipBody
(
body
[]
byte
)
string
{
buf
:=
bytes
.
NewBuffer
(
body
)
gzipReader
,
err
:=
gzip
.
NewReader
(
buf
)
if
err
!=
nil
{
panic
(
err
)
}
var
gunzippedBuf
bytes
.
Buffer
_
,
err
=
gunzippedBuf
.
ReadFrom
(
gzipReader
)
if
err
!=
nil
{
panic
(
err
)
}
return
string
(
gunzippedBuf
.
Bytes
())
}
func
createMockServer
(
t
*
testing
.
T
,
tc
*
testCase
)
*
httptest
.
Server
{
return
httptest
.
NewServer
(
http
.
HandlerFunc
(
func
(
rw
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
...
...
@@ -86,7 +102,12 @@ func createMockServer(t *testing.T, tc *testCase) *httptest.Server {
body
,
_
:=
ioutil
.
ReadAll
(
req
.
Body
)
assert
.
Equal
(
t
,
tc
.
expectedRequestBody
,
string
(
body
))
if
len
(
tc
.
expectedRequestBody
)
>
0
{
gunzippedBody
:=
gunzipBody
(
body
)
assert
.
Equal
(
t
,
tc
.
expectedRequestBody
,
gunzippedBody
)
}
else
{
assert
.
Equal
(
t
,
tc
.
expectedRequestBody
,
string
(
body
))
}
assert
.
Equal
(
t
,
tc
.
method
,
req
.
Method
)
...
...
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