MCPcopy Index your code
hub / github.com/docker/docker-agent / TestExtractHTTPStatusCode

Function TestExtractHTTPStatusCode

pkg/modelerrors/modelerrors_test.go:84–110  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

82}
83
84func TestExtractHTTPStatusCode(t *testing.T) {
85 t.Parallel()
86
87 tests := []struct {
88 name string
89 err error
90 expected int
91 }{
92 {name: "nil error", err: nil, expected: 0},
93 {name: "429 in message", err: errors.New("POST /v1/chat/completions: 429 Too Many Requests"), expected: 429},
94 {name: "500 in message", err: errors.New("internal server error 500"), expected: 500},
95 {name: "502 in message", err: errors.New("502 bad gateway"), expected: 502},
96 {name: "401 in message", err: errors.New("401 unauthorized"), expected: 401},
97 {name: "no status code", err: errors.New("connection refused"), expected: 0},
98 // StatusError structural path
99 {name: "StatusError 429", err: &StatusError{StatusCode: 429, Err: errors.New("rate limited")}, expected: 429},
100 {name: "StatusError 500", err: &StatusError{StatusCode: 500, Err: errors.New("server error")}, expected: 500},
101 {name: "wrapped StatusError", err: fmt.Errorf("outer: %w", &StatusError{StatusCode: 503, Err: errors.New("unavailable")}), expected: 503},
102 }
103
104 for _, tt := range tests {
105 t.Run(tt.name, func(t *testing.T) {
106 t.Parallel()
107 assert.Equal(t, tt.expected, extractHTTPStatusCode(tt.err), "extractHTTPStatusCode(%v)", tt.err)
108 })
109 }
110}
111
112func TestIsRetryableStatusCode(t *testing.T) {
113 t.Parallel()

Callers

nothing calls this directly

Calls 3

extractHTTPStatusCodeFunction · 0.85
RunMethod · 0.65
NewMethod · 0.45

Tested by

no test coverage detected