mirror of
https://github.com/kennethreitz/responder.git
synced 2026-07-21 18:39:29 +00:00
978414fc4a
Closes 11 of 12 verified findings (the 12th — form+model on one op — is an invalid HTTP combo, left as a harmless orphan component). - models.py _is_not_modified: normalize naive/aware datetimes -> UTC inside the try (fixes remote 500 on If-Modified-Since: ...-0000 for every file route). - models.py _parsed_form: buffer through size-checked self.content, so max_request_size is enforced on multipart AND the body stays replayable (fixes "Stream consumed" 500 + size-cap bypass). Single root cause. - openapi: register the real $defs body for self-referential models (was an empty self-$ref); log a warning on component __name__ collisions. - auth: APIKeyAuth(location="query") falls back to .query_params (works on WS). - routes _invoke_provider: detect generator-ness on __call__ for callable instances (teardown now runs). - DI overrides reach into the app-scope graph (_RequestResolver resolves an app-dep request-scoped when its subgraph touches an override); per-key restore. - models.py: 304 carries negotiated Vary; conditional wins over Range (304 not 206). Adds a cross-feature interaction regression suite. 547 tests pass; ruff + mypy clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>