Skip to content

Commit 688d792

Browse files
authored
Convert tests to use testify assert/require (#70)
1 parent 934d938 commit 688d792

25 files changed

+985
-2573
lines changed

api/api_test.go

Lines changed: 25 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import (
1111
"testing"
1212
"time"
1313

14-
"github.com/go-test/deep"
14+
"github.com/stretchr/testify/assert"
15+
"github.com/stretchr/testify/require"
1516
"go.mongodb.org/mongo-driver/bson/primitive"
1617

1718
"github.com/square/etre"
@@ -90,9 +91,7 @@ func setup(t *testing.T, cfg config.Config, store mock.EntityStore) *server {
9091
}
9192

9293
acls, err := srv.MapConfigACLRoles(cfg.Security.ACL)
93-
if err != nil {
94-
t.Fatalf("invalid Config.ACL: %s", err)
95-
}
94+
require.NoError(t, err, "invalid Config.ACL: %s", err)
9695

9796
appCtx := app.Context{
9897
Config: server.cfg,
@@ -108,9 +107,8 @@ func setup(t *testing.T, cfg config.Config, store mock.EntityStore) *server {
108107
server.ts = httptest.NewServer(server.api)
109108

110109
u, err := url.Parse(server.ts.URL)
111-
if err != nil {
112-
t.Fatal(err)
113-
}
110+
require.NoError(t, err)
111+
114112
server.url = fmt.Sprintf("http://%s", u.Host)
115113

116114
return server
@@ -138,19 +136,13 @@ func TestStatus(t *testing.T) {
138136
var gotStatus map[string]string
139137
url := server.url + etre.API_ROOT + "/status"
140138
statusCode, err := test.MakeHTTPRequest("GET", url, nil, &gotStatus)
141-
if err != nil {
142-
t.Fatal(err)
143-
}
144-
if statusCode != http.StatusOK {
145-
t.Errorf("got HTTP status = %d, expected %d", statusCode, http.StatusOK)
146-
}
139+
require.NoError(t, err)
140+
assert.Equal(t, http.StatusOK, statusCode)
147141
expectStatus := map[string]string{
148142
"ok": "yes",
149143
"version": etre.VERSION,
150144
}
151-
if diff := deep.Equal(gotStatus, expectStatus); diff != nil {
152-
t.Error(diff)
153-
}
145+
assert.Equal(t, expectStatus, gotStatus)
154146
}
155147

156148
func TestValidateEntityType(t *testing.T) {
@@ -163,27 +155,16 @@ func TestValidateEntityType(t *testing.T) {
163155

164156
var gotError etre.Error
165157
statusCode, err := test.MakeHTTPRequest("GET", etreurl, nil, &gotError)
166-
if err != nil {
167-
t.Fatal(err)
168-
}
169-
170-
if statusCode != http.StatusBadRequest {
171-
t.Errorf("response status = %d, expected %d", statusCode, http.StatusBadRequest)
172-
}
173-
if gotError.Message == "" {
174-
t.Errorf("no error message in etre.Error, expected one: %+v", gotError)
175-
}
158+
require.NoError(t, err)
159+
assert.Equal(t, http.StatusBadRequest, statusCode)
160+
assert.NotEmpty(t, gotError.Message)
176161

177162
// -- Metrics -----------------------------------------------------------
178163
expectMetrics := []mock.MetricMethodArgs{
179164
{Method: "Inc", Metric: metrics.InvalidEntityType, IntVal: 1},
180165
{Method: "Inc", Metric: metrics.ClientError, IntVal: 1}, // error
181166
}
182-
if diffs := deep.Equal(server.metricsrec.Called, expectMetrics); diffs != nil {
183-
t.Logf(" got: %+v", server.metricsrec.Called)
184-
t.Logf("expect: %+v", expectMetrics)
185-
t.Error(diffs)
186-
}
167+
assert.Equal(t, expectMetrics, server.metricsrec.Called)
187168

188169
// ----------------------------------------------------------------------
189170
// Write
@@ -193,26 +174,13 @@ func TestValidateEntityType(t *testing.T) {
193174

194175
var gotWR etre.WriteResult
195176
statusCode, err = test.MakeHTTPRequest("PUT", etreurl, nil, &gotWR)
196-
if err != nil {
197-
t.Fatal(err)
198-
}
199-
200-
if statusCode != http.StatusBadRequest {
201-
t.Errorf("response status = %d, expected %d", statusCode, http.StatusBadRequest)
202-
}
203-
204-
if gotWR.Error == nil {
205-
t.Errorf("WriteResult.Error is nil, expected error message")
206-
} else if gotWR.Error.Type != "invalid-entity-type" {
207-
t.Errorf("WriteResult.Error.Type = %s, expected invalid-entity-type", gotWR.Error.Type)
208-
}
177+
require.NoError(t, err)
178+
assert.Equal(t, http.StatusBadRequest, statusCode)
179+
require.NotNil(t, gotWR.Error)
180+
assert.Equal(t, "invalid-entity-type", gotWR.Error.Type)
209181

210182
// -- Metrics -----------------------------------------------------------
211-
if diffs := deep.Equal(server.metricsrec.Called, expectMetrics); diffs != nil {
212-
t.Logf(" got: %+v", server.metricsrec.Called)
213-
t.Logf("expect: %+v", expectMetrics)
214-
t.Error(diffs)
215-
}
183+
assert.Equal(t, expectMetrics, server.metricsrec.Called)
216184
}
217185

218186
func TestClientQueryTimeout(t *testing.T) {
@@ -237,24 +205,15 @@ func TestClientQueryTimeout(t *testing.T) {
237205
etreurl := server.url + etre.API_ROOT + "/entity/" + entityType + "/" + testEntityIds[0]
238206
var gotEntity etre.Entity
239207
statusCode, err := test.MakeHTTPRequest("GET", etreurl, nil, &gotEntity)
240-
if err != nil {
241-
t.Fatal(err)
242-
}
243-
if statusCode != http.StatusOK {
244-
t.Errorf("response status = %d, expected %d", statusCode, http.StatusOK)
245-
}
208+
require.NoError(t, err)
209+
assert.Equal(t, http.StatusOK, statusCode)
246210

247211
// If set properly, the deadline of the context will be very close to 2s.
248212
// This is a number number because the deadline is in the future.
249213
gotDeadline, set := gotCtx.Deadline()
250214
d := time.Now().Sub(gotDeadline).Seconds()
251-
t.Logf("deadline: set=%t, %s (%f)", set, gotDeadline, d)
252-
if !set {
253-
t.Errorf("query timeout deadline not set, expected it to be set")
254-
}
255-
if d < -2.2 || d > -1.8 {
256-
t.Errorf("deadline %f, expected between 1.8-2.2s (2s default)", d)
257-
}
215+
assert.True(t, set, "query timeout deadline not set, expected it to be set")
216+
assert.True(t, -d >= 1.8 && -d <= 2.2, "deadline %f, expected between 1.8-2.2s (2s default)", d)
258217

259218
// ----------------------------------------------------------------------
260219
// Client passes X-Etre-Query-Timeout
@@ -264,19 +223,10 @@ func TestClientQueryTimeout(t *testing.T) {
264223
defer func() { test.Headers = map[string]string{} }()
265224

266225
statusCode, err = test.MakeHTTPRequest("GET", etreurl, nil, &gotEntity)
267-
if err != nil {
268-
t.Fatal(err)
269-
}
270-
if statusCode != http.StatusOK {
271-
t.Errorf("response status = %d, expected %d", statusCode, http.StatusOK)
272-
}
226+
require.NoError(t, err)
227+
assert.Equal(t, http.StatusOK, statusCode)
273228
gotDeadline, set = gotCtx.Deadline()
274229
d = time.Now().Sub(gotDeadline).Seconds()
275-
t.Logf("deadline: set=%t, %s (%f)", set, gotDeadline, d)
276-
if !set {
277-
t.Errorf("query timeout deadline not set, expected it to be set")
278-
}
279-
if d < -5.2 || d > -4.8 {
280-
t.Errorf("deadline %f, expected between 4.8-5.2s (2s default)", d)
281-
}
230+
assert.True(t, set, "query timeout deadline not set, expected it to be set")
231+
assert.True(t, -d >= 4.8 && -d <= 5.2, "deadline %f, expected between 4.8-5.2s (5s client)", d)
282232
}

api/auth_test.go

Lines changed: 21 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ import (
88
"net/http"
99
"testing"
1010

11-
"github.com/go-test/deep"
11+
"github.com/stretchr/testify/assert"
12+
"github.com/stretchr/testify/require"
1213

1314
"github.com/square/etre"
1415
"github.com/square/etre/auth"
@@ -32,35 +33,22 @@ func TestAuthAccessDenied(t *testing.T) {
3233
etreurl := server.url + etre.API_ROOT + "/entities/" + entityType + "?query=x"
3334
var etreErr etre.Error
3435
statusCode, err := test.MakeHTTPRequest("GET", etreurl, nil, &etreErr)
35-
if err != nil {
36-
t.Fatal(err)
37-
}
38-
t.Logf("%+v", etreErr)
39-
if statusCode != http.StatusUnauthorized {
40-
t.Errorf("response status = %d, expected %d", statusCode, http.StatusUnauthorized)
41-
}
36+
require.NoError(t, err)
37+
assert.Equal(t, http.StatusUnauthorized, statusCode)
4238

4339
// ----------------------------------------------------------------------
4440
// Write
4541
etreurl = server.url + etre.API_ROOT + "/entity/" + entityType
4642
newEntity := etre.Entity{"host": "local"}
4743
payload, err := json.Marshal(newEntity)
48-
if err != nil {
49-
t.Fatal(err)
50-
}
44+
require.NoError(t, err)
45+
5146
var gotWR etre.WriteResult
5247
statusCode, err = test.MakeHTTPRequest("POST", etreurl, payload, &gotWR)
53-
if err != nil {
54-
t.Fatal(err)
55-
}
56-
if statusCode != http.StatusUnauthorized {
57-
t.Errorf("response status = %d, expected %d", statusCode, http.StatusUnauthorized)
58-
}
59-
if gotWR.Error == nil {
60-
t.Errorf("WriteResult.Error is nil, expected error message")
61-
} else if gotWR.Error.Type != "access-denied" {
62-
t.Errorf("WriteResult.Error.Type = %s, expected access-denied", gotWR.Error.Type)
63-
}
48+
require.NoError(t, err)
49+
assert.Equal(t, http.StatusUnauthorized, statusCode)
50+
require.NotNil(t, gotWR.Error)
51+
assert.Equal(t, "access-denied", gotWR.Error.Type)
6452
}
6553

6654
func TestAuthNotAuthorizedWNoACLs(t *testing.T) {
@@ -91,25 +79,14 @@ func TestAuthNotAuthorizedWNoACLs(t *testing.T) {
9179
etreurl := server.url + etre.API_ROOT + "/entities/" + entityType + "?query=x"
9280
var etreErr etre.Error
9381
statusCode, err := test.MakeHTTPRequest("GET", etreurl, nil, &etreErr)
94-
if err != nil {
95-
t.Fatal(err)
96-
}
97-
t.Logf("%+v", etreErr)
98-
if statusCode != http.StatusForbidden {
99-
t.Errorf("response status = %d, expected %d", statusCode, http.StatusForbidden)
100-
}
101-
102-
if diff := deep.Equal(gotCaller, caller); diff != nil {
103-
t.Error(diff)
104-
}
105-
82+
require.NoError(t, err)
83+
assert.Equal(t, http.StatusForbidden, statusCode)
84+
assert.Equal(t, caller, gotCaller)
10685
expectAction := auth.Action{
10786
EntityType: entityType,
10887
Op: auth.OP_READ,
10988
}
110-
if diff := deep.Equal(gotAction, expectAction); diff != nil {
111-
t.Error(diff)
112-
}
89+
assert.Equal(t, expectAction, gotAction)
11390

11491
// ----------------------------------------------------------------------
11592
// Write
@@ -119,32 +96,18 @@ func TestAuthNotAuthorizedWNoACLs(t *testing.T) {
11996
etreurl = server.url + etre.API_ROOT + "/entity/" + entityType
12097
newEntity := etre.Entity{"host": "local"}
12198
payload, err := json.Marshal(newEntity)
122-
if err != nil {
123-
t.Fatal(err)
124-
}
99+
require.NoError(t, err)
125100
var gotWR etre.WriteResult
126101
statusCode, err = test.MakeHTTPRequest("POST", etreurl, payload, &gotWR)
127-
if err != nil {
128-
t.Fatal(err)
129-
}
130-
if statusCode != http.StatusForbidden {
131-
t.Errorf("response status = %d, expected %d", statusCode, http.StatusForbidden)
132-
}
133-
if gotWR.Error == nil {
134-
t.Errorf("WriteResult.Error is nil, expected error message")
135-
} else if gotWR.Error.Type != "not-authorized" {
136-
t.Errorf("WriteResult.Error.Type = %s, expected not-authorized", gotWR.Error.Type)
137-
}
138-
139-
if diff := deep.Equal(gotCaller, caller); diff != nil {
140-
t.Error(diff)
141-
}
102+
require.NoError(t, err)
103+
assert.Equal(t, http.StatusForbidden, statusCode)
104+
require.NotNil(t, gotWR.Error)
105+
assert.Equal(t, "not-authorized", gotWR.Error.Type)
106+
assert.Equal(t, caller, gotCaller)
142107

143108
expectAction = auth.Action{
144109
EntityType: entityType,
145110
Op: auth.OP_WRITE,
146111
}
147-
if diff := deep.Equal(gotAction, expectAction); diff != nil {
148-
t.Error(diff)
149-
}
112+
assert.Equal(t, expectAction, gotAction)
150113
}

0 commit comments

Comments
 (0)