pypi schemathesis 4.9.0
Release 4.9.0

12 hours ago

🚀 Added

  • OpenAPI 3.2 support.
  • Mix schema examples into fuzzing and stateful data generation.
  • Syntax-level fuzzing for JSON bodies in negative mode.
  • NDJSON report format (--report=ndjson) for exporting all engine events as newline-delimited JSON.
  • Capture primitive identifiers from POST/PUT responses returning bare strings or integers.
  • Normalize schema names by stripping common suffixes (-Output, -Input, Out, In, DTO).
  • Discover sub-resources inside array items (e.g., BackupFile from AllBackups.imports[]).
  • Recognize _name and -name parameter suffixes for resource inference (e.g., file_name -> File).
  • Match parameters to resources with matching suffixes or prefixes when exact match not found (e.g., file_name -> BackupFile.name, group_slug -> GroupSummary.slug).

🔧 Changed

  • Show all affected operations in CLI warnings instead of truncating to 3.
  • Deprioritize successfully deleted resources in variant selection to reduce wasted requests on non-existent resources.
  • Generate clean HTTP headers (ASCII without control characters) 95% of the time to reduce invalid request errors.

🐛 Fixed

  • CLI headers (-H) not being passed to schema loading requests. #3440
  • PCRE Unicode property escapes (\p{L}, \p{N}) in response schemas causing crashes during dependency analysis.
  • OpenAPI 3.1 response schemas with conflicting anyOf arrays (e.g., different const values) causing crashes during dependency analysis.
  • Negative testing error descriptions displaying internal bundled refs like #/x-bundled/schema1 instead of original refs like #/components/schemas/Item.
  • Resource pool lookups failing due to naming mismatch between producer ($ref-based) and consumer (path-based) sides.
  • "Path parameter 'X' is not defined" errors when using captured resource values for endpoints with parameters that have no resource requirements.

Don't miss a new schemathesis release

NewReleases is sending notifications on new releases.