🚀 Features
- ea64c29
--dry-run
CLI option. When applied, Schemathesis won't send any data to the server and won't perform any response checks - 9c13450 A helpful error message when an operation is not found during the direct schema access
- 7c528f4 Support data generation for
text/plain
media types withcharset
- e8bd16c Base URL for GraphQL schemas
- f724df9 Run
response_schema_conformance
check on media types that are encoded with JSON (#927)
🐛 Bug fixes
- 3c0883c Import in tests
- 9e74ec6 Generating incomplete explicit examples
- e1a54c0 CLI execution stops on errors during example generation
- b8f42df Handling of API operations that contain reserved characters in their paths
- f1566f7 CLI crash on schemas with operation names longer than the current terminal width
- 7ab5c86 Invalid types in
x-examples
- 5ca14bf
TypeError
during nullablearray
parameter serialization - 4774398 Collecting nullable parameters that are behind references
- 27bce30 Explicit examples for multipart forms
- d578519 A possibility to override
APIStateMachine.step
- d25efba
Unsatisfiable
error in stateful testing - afa3daa Skip explicit examples generation if this phase is disabled via config
- a5d3c65 Do not suggest to disable schema validation if it is already disabled
- 9b93056 Apply body-level hooks
- fad2c19 Internal error if filling missing explicit examples led to
Unsatisfiable
errors - bce08c4
--exitfirst
CLI option trims the progress bar output when a failure occurs - b63a578 Use
typing
instead oftyping_extensions
- 152ccb8 Excessive reference inlining in large schemas
- 44c6549 CLI failure if the tested operation is
GET
and has payload examples (#930) - 530d5b6 Distinguishing between no payload requests &
null
payload (#929) - 6f6cff0 Allow sending
null
as request payload if the schema expects it (#922)
🔧 Chores and Improvements
- 16daedb Release 3.0.0
- 1d793e3 Continue testing after schema parsing errors if possible
- 418b56e Update pre-commit hooks
- 882d12f Export
from_aiohttp
in the public API - 21072ae Do not export
Stateful
in the public API - de8fca0 Do not export
init_default_strategies
in the public API - 40b1860 Catch extra Hypothesis output
- 82b3094 A better error message for invalid regex syntax
- 8401998 Improve error messages for serialization errors (#998)
- 11b28c8 Fix a typo
- a61453e Allow the user in docker image to write to
/app
- 079da46 Do not require
--base-url
for schemas loaded via a file when dry run is enabled - 5d9e82e Deduplicate collected errors that don't come from failed checks
- 441f825 Display all non-check failures in CLI tests
- a543240 Shorter error messages on invalid schemas in some cases
- 1c2c91f Allow running
before_add_examples
hooks even if default examples generation failed - ffdcee6 Fix passing the
all
option to the test server - e85d4e0 Use Python 3.9 for Schemathesis's Docker image
- 000c9c7 Remove deprecated
seed-isort-config
pre-commit hook - bec459e Update
pre-commit
to v3.4.0 - f4a7fd7 Disallow using
--auth
together with--header
that sets theAuthorization
header. - 7b7e6ea Enforce path parameters to be required if schema validation is disabled
- 4f5ecef Use keyword arguments for
get_case_strategy
call - 7266446 Unify the test server
📦 Other
- 8459dd9 Add
register_check
to the API reference - 0fbf8e1 Add basic documentation for the public API
- 08018ef Disable the
filter_too_much
health check intest_global_body_hook
- a863007 Disable Hypothesis health checks for
test_openapi_links_multiple_threads
- 63622e7 Use
--hypothesis-max-examples
in a slow test - 711fb32 Split corpus tests into more jobs
- cf8c4d7 Decrease the maximum number of examples in the
CI
Hypothesis profile - bf063c0 Add manual triggers
- 2f08618 Ignore thread exceptions in test for keyboard interrupt
- 6738258 Add missing imports to code examples
- b0b6ea6 Use
blacken-docs
- a9cb16e Add a CI job to check docs
- 3394c55 Rename
endpoint
tooperation
where necessary - a0ec86a Improve processing of API operation definitions
- 881c35e Add tests on schemas from Open API catalog
- 5f14f45 Document corner cases for stateful tests
- b337551 Decrease memory usage
- 103186d Use compiled versions of Open API spec validators
- 74ddafe Add more tests on nullable parameters serialization
- 4258045 Suppress Hypothesis health checks in
test_optional_form_parameters
- 4f0c8e7 Disable derandomization in stateful tests
- b6cbbc8 Fix the
schema_url
fixture - 3358c83 Fix Hypothesis warnings
- 0e5705d Rewrite the tests for stateful feature
- 93c7c95 Fix scheduled jobs
- 25bb3c4 Fix mutmut test error
- 8ce5d35 Update FAQ
- 40858b5 (changelog) Link additional issue
- 70d48c4 Do not use conditionals for detecting the content of Hypothesis enums
- a261895 (cli) Show option default values in the CLI help output
- fbe6e23 (cli) Group CLI parameters help output
- 7cb6392 Provide additional info in the test server output
- 71fb6ec Move exit code decision out from the output handler
- 57a702f Clarify low variance in generated data
- d9ed57e Fix
test_global_body_hook
test - 036fc49 Add example project
- 6d60cdc Remove deprecated
git checkout HEAD^2
step from the CodeQL job - 2e9794d Disable the
too_slow
health check for some tests - 2ca9f50 Add a rare possibility into an assertion inside
test_hypothesis_failed_event
- c37304c Additional input validation for test server
- 7646027 Improve reliability of the test server
- 2e28b7e Add a test for interactions recording in ASGI apps
- 7298a0a Remove not needed condition
- f510a39 Remove not needed code for GraphQL schemas
- 7bb50bc Remove deprecated stateful testing integration from the
pytest
plugin. (#933) - c6a9129 Minor refactorings & additional tests
- 86c52cb Add more tests (#931)
- 0a9e271 Fix displaying GIF on the PyPI page
- d2e5168 Add more tests (#926)
- edf9352 Use
assume
in some pytester-style tests (#924) - faabe7e Rename
get_hypothesis_conversions
->get_parameter_serializer
- 2dcadf3 Open API parameters handling