Skip to content

Commit 2340467

Browse files
committed
Make context as the parameter in EntityClient
1 parent 4daf496 commit 2340467

File tree

3 files changed

+117
-148
lines changed

3 files changed

+117
-148
lines changed

client_test.go

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -108,27 +108,28 @@ func TestQueryAndIdRequired(t *testing.T) {
108108

109109
ec := etre.NewEntityClient("node", ts.URL, httpClient)
110110

111+
ctx := testContext()
111112
// All methods that take query string should return ErrNoQuery if not given one
112-
_, err := ec.Query("", etre.QueryFilter{})
113+
_, err := ec.Query(ctx, "", etre.QueryFilter{})
113114
assert.ErrorIs(t, err, etre.ErrNoQuery)
114115

115-
_, err = ec.Update("", entities[0])
116+
_, err = ec.Update(ctx, "", entities[0])
116117
assert.ErrorIs(t, err, etre.ErrNoQuery)
117118

118-
_, err = ec.Delete("")
119+
_, err = ec.Delete(ctx, "")
119120
assert.ErrorIs(t, err, etre.ErrNoQuery)
120121

121122
// All methods that take id string should return ErrIdNotSet if not given one
122-
_, err = ec.UpdateOne("", entities[0])
123+
_, err = ec.UpdateOne(ctx, "", entities[0])
123124
assert.ErrorIs(t, err, etre.ErrIdNotSet)
124125

125-
_, err = ec.DeleteOne("")
126+
_, err = ec.DeleteOne(ctx, "")
126127
assert.ErrorIs(t, err, etre.ErrIdNotSet)
127128

128-
_, err = ec.Labels("")
129+
_, err = ec.Labels(ctx, "")
129130
assert.ErrorIs(t, err, etre.ErrIdNotSet)
130131

131-
_, err = ec.DeleteLabel("", "foo")
132+
_, err = ec.DeleteLabel(ctx, "", "foo")
132133
assert.ErrorIs(t, err, etre.ErrIdNotSet)
133134
}
134135

@@ -152,7 +153,7 @@ func TestQueryOK(t *testing.T) {
152153
// Normal query that returns status code 200 and respData
153154
ctx := testContext()
154155
query := "x=y"
155-
got, err := ec.WithContext(ctx).Query(query, etre.QueryFilter{})
156+
got, err := ec.Query(ctx, query, etre.QueryFilter{})
156157
require.NoError(t, err)
157158

158159
// Verify call and response
@@ -173,7 +174,8 @@ func TestQueryNoResults(t *testing.T) {
173174

174175
ec := etre.NewEntityClient("node", ts.URL, httpClient)
175176

176-
got, err := ec.Query("any=thing", etre.QueryFilter{})
177+
ctx := testContext()
178+
got, err := ec.Query(ctx, "any=thing", etre.QueryFilter{})
177179
require.NoError(t, err)
178180
assert.Equal(t, respData, got)
179181
}
@@ -190,7 +192,8 @@ func TestQueryHandledError(t *testing.T) {
190192
}
191193

192194
ec := etre.NewEntityClient("node", ts.URL, httpClient)
193-
got, err := ec.Query("any=thing", etre.QueryFilter{})
195+
ctx := testContext()
196+
got, err := ec.Query(ctx, "any=thing", etre.QueryFilter{})
194197
require.Error(t, err)
195198
assert.Contains(t, err.Error(), respError.Type)
196199
assert.Nil(t, got)
@@ -206,7 +209,8 @@ func TestQueryUnhandledError(t *testing.T) {
206209
respStatusCode = http.StatusInternalServerError
207210

208211
ec := etre.NewEntityClient("node", ts.URL, httpClient)
209-
got, err := ec.Query("any=thing", etre.QueryFilter{})
212+
ctx := testContext()
213+
got, err := ec.Query(ctx, "any=thing", etre.QueryFilter{})
210214
require.Error(t, err)
211215
assert.Contains(t, err.Error(), "no response")
212216
assert.Nil(t, got)
@@ -228,7 +232,7 @@ func TestGetOK(t *testing.T) {
228232

229233
// Normal get that returns status code 200 and respData
230234
ctx := testContext()
231-
got, err := ec.WithContext(ctx).Get("abc")
235+
got, err := ec.Get(ctx, "abc")
232236
require.NoError(t, err)
233237

234238
// Verify call and response
@@ -250,7 +254,8 @@ func TestGetHandledError(t *testing.T) {
250254
}
251255

252256
ec := etre.NewEntityClient("node", ts.URL, httpClient)
253-
got, err := ec.Get("abc")
257+
ctx := testContext()
258+
got, err := ec.Get(ctx, "abc")
254259
require.Error(t, err)
255260
assert.Contains(t, err.Error(), respError.Type)
256261
assert.Nil(t, got)
@@ -266,7 +271,8 @@ func TestGetUnhandledError(t *testing.T) {
266271
respStatusCode = http.StatusInternalServerError
267272

268273
ec := etre.NewEntityClient("node", ts.URL, httpClient)
269-
got, err := ec.Get("abc")
274+
ctx := testContext()
275+
got, err := ec.Get(ctx, "abc")
270276
require.Error(t, err)
271277
assert.Contains(t, err.Error(), "no response")
272278
assert.Nil(t, got)
@@ -282,7 +288,8 @@ func TestGetNotFound(t *testing.T) {
282288
respStatusCode = http.StatusNotFound
283289

284290
ec := etre.NewEntityClient("node", ts.URL, httpClient)
285-
got, err := ec.Get("abc")
291+
ctx := testContext()
292+
got, err := ec.Get(ctx, "abc")
286293
require.Error(t, err)
287294
assert.Contains(t, err.Error(), "not found")
288295
assert.Nil(t, got)
@@ -316,7 +323,7 @@ func TestInsertOK(t *testing.T) {
316323
},
317324
}
318325
ctx := testContext()
319-
got, err := ec.WithContext(ctx).Insert(entities)
326+
got, err := ec.Insert(ctx, entities)
320327
require.NoError(t, err)
321328

322329
// Verify call and response
@@ -347,7 +354,8 @@ func TestInsertAPIError(t *testing.T) {
347354
"foo": "bar",
348355
},
349356
}
350-
got, err := ec.Insert(entities)
357+
ctx := testContext()
358+
got, err := ec.Insert(ctx, entities)
351359
require.NoError(t, err)
352360
assert.Equal(t, respData, got)
353361
}
@@ -363,7 +371,8 @@ func TestInsertUnhandledError(t *testing.T) {
363371

364372
ec := etre.NewEntityClient("node", ts.URL, httpClient)
365373
entities := []etre.Entity{{"foo": "bar"}}
366-
wr, err := ec.Insert(entities)
374+
ctx := testContext()
375+
wr, err := ec.Insert(ctx, entities)
367376
require.Error(t, err)
368377
assert.Contains(t, err.Error(), "no response")
369378
assert.Zero(t, wr)
@@ -376,7 +385,8 @@ func TestInsertNoEntityError(t *testing.T) {
376385

377386
// A zero length slice of entities should return ErrNoEntity
378387
entities := []etre.Entity{}
379-
got, err := ec.Insert(entities)
388+
ctx := testContext()
389+
got, err := ec.Insert(ctx, entities)
380390
assert.ErrorIs(t, err, etre.ErrNoEntity)
381391
assert.Nil(t, got.Writes)
382392
}
@@ -408,7 +418,7 @@ func TestUpdateOK(t *testing.T) {
408418
"foo": "bar", // patch foo:foo -> for:bar
409419
}
410420
ctx := testContext()
411-
got, err := ec.WithContext(ctx).Update("foo=bar", entity)
421+
got, err := ec.Update(ctx, "foo=bar", entity)
412422
require.NoError(t, err)
413423

414424
// Verify call and response
@@ -434,7 +444,8 @@ func TestUpdateAPIError(t *testing.T) {
434444
entity := etre.Entity{
435445
"foo": "bar",
436446
}
437-
got, err := ec.Update("foo=bar", entity)
447+
ctx := testContext()
448+
got, err := ec.Update(ctx, "foo=bar", entity)
438449
require.Error(t, err)
439450

440451
// The etre.Error.Message should bubble up
@@ -451,7 +462,8 @@ func TestUpdateNoEntityError(t *testing.T) {
451462

452463
// A zero length slice of entities should return ErrNoEntity
453464
entity := etre.Entity{}
454-
got, err := ec.Update("foo=bar", entity)
465+
ctx := testContext()
466+
got, err := ec.Update(ctx, "foo=bar", entity)
455467
assert.ErrorIs(t, err, etre.ErrNoEntity)
456468
assert.Nil(t, got.Writes)
457469
}
@@ -482,7 +494,8 @@ func TestUpdateOneOK(t *testing.T) {
482494
entity := etre.Entity{
483495
"foo": "bar", // patch foo:foo -> for:bar
484496
}
485-
got, err := ec.UpdateOne("abc", entity)
497+
ctx := testContext()
498+
got, err := ec.UpdateOne(ctx, "abc", entity)
486499
require.NoError(t, err)
487500
assert.Equal(t, "PUT", gotMethod)
488501
assert.Equal(t, etre.API_ROOT+"/entity/node/abc", gotPath)
@@ -516,7 +529,7 @@ func TestDeleteOK(t *testing.T) {
516529
// Normal delete that returns status code 200 and a write result
517530
query := "foo=bar"
518531
ctx := testContext()
519-
got, err := ec.WithContext(ctx).Delete(query)
532+
got, err := ec.Delete(ctx, query)
520533
require.NoError(t, err)
521534

522535
// Verify call and response
@@ -555,7 +568,8 @@ func TestDeleteWithSet(t *testing.T) {
555568

556569
// Normal delete that returns status code 200 and a write result
557570
query := "foo=bar"
558-
got, err := ec.Delete(query)
571+
ctx := testContext()
572+
got, err := ec.Delete(ctx, query)
559573
require.NoError(t, err)
560574

561575
// Verify call and response
@@ -588,7 +602,7 @@ func TestDeleteOneOK(t *testing.T) {
588602
ec := etre.NewEntityClient("node", ts.URL, httpClient)
589603

590604
ctx := testContext()
591-
got, err := ec.WithContext(ctx).DeleteOne("abc")
605+
got, err := ec.DeleteOne(ctx, "abc")
592606
require.NoError(t, err)
593607

594608
assert.Equal(t, "DELETE", gotMethod)
@@ -623,7 +637,8 @@ func TestDeleteOneWithSet(t *testing.T) {
623637
}
624638
ec = ec.WithSet(set)
625639

626-
got, err := ec.DeleteOne("abc")
640+
ctx := testContext()
641+
got, err := ec.DeleteOne(ctx, "abc")
627642
require.NoError(t, err)
628643
assert.Equal(t, "DELETE", gotMethod)
629644
assert.Equal(t, etre.API_ROOT+"/entity/node/abc", gotPath)
@@ -644,7 +659,7 @@ func TestLabelsOK(t *testing.T) {
644659
ec := etre.NewEntityClient("node", ts.URL, httpClient)
645660

646661
ctx := testContext()
647-
got, err := ec.WithContext(ctx).Labels("abc")
662+
got, err := ec.Labels(ctx, "abc")
648663
require.NoError(t, err)
649664
assert.Equal(t, "GET", gotMethod)
650665
assert.Equal(t, etre.API_ROOT+"/entity/node/abc/labels", gotPath)
@@ -671,7 +686,7 @@ func TestDeleteLabelOK(t *testing.T) {
671686
ec := etre.NewEntityClient("node", ts.URL, httpClient)
672687

673688
ctx := testContext()
674-
got, err := ec.WithContext(ctx).DeleteLabel("abc", "foo")
689+
got, err := ec.DeleteLabel(ctx, "abc", "foo")
675690
require.NoError(t, err)
676691
assert.Equal(t, "DELETE", gotMethod)
677692
assert.Equal(t, etre.API_ROOT+"/entity/node/abc/labels/foo", gotPath)
@@ -865,21 +880,6 @@ func TestCDCClient(t *testing.T) {
865880
assert.Contains(t, gotError, "fake error")
866881
}
867882

868-
func TestWithContext(t *testing.T) {
869-
ctx1 := context.Background()
870-
ctx2 := context.WithValue(ctx1, "key", "value")
871-
872-
// client w/o context should return context.Background()
873-
client1 := etre.NewEntityClient("node", ts.URL, httpClient)
874-
require.NotNil(t, client1.Context())
875-
assert.Equal(t, ctx1, client1.Context())
876-
877-
// set the context. should not change client1's context
878-
client2 := client1.WithContext(ctx2)
879-
assert.Equal(t, ctx2, client2.Context())
880-
assert.Equal(t, ctx1, client1.Context())
881-
}
882-
883883
func testContext() context.Context {
884884
return context.WithValue(context.Background(), "key", "test-context-"+time.Now().String())
885885
}

0 commit comments

Comments
 (0)