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

Function TestClassifyOverflow

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

Source from the content-addressed store, hash-verified

168}
169
170func TestClassifyOverflow(t *testing.T) {
171 t.Parallel()
172
173 tests := []struct {
174 name string
175 err error
176 want OverflowKind
177 }{
178 // ── Tier 1: structured ──
179 {
180 name: "anthropic 413 with request_too_large body",
181 err: &StatusError{StatusCode: 413, Err: errors.New(
182 `POST "https://api.anthropic.com/v1/messages": 413 Payload Too Large {"type":"error","error":{"type":"request_too_large","message":"Request exceeds 32MB limit"}}`)},
183 want: OverflowKindWire,
184 },
185 {
186 name: "openai context_length_exceeded structured code",
187 err: errors.New(
188 `POST "https://api.openai.com/v1/chat/completions": 400 Bad Request {"error":{"message":"maximum context length is 128000 tokens","type":"invalid_request_error","code":"context_length_exceeded"}}`),
189 want: OverflowKindTokens,
190 },
191 {
192 name: "bare 413 with empty body still classifies as wire",
193 err: &StatusError{StatusCode: 413, Err: errors.New(`413 Payload Too Large`)},
194 want: OverflowKindWire,
195 },
196 {
197 name: "vertex 413 with prompt-too-long body — wire wins via 413",
198 err: &StatusError{StatusCode: 413, Err: errors.New(
199 `413 Payload Too Large {"error":{"message":"Prompt is too long"}}`)},
200 want: OverflowKindWire,
201 },
202
203 // ── Tier 2: prose patterns by provider ──
204 {
205 name: "anthropic 400 prompt too long",
206 err: errors.New(
207 `POST "https://api.anthropic.com/v1/messages": 400 Bad Request {"type":"error","error":{"type":"invalid_request_error","message":"prompt is too long: 137500 tokens > 135000 maximum"}}`),
208 want: OverflowKindTokens,
209 },
210 {
211 name: "gemini input token count exceeds maximum",
212 err: errors.New(
213 `googleapi: Error 400: input token count 200000 exceeds the maximum of 128000`),
214 want: OverflowKindTokens,
215 },
216 {
217 name: "bedrock input is too long",
218 err: errors.New(`ValidationException: input is too long for requested model`),
219 want: OverflowKindTokens,
220 },
221 {
222 name: "groq reduce the length",
223 err: errors.New(`please reduce the length of the messages or completion`),
224 want: OverflowKindTokens,
225 },
226 {
227 name: "mistral via prose",

Callers

nothing calls this directly

Calls 3

classifyOverflowFunction · 0.85
RunMethod · 0.65
NewMethod · 0.45

Tested by

no test coverage detected