MCPcopy
hub / github.com/cortexlabs/cortex / TestAsyncMessageHandler_Handle

Function TestAsyncMessageHandler_Handle

pkg/dequeuer/async_handler_test.go:38–89  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

36)
37
38func TestAsyncMessageHandler_Handle(t *testing.T) {
39 t.Parallel()
40
41 log := newLogger(t)
42 defer func() { _ = log.Sync() }()
43
44 awsClient := testAWSClient(t)
45
46 requestID := random.String(8)
47 server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
48 require.Equal(t, requestID, r.Header.Get(CortexRequestIDHeader))
49 w.Header().Set("Content-Type", "application/json")
50 w.WriteHeader(http.StatusOK)
51 _, _ = w.Write([]byte("{}"))
52 }))
53
54 var requestEventsCount int
55 eventHandler := NewRequestEventHandlerFunc(func(event RequestEvent) {
56 requestEventsCount++
57 })
58
59 asyncHandler := NewAsyncMessageHandler(AsyncMessageHandlerConfig{
60 ClusterUID: "cortex-test",
61 Bucket: _testBucket,
62 APIName: "async-test",
63 TargetURL: server.URL,
64 }, awsClient, eventHandler, log)
65
66 _, err := awsClient.S3().CreateBucket(&s3.CreateBucketInput{
67 Bucket: aws.String(_testBucket),
68 })
69 require.NoError(t, err)
70
71 err = awsClient.UploadStringToS3("{}", asyncHandler.config.Bucket, async.PayloadPath(asyncHandler.storagePath, requestID))
72 require.NoError(t, err)
73
74 err = awsClient.UploadStringToS3("{}", asyncHandler.config.Bucket, async.HeadersPath(asyncHandler.storagePath, requestID))
75 require.NoError(t, err)
76
77 err = asyncHandler.Handle(&sqs.Message{
78 Body: aws.String(requestID),
79 MessageId: aws.String(requestID),
80 })
81 require.NoError(t, err)
82
83 _, err = awsClient.ReadStringFromS3(
84 _testBucket,
85 fmt.Sprintf("%s/%s/status/%s", asyncHandler.storagePath, requestID, async.StatusCompleted),
86 )
87 require.NoError(t, err)
88 require.Equal(t, 1, requestEventsCount)
89}
90
91func TestAsyncMessageHandler_Handle_Errors(t *testing.T) {
92 t.Parallel()

Callers

nothing calls this directly

Calls 15

HandleMethod · 0.95
StringFunction · 0.92
PayloadPathFunction · 0.92
HeadersPathFunction · 0.92
testAWSClientFunction · 0.85
NewAsyncMessageHandlerFunction · 0.85
EqualMethod · 0.80
SetMethod · 0.80
WriteMethod · 0.80
CreateBucketMethod · 0.80
S3Method · 0.80

Tested by

no test coverage detected