schemathesis 4.0.0a8__tar.gz → 4.0.0a9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/build.yml +1 -1
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/codeql-analysis.yml +3 -3
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.pre-commit-config.yaml +2 -2
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/CHANGELOG.md +19 -1
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/PKG-INFO +1 -1
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/reference/configuration.md +137 -25
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/using/configuration.md +13 -11
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/pyproject.toml +1 -1
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/coverage.py +110 -43
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/hypothesis/builder.py +7 -2
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/patterns.py +40 -9
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/schemas.py +5 -1
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/coverage/test_combinations.py +366 -3
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/coverage/test_phase.py +99 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/fixtures/ctx.py +11 -5
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/test_engine.py +3 -1
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_patterns.py +13 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_petstore.py +3 -3
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_serialization.py +30 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.dockerignore +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/FUNDING.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/dependabot.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/codspeed.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/commit.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/docs.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/example-build.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/example-no-build.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/master_update.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/release.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/test-corpus.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/test-hypothesis.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/update-pre-commit.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.gitignore +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.readthedocs.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.rstcheck.cfg +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.yamllint +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/ARCHITECTURE.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/CITATION.cff +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/CONTRIBUTING.rst +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/Dockerfile +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/Dockerfile.bookworm +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/LICENSE +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/README.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/SECURITY.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/benches/cli.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/benches/coverage_phase.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/benches/references.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/benches/schema.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/changelog.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/codecov.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/corpus/data/graphql.tar.gz +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/corpus/data/openapi-3.0.tar.gz +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/corpus/data/openapi-3.1.tar.gz +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/corpus/data/swagger-2.0.tar.gz +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/corpus/tools.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/Makefile +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/advanced/targeted.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/api.rst +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/auth.rst +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/ci/github-actions.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/ci/gitlab-ci.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/ci/overview.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/conf.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/core-concepts.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/data-generation.rst +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending/auth.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending/checks.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending/data-generation.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending/hooks.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending/metrics.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending/overview.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending.rst +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/faq.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/faq.rst +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/getting-started.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/graphql.rst +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/index.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/openapi/examples.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/python.rst +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/recipes.rst +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/reference/checks.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/reference/cli.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/reference/python.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/reference/reporting.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/requirements.txt +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/resources.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/sanitizing.rst +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/stateful.rst +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/troubleshooting.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/using/cli.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/using/python-integration.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/Dockerfile +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/README.md +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/app.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/compose.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/openapi.json +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/requirements-app.in +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/requirements-app.txt +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/requirements-pytest.in +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/requirements-pytest.txt +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/tests/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/tests/conftest.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/tests/extensions.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/tests/test_app.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/img/demo.gif +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/mkdocs.yml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/mypy.ini +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/auths.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/checks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/__main__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/checks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/context.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/events.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/executor.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/filters.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/handlers/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/handlers/base.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/handlers/cassettes.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/handlers/junitxml.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/handlers/output.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/hypothesis.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/loaders.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/reports.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/validation.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/core.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/ext/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/ext/fs.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/ext/groups.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/ext/options.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/hooks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/contrib/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/contrib/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/compat.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/control.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/curl.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/deserialization.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/errors.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/failures.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/fs.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/lazy_import.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/loaders.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/marks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/media_types.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/output/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/output/sanitization.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/rate_limit.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/registries.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/result.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/transforms.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/transport.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/validation.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/version.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/config.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/context.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/control.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/core.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/errors.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/events.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/probes.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/stateful/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/stateful/_executor.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/stateful/context.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/unit/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/unit/_executor.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/unit/_pool.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/recorder.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/errors.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/experimental/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/filters.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/case.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/hypothesis/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/hypothesis/examples.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/hypothesis/given.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/hypothesis/reporting.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/hypothesis/strategies.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/meta.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/modes.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/overrides.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/stateful/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/stateful/state_machine.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/targets.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/graphql/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/graphql/checks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/graphql/loaders.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/hooks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/openapi/checks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/openapi/generation/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/openapi/generation/filters.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/openapi/loaders.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/py.typed +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/pytest/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/pytest/control_flow.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/pytest/lazy.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/pytest/loaders.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/pytest/plugin.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/python/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/python/asgi.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/python/wsgi.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/schemas.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/graphql/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/graphql/_cache.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/graphql/schemas.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/_cache.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/checks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/converter.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/examples.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/formats.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/media_types.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/security.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/serialization.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/stateful/control.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/stateful/links.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/utils.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/transport/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/transport/asgi.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/transport/prepare.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/transport/requests.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/transport/serialization.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/transport/wsgi.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/_pytest/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/_pytest/test_markers.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/cp1252_app.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/hooks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_aiohttp/handlers.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/schema.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/conftest.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/test_cli.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/test_provider.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/test_pytest.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_bytes_without_cassette_path[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 2.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_negative_data_rejection_displays_all_cases.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args10].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args3].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args4].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args5].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args6].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args7].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args8].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args9].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance_with_env_vars.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_cli_run_changed_base_url[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 2.0-2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_dont_skip_when_generation_is_possible[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_empty_schema_file.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_exit_first[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_filter_case_sensitivity[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_during_schema_loading.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 2.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_long_operation_output.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_reserved_characters_in_operation_name.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 2.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[Open API 2.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_skip_not_negated_tests[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_skipped_on_no_explicit_examples.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 2.0-2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_warning_on_all_not_found.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_warning_on_no_2xx.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_warning_on_no_2xx_options_only.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_warning_on_unauthorized.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_hooks/test_after_call[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/cert.pem +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_cassettes.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_checks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_commands.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_crashes.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_hooks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_junitxml.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_options.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_targeted.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_validation.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/code_samples/test_curl.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/conftest.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/test_unique_data.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/core/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/core/test_deserialization.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/core/test_media_types.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/coverage/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/coverage/__snapshots__/test_phase/test_negative_data_rejection.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/coverage/__snapshots__/test_phase/test_unspecified_http_methods.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/coverage/test_examples.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/relative_files/components/parameters.yaml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/relative_files/components/responses.yaml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/relative_files/components/schemas.yaml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/relative_files/main.yaml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/relative_files/paths/user-account.yaml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/engine/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/engine/test_checks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/engine/test_engine.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/engine/test_errors.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/engine/test_probes.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/engine/test_simulation.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/experimental/conftest.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/experimental/test_experiments.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/experimental/test_openapi_3_1.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/filters/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/filters/test_expressions.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/filters/test_matching.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/fixtures/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/fixtures/app_runner.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/hooks/test_filters.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/hooks/test_hooks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/loaders/conftest.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/loaders/test_common.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/loaders/test_graphql.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/loaders/test_openapi.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/openapi/test_filters.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/test_basic.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/test_pytest.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[basic-post].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[success-get].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[basic-Authorization-406].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-Authorization-200].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-200].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-406].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_ignored_auth/test_explicit_auth_cli[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-False].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-True].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_patterns/test_response_schema_is_not_mutated.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/blank.pdf +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/parameters/test_forms.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/parameters/test_non_payload.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_default[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_default[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_filtered_out[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_generation_config[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_invalid_parameter_reference.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_keyboard_interrupt[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_max_failures[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_missing_body_parameter.raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_missing_link[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_non_json_response[User data as plain text].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_non_json_response[].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_not_enough_links[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_stateful_only[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_stateful_only_with_error[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/conftest.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/test_cli.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/test_stateful.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_checks.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_examples.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_hypothesis.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_ignored_auth.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_media_types.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_negative.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_randomized.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_security.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_serializing.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_app.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_asgi.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_async.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_common_parameters.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_converter.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_dereferencing.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_direct_access.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_examples.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_filters.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_hypothesis.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_lazy.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_models.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_output.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_package.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_parameters.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_parametrization.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_pytest.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_rate_limit.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_recoverable_errors.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_required.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_sanitizing_output.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_schemas.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_stateful.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_unittest.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_wsgi.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/utils.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test-corpus/conftest.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test-corpus/test_corpus.py +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test_server.sh +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/tox.ini +0 -0
- {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/typos.toml +0 -0
@@ -38,7 +38,7 @@ jobs:
|
|
38
38
|
|
39
39
|
# Initializes the CodeQL tools for scanning.
|
40
40
|
- name: Initialize CodeQL
|
41
|
-
uses: github/codeql-action/init@v3.28.
|
41
|
+
uses: github/codeql-action/init@v3.28.17
|
42
42
|
with:
|
43
43
|
languages: ${{ matrix.language }}
|
44
44
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
@@ -49,7 +49,7 @@ jobs:
|
|
49
49
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
50
50
|
# If this step fails, then you should remove it and run the build manually (see below)
|
51
51
|
- name: Autobuild
|
52
|
-
uses: github/codeql-action/autobuild@v3.28.
|
52
|
+
uses: github/codeql-action/autobuild@v3.28.17
|
53
53
|
|
54
54
|
# ℹ️ Command-line programs to run using the OS shell.
|
55
55
|
# 📚 https://git.io/JvXDl
|
@@ -63,4 +63,4 @@ jobs:
|
|
63
63
|
# make release
|
64
64
|
|
65
65
|
- name: Perform CodeQL Analysis
|
66
|
-
uses: github/codeql-action/analyze@v3.28.
|
66
|
+
uses: github/codeql-action/analyze@v3.28.17
|
@@ -32,12 +32,12 @@ repos:
|
|
32
32
|
additional_dependencies: [types-requests, types-PyYAML]
|
33
33
|
|
34
34
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
35
|
-
rev: v0.11.
|
35
|
+
rev: v0.11.8
|
36
36
|
hooks:
|
37
37
|
- id: ruff-format
|
38
38
|
|
39
39
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
40
|
-
rev: v0.11.
|
40
|
+
rev: v0.11.8
|
41
41
|
hooks:
|
42
42
|
- id: ruff
|
43
43
|
|
@@ -1,6 +1,24 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## [Unreleased](https://github.com/schemathesis/schemathesis/compare/v4.0.0-alpha.
|
3
|
+
## [Unreleased](https://github.com/schemathesis/schemathesis/compare/v4.0.0-alpha.9...HEAD) - TBD
|
4
|
+
|
5
|
+
## [4.0.0-alpha.9](https://github.com/schemathesis/schemathesis/compare/v4.0.0-alpha.8...v4.0.0-alpha.9) - 2025-05-06
|
6
|
+
|
7
|
+
|
8
|
+
### :wrench: Changed
|
9
|
+
|
10
|
+
- Support basic canonicalisation of regex patterns. For example, `[\\W\\w]` could be replaced with `.` in some scenarios.
|
11
|
+
|
12
|
+
### :bug: Fixed
|
13
|
+
|
14
|
+
- Missing reference resolution scope when serializing `multipart` payloads. [#2776](https://github.com/schemathesis/schemathesis/issues/2776)
|
15
|
+
- Compatibility with hypothesis >= 6.131.4. [#2797](https://github.com/schemathesis/schemathesis/issues/2797)
|
16
|
+
- Cover more nested `enum` values during the coverage phase.
|
17
|
+
- Avoid extremely slow generation of large strings combined with `patterns` during the coverage phase.
|
18
|
+
- Generate objects during the coverage phase even if `"type": "object"` is not present.
|
19
|
+
- Generate empty strings in more cases during the coverage phase.
|
20
|
+
- Generate nested `items` during the coverage phase.
|
21
|
+
- Generate large arrays during the coverage phase.
|
4
22
|
|
5
23
|
## [4.0.0-alpha.8](https://github.com/schemathesis/schemathesis/compare/v4.0.0-alpha.7...v4.0.0-alpha.8) - 2025-04-05
|
6
24
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: schemathesis
|
3
|
-
Version: 4.0.
|
3
|
+
Version: 4.0.0a9
|
4
4
|
Summary: Property-based testing framework for Open API and GraphQL based apps
|
5
5
|
Project-URL: Documentation, https://schemathesis.readthedocs.io/en/stable/
|
6
6
|
Project-URL: Changelog, https://schemathesis.readthedocs.io/en/stable/changelog.html
|
@@ -3,7 +3,7 @@
|
|
3
3
|
This reference covers all the configuration options available in `schemathesis.toml`. The settings are organized into two main categories:
|
4
4
|
|
5
5
|
- **Global**: These control CLI behavior, output formatting, and overall test execution. They are defined at the top level and affect the CLI invocation.
|
6
|
-
- **Per-Project**: These let you customize configurations for individual API projects. If project-level settings are placed at the top level (without a `[project
|
6
|
+
- **Per-Project**: These let you customize configurations for individual API projects. If project-level settings are placed at the top level (without a `[[project]]` namespace), they are used as defaults for any tested project.
|
7
7
|
|
8
8
|
## Configuration Resolution
|
9
9
|
|
@@ -13,7 +13,7 @@ Schemathesis applies settings in the following hierarchy (from highest to lowest
|
|
13
13
|
2. Operation-specific phase settings
|
14
14
|
3. Global phase settings (e.g., `[phases.fuzzing]`)
|
15
15
|
4. Operation-level settings (e.g., `[[operations]]`)
|
16
|
-
5. Project-level settings (e.g., `[[
|
16
|
+
5. Project-level settings (e.g., `[[project]]`)
|
17
17
|
6. Global settings
|
18
18
|
|
19
19
|
## Environment Variable Substitution
|
@@ -93,6 +93,19 @@ parameters = { "path.user_id" = 42, "query.user_id" = 100 }
|
|
93
93
|
suppress-health-check = ["too_slow", "data_too_large"]
|
94
94
|
```
|
95
95
|
|
96
|
+
#### `seed`
|
97
|
+
|
98
|
+
!!! note ""
|
99
|
+
|
100
|
+
**Type:** `Integer`
|
101
|
+
**Default:** `null`
|
102
|
+
|
103
|
+
Random seed for reproducible test runs. Setting the same seed value will result in the same sequence of generated test cases.
|
104
|
+
|
105
|
+
```toml
|
106
|
+
seed = 42
|
107
|
+
```
|
108
|
+
|
96
109
|
#### `max-failures`
|
97
110
|
|
98
111
|
!!! note ""
|
@@ -168,7 +181,7 @@ parameters = { "path.user_id" = 42, "query.user_id" = 100 }
|
|
168
181
|
|
169
182
|
### Output
|
170
183
|
|
171
|
-
#### `output.
|
184
|
+
#### `output.sanitization.enabled`
|
172
185
|
|
173
186
|
!!! note ""
|
174
187
|
|
@@ -178,22 +191,106 @@ parameters = { "path.user_id" = 42, "query.user_id" = 100 }
|
|
178
191
|
Controls automatic sanitization of output data to obscure sensitive information.
|
179
192
|
|
180
193
|
```toml
|
181
|
-
[output]
|
182
|
-
|
194
|
+
[output.sanitization]
|
195
|
+
enabled = false
|
196
|
+
```
|
197
|
+
|
198
|
+
#### `output.sanitization.keys-to-sanitize`
|
199
|
+
|
200
|
+
!!! note ""
|
201
|
+
|
202
|
+
**Type**: `List[String]`
|
203
|
+
**Default**: List of common sensitive keys (auth tokens, passwords, etc.)
|
204
|
+
|
205
|
+
Specific keys that will be automatically sanitized in output data.
|
206
|
+
|
207
|
+
```toml
|
208
|
+
[output.sanitization]
|
209
|
+
keys-to-sanitize = ["password", "token", "auth"]
|
210
|
+
```
|
211
|
+
|
212
|
+
#### `output.sanitization.sensitive-markers`
|
213
|
+
|
214
|
+
!!! note ""
|
215
|
+
|
216
|
+
**Type**: `List[String]`
|
217
|
+
**Default**: `["token", "key", "secret", "password", "auth", "session", "passwd", "credential"]`
|
218
|
+
|
219
|
+
Substrings that indicate a key might contain sensitive information requiring sanitization.
|
220
|
+
|
221
|
+
```toml
|
222
|
+
[output.sanitization]
|
223
|
+
sensitive-markers = ["secret", "auth", "key"]
|
224
|
+
```
|
225
|
+
|
226
|
+
#### `output.sanitization.replacement`
|
227
|
+
|
228
|
+
!!! note ""
|
229
|
+
|
230
|
+
**Type**: `String`
|
231
|
+
**Default**: `"[Filtered]"`
|
232
|
+
|
233
|
+
The text used to replace sensitive data in output.
|
234
|
+
|
235
|
+
```toml
|
236
|
+
[output.sanitization]
|
237
|
+
replacement = "***REDACTED***"
|
183
238
|
```
|
184
239
|
|
185
|
-
#### `output.
|
240
|
+
#### `output.truncation.enabled`
|
186
241
|
|
187
242
|
!!! note ""
|
188
243
|
|
189
244
|
**Type**: `Boolean`
|
190
245
|
**Default**: `true`
|
191
246
|
|
192
|
-
|
247
|
+
Controls whether large output data should be truncated.
|
248
|
+
|
249
|
+
```toml
|
250
|
+
[output.truncation]
|
251
|
+
enabled = false
|
252
|
+
```
|
253
|
+
|
254
|
+
#### `output.truncation.max-payload-size`
|
255
|
+
|
256
|
+
!!! note ""
|
257
|
+
|
258
|
+
**Type**: `Integer`
|
259
|
+
**Default**: `512`
|
260
|
+
|
261
|
+
Maximum size in bytes for payloads before truncation occurs.
|
193
262
|
|
194
263
|
```toml
|
195
|
-
[output]
|
196
|
-
|
264
|
+
[output.truncation]
|
265
|
+
max-payload-size = 1024
|
266
|
+
```
|
267
|
+
|
268
|
+
#### `output.truncation.max-lines`
|
269
|
+
|
270
|
+
!!! note ""
|
271
|
+
|
272
|
+
**Type**: `Integer`
|
273
|
+
**Default**: `10`
|
274
|
+
|
275
|
+
Maximum number of lines to display for multi-line output.
|
276
|
+
|
277
|
+
```toml
|
278
|
+
[output.truncation]
|
279
|
+
max-lines = 20
|
280
|
+
```
|
281
|
+
|
282
|
+
#### `output.truncation.max-width`
|
283
|
+
|
284
|
+
!!! note ""
|
285
|
+
|
286
|
+
**Type**: `Integer`
|
287
|
+
**Default**: `80`
|
288
|
+
|
289
|
+
Maximum width in characters for each line before horizontal truncation.
|
290
|
+
|
291
|
+
```toml
|
292
|
+
[output.truncation]
|
293
|
+
max-width = 100
|
197
294
|
```
|
198
295
|
|
199
296
|
## Project Settings
|
@@ -211,7 +308,7 @@ These settings can only be applied at the project level.
|
|
211
308
|
|
212
309
|
```toml
|
213
310
|
# Optionally under a named project
|
214
|
-
# [[
|
311
|
+
# [[project]]
|
215
312
|
base-url = "https://api.example.com"
|
216
313
|
```
|
217
314
|
|
@@ -229,7 +326,7 @@ These settings can only be applied at the project level.
|
|
229
326
|
hooks = "myproject.tests.hooks"
|
230
327
|
|
231
328
|
# Or project-specific hooks
|
232
|
-
# [[
|
329
|
+
# [[project]]
|
233
330
|
# hooks = "myproject.payments.hooks"
|
234
331
|
```
|
235
332
|
|
@@ -329,6 +426,20 @@ These settings can only be applied at the project level.
|
|
329
426
|
unexpected-methods = ["PATCH"]
|
330
427
|
```
|
331
428
|
|
429
|
+
#### `phases.<phase>.checks`
|
430
|
+
|
431
|
+
!!! note ""
|
432
|
+
|
433
|
+
**Type**: `Object`
|
434
|
+
**Default**: `{}`
|
435
|
+
|
436
|
+
Phase-specific overrides for checks.
|
437
|
+
|
438
|
+
```toml
|
439
|
+
[phases.coverage.checks]
|
440
|
+
not_a_server_error.enabled = false
|
441
|
+
```
|
442
|
+
|
332
443
|
### Authentication
|
333
444
|
|
334
445
|
#### `auth.basic`
|
@@ -625,20 +736,6 @@ The following settings control how Schemathesis generates test data for your API
|
|
625
736
|
max-examples = 200
|
626
737
|
```
|
627
738
|
|
628
|
-
#### `generation.seed`
|
629
|
-
|
630
|
-
!!! note ""
|
631
|
-
|
632
|
-
**Type:** `Integer`
|
633
|
-
**Default:** `null`
|
634
|
-
|
635
|
-
Random seed for reproducible test runs. Setting the same seed value will result in the same sequence of generated test cases.
|
636
|
-
|
637
|
-
```toml
|
638
|
-
[generation]
|
639
|
-
seed = 42
|
640
|
-
```
|
641
|
-
|
642
739
|
#### `generation.no-shrink`
|
643
740
|
|
644
741
|
!!! note ""
|
@@ -681,6 +778,21 @@ The following settings control how Schemathesis generates test data for your API
|
|
681
778
|
allow-x00 = false
|
682
779
|
```
|
683
780
|
|
781
|
+
|
782
|
+
#### `generation.exclude-header-characters`
|
783
|
+
|
784
|
+
!!! note ""
|
785
|
+
|
786
|
+
**Type:** `String`
|
787
|
+
**Default:** `\r\n`
|
788
|
+
|
789
|
+
All characters from the given strings will be excluded from generated header values.
|
790
|
+
|
791
|
+
```toml
|
792
|
+
[generation]
|
793
|
+
exclude-header-characters = "\r\nABC"
|
794
|
+
```
|
795
|
+
|
684
796
|
#### `generation.codec`
|
685
797
|
|
686
798
|
!!! note ""
|
@@ -83,7 +83,7 @@ The basic setting corresponds to the `--auth` CLI option, while bearer tokens ca
|
|
83
83
|
|
84
84
|
!!! tip "Operation-specific Authentication"
|
85
85
|
|
86
|
-
You can also override auth on the [per-operation
|
86
|
+
You can also override auth on the [per-operation basis](#operation-specific-authentication).
|
87
87
|
|
88
88
|
### OpenAPI Security Schemes
|
89
89
|
|
@@ -443,6 +443,8 @@ request-timeout = 5.0
|
|
443
443
|
phases.fuzzing.generation.max-examples = 200
|
444
444
|
# Reduce examples for stateful tests
|
445
445
|
phases.stateful.generation.max-examples = 30
|
446
|
+
# Disable a check for examples tests
|
447
|
+
phases.examples.checks.not_a_server_error.enabled = false
|
446
448
|
```
|
447
449
|
### Resolution Order for Phase-Operation Settings
|
448
450
|
|
@@ -540,10 +542,10 @@ Schemathesis lets you configure multiple API projects in one file—a handy feat
|
|
540
542
|
|
541
543
|
### Defining Projects
|
542
544
|
|
543
|
-
Define projects in
|
545
|
+
Define projects in `[[project]]` tables by matching the API's title:
|
544
546
|
|
545
547
|
```toml
|
546
|
-
[[
|
548
|
+
[[project]]
|
547
549
|
# Projects are matched by the API schema's `info.title``
|
548
550
|
title = "Payment Processing API"
|
549
551
|
base-url = "https://payments.example.com"
|
@@ -556,14 +558,14 @@ Schemathesis checks the `info.title` field of the API schema to apply the corres
|
|
556
558
|
Override global defaults with project-specific settings:
|
557
559
|
|
558
560
|
```toml
|
559
|
-
[[
|
561
|
+
[[project]]
|
560
562
|
title = "Payment Processing API"
|
561
563
|
base-url = "https://payments.example.com"
|
562
564
|
workers = 4
|
563
565
|
generation.max-examples = 200
|
564
566
|
hooks = "test.config.hooks.example"
|
565
567
|
|
566
|
-
[[
|
568
|
+
[[project]]
|
567
569
|
title = "User Management API"
|
568
570
|
base-url = "https://users.example.com"
|
569
571
|
workers = 2
|
@@ -574,15 +576,15 @@ workers = 2
|
|
574
576
|
Customize operations within a project:
|
575
577
|
|
576
578
|
```toml
|
577
|
-
[[
|
579
|
+
[[project]]
|
578
580
|
title = "Payment Processing API"
|
579
581
|
|
580
|
-
[[
|
582
|
+
[[project.operations]]
|
581
583
|
include-name = "POST /payments"
|
582
584
|
generation.max-examples = 80
|
583
585
|
headers = { "X-Idempotency-Key" = "${IDEMPOTENCY_KEY}" }
|
584
586
|
|
585
|
-
[[
|
587
|
+
[[project.operations]]
|
586
588
|
include-tag = "slow"
|
587
589
|
request-timeout = 10.0
|
588
590
|
```
|
@@ -603,20 +605,20 @@ When using projects, settings are applied in this order:
|
|
603
605
|
generation.max-examples = 50
|
604
606
|
workers = 2
|
605
607
|
|
606
|
-
[[
|
608
|
+
[[project]]
|
607
609
|
title = "Payment Processing API"
|
608
610
|
base-url = "https://payments.example.com"
|
609
611
|
generation.max-examples = 100
|
610
612
|
|
611
613
|
# Operations for payments
|
612
|
-
[[
|
614
|
+
[[project.operations]]
|
613
615
|
include-name = "POST /payments"
|
614
616
|
generation.max-examples = 200
|
615
617
|
parameters = { amount = [10, 100, 1000] }
|
616
618
|
checks.positive_data_acceptance.expected-statuses = [200, 201]
|
617
619
|
|
618
620
|
# Users project settings
|
619
|
-
[[
|
621
|
+
[[project]]
|
620
622
|
title = "User Management API"
|
621
623
|
base-url = "https://users.example.com"
|
622
624
|
```
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "schemathesis"
|
7
|
-
version = "4.0.0-alpha.
|
7
|
+
version = "4.0.0-alpha.9"
|
8
8
|
description = "Property-based testing framework for Open API and GraphQL based apps"
|
9
9
|
keywords = ["pytest", "hypothesis", "openapi", "graphql", "testing"]
|
10
10
|
authors = [{ name = "Dmitry Dygalo", email = "dmitry@dygalo.dev" }]
|
@@ -37,6 +37,8 @@ def json_recursive_strategy(strategy: st.SearchStrategy) -> st.SearchStrategy:
|
|
37
37
|
|
38
38
|
|
39
39
|
BUFFER_SIZE = 8 * 1024
|
40
|
+
NEGATIVE_MODE_MAX_LENGTH_WITH_PATTERN = 100
|
41
|
+
NEGATIVE_MODE_MAX_ITEMS = 15
|
40
42
|
FLOAT_STRATEGY: st.SearchStrategy = st.floats(allow_nan=False, allow_infinity=False).map(_replace_zero_with_nonzero)
|
41
43
|
NUMERIC_STRATEGY: st.SearchStrategy = st.integers() | FLOAT_STRATEGY
|
42
44
|
JSON_STRATEGY: st.SearchStrategy = st.recursive(
|
@@ -257,6 +259,9 @@ def _cover_positive_for_type(
|
|
257
259
|
if ty == "object" or ty == "array":
|
258
260
|
template_schema = _get_template_schema(schema, ty)
|
259
261
|
template = ctx.generate_from_schema(template_schema)
|
262
|
+
elif "properties" in schema or "required" in schema:
|
263
|
+
template_schema = _get_template_schema(schema, "object")
|
264
|
+
template = ctx.generate_from_schema(template_schema)
|
260
265
|
else:
|
261
266
|
template = None
|
262
267
|
if GenerationMode.POSITIVE in ctx.generation_modes:
|
@@ -295,6 +300,8 @@ def _cover_positive_for_type(
|
|
295
300
|
yield from _positive_array(ctx, schema, cast(list, template))
|
296
301
|
elif ty == "object":
|
297
302
|
yield from _positive_object(ctx, schema, cast(dict, template))
|
303
|
+
elif "properties" in schema or "required" in schema:
|
304
|
+
yield from _positive_object(ctx, schema, cast(dict, template))
|
298
305
|
|
299
306
|
|
300
307
|
@contextmanager
|
@@ -387,41 +394,58 @@ def cover_schema_iter(
|
|
387
394
|
yield value_
|
388
395
|
seen.add(k)
|
389
396
|
elif key == "minLength" and 0 < value < BUFFER_SIZE:
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
new_schema["pattern"] = update_quantifier(schema["pattern"], min_length, max_length)
|
396
|
-
if new_schema["pattern"] == schema["pattern"]:
|
397
|
-
# Pattern wasn't updated, try to generate a valid value then shrink the string to the required length
|
398
|
-
del new_schema["minLength"]
|
399
|
-
del new_schema["maxLength"]
|
400
|
-
value = ctx.generate_from_schema(new_schema)[:max_length]
|
401
|
-
else:
|
402
|
-
value = ctx.generate_from_schema(new_schema)
|
403
|
-
else:
|
404
|
-
value = ctx.generate_from_schema(new_schema)
|
397
|
+
if value == 1:
|
398
|
+
# In this case, the only possible negative string is an empty one
|
399
|
+
# The `pattern` value may require an non-empty one and the generation will fail
|
400
|
+
# However, it is fine to violate `pattern` here as it is negative string generation anyway
|
401
|
+
value = ""
|
405
402
|
k = _to_hashable_key(value)
|
406
403
|
if k not in seen:
|
407
404
|
yield NegativeValue(
|
408
405
|
value, description="String smaller than minLength", location=ctx.current_path
|
409
406
|
)
|
410
407
|
seen.add(k)
|
408
|
+
else:
|
409
|
+
with suppress(InvalidArgument):
|
410
|
+
min_length = max_length = value - 1
|
411
|
+
new_schema = {**schema, "minLength": min_length, "maxLength": max_length}
|
412
|
+
new_schema.setdefault("type", "string")
|
413
|
+
if "pattern" in new_schema:
|
414
|
+
new_schema["pattern"] = update_quantifier(schema["pattern"], min_length, max_length)
|
415
|
+
if new_schema["pattern"] == schema["pattern"]:
|
416
|
+
# Pattern wasn't updated, try to generate a valid value then shrink the string to the required length
|
417
|
+
del new_schema["minLength"]
|
418
|
+
del new_schema["maxLength"]
|
419
|
+
value = ctx.generate_from_schema(new_schema)[:max_length]
|
420
|
+
else:
|
421
|
+
value = ctx.generate_from_schema(new_schema)
|
422
|
+
else:
|
423
|
+
value = ctx.generate_from_schema(new_schema)
|
424
|
+
k = _to_hashable_key(value)
|
425
|
+
if k not in seen:
|
426
|
+
yield NegativeValue(
|
427
|
+
value, description="String smaller than minLength", location=ctx.current_path
|
428
|
+
)
|
429
|
+
seen.add(k)
|
411
430
|
elif key == "maxLength" and value < BUFFER_SIZE:
|
412
431
|
try:
|
413
432
|
min_length = max_length = value + 1
|
414
433
|
new_schema = {**schema, "minLength": min_length, "maxLength": max_length}
|
415
434
|
new_schema.setdefault("type", "string")
|
416
435
|
if "pattern" in new_schema:
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
del new_schema["minLength"]
|
421
|
-
del new_schema["maxLength"]
|
422
|
-
value = ctx.generate_from_schema(new_schema).ljust(max_length, "0")
|
423
|
-
else:
|
436
|
+
if value > NEGATIVE_MODE_MAX_LENGTH_WITH_PATTERN:
|
437
|
+
# Large `maxLength` value can be extremely slow to generate when combined with `pattern`
|
438
|
+
del new_schema["pattern"]
|
424
439
|
value = ctx.generate_from_schema(new_schema)
|
440
|
+
else:
|
441
|
+
new_schema["pattern"] = update_quantifier(schema["pattern"], min_length, max_length)
|
442
|
+
if new_schema["pattern"] == schema["pattern"]:
|
443
|
+
# Pattern wasn't updated, try to generate a valid value then extend the string to the required length
|
444
|
+
del new_schema["minLength"]
|
445
|
+
del new_schema["maxLength"]
|
446
|
+
value = ctx.generate_from_schema(new_schema).ljust(max_length, "0")
|
447
|
+
else:
|
448
|
+
value = ctx.generate_from_schema(new_schema)
|
425
449
|
else:
|
426
450
|
value = ctx.generate_from_schema(new_schema)
|
427
451
|
k = _to_hashable_key(value)
|
@@ -438,10 +462,22 @@ def cover_schema_iter(
|
|
438
462
|
template = template or ctx.generate_from_schema(_get_template_schema(schema, "object"))
|
439
463
|
yield from _negative_required(ctx, template, value)
|
440
464
|
elif key == "maxItems" and isinstance(value, int) and value < BUFFER_SIZE:
|
441
|
-
|
442
|
-
#
|
443
|
-
|
465
|
+
if value > NEGATIVE_MODE_MAX_ITEMS:
|
466
|
+
# It could be extremely slow to generate large arrays
|
467
|
+
# Generate values up to the limit and reuse them to construct the final array
|
468
|
+
new_schema = {
|
469
|
+
**schema,
|
470
|
+
"minItems": NEGATIVE_MODE_MAX_ITEMS,
|
471
|
+
"maxItems": NEGATIVE_MODE_MAX_ITEMS,
|
472
|
+
"type": "array",
|
473
|
+
}
|
444
474
|
array_value = ctx.generate_from_schema(new_schema)
|
475
|
+
# Extend the array to be of length value + 1 by repeating its own elements
|
476
|
+
diff = value + 1 - len(array_value)
|
477
|
+
if diff > 0:
|
478
|
+
array_value += (
|
479
|
+
array_value * (diff // len(array_value)) + array_value[: diff % len(array_value)]
|
480
|
+
)
|
445
481
|
k = _to_hashable_key(array_value)
|
446
482
|
if k not in seen:
|
447
483
|
yield NegativeValue(
|
@@ -450,8 +486,21 @@ def cover_schema_iter(
|
|
450
486
|
location=ctx.current_path,
|
451
487
|
)
|
452
488
|
seen.add(k)
|
453
|
-
|
454
|
-
|
489
|
+
else:
|
490
|
+
try:
|
491
|
+
# Force the array to have one more item than allowed
|
492
|
+
new_schema = {**schema, "minItems": value + 1, "maxItems": value + 1, "type": "array"}
|
493
|
+
array_value = ctx.generate_from_schema(new_schema)
|
494
|
+
k = _to_hashable_key(array_value)
|
495
|
+
if k not in seen:
|
496
|
+
yield NegativeValue(
|
497
|
+
array_value,
|
498
|
+
description="Array with more items than allowed by maxItems",
|
499
|
+
location=ctx.current_path,
|
500
|
+
)
|
501
|
+
seen.add(k)
|
502
|
+
except (InvalidArgument, Unsatisfiable):
|
503
|
+
pass
|
455
504
|
elif key == "minItems" and isinstance(value, int) and value > 0:
|
456
505
|
try:
|
457
506
|
# Force the array to have one less item than the minimum
|
@@ -683,19 +732,22 @@ def _positive_array(ctx: CoverageContext, schema: dict, template: list) -> Gener
|
|
683
732
|
|
684
733
|
if example or examples or default:
|
685
734
|
if example:
|
735
|
+
seen.add(_to_hashable_key(example))
|
686
736
|
yield PositiveValue(example, description="Example value")
|
687
737
|
if examples:
|
688
738
|
for example in examples:
|
739
|
+
seen.add(_to_hashable_key(example))
|
689
740
|
yield PositiveValue(example, description="Example value")
|
690
741
|
if (
|
691
742
|
default
|
692
743
|
and not (example is not None and default == example)
|
693
744
|
and not (examples is not None and any(default == ex for ex in examples))
|
694
745
|
):
|
746
|
+
seen.add(_to_hashable_key(default))
|
695
747
|
yield PositiveValue(default, description="Default value")
|
696
748
|
else:
|
697
749
|
yield PositiveValue(template, description="Valid array")
|
698
|
-
seen.add(
|
750
|
+
seen.add(_to_hashable_key(template))
|
699
751
|
|
700
752
|
# Boundary and near-boundary sizes
|
701
753
|
min_items = schema.get("minItems")
|
@@ -706,19 +758,19 @@ def _positive_array(ctx: CoverageContext, schema: dict, template: list) -> Gener
|
|
706
758
|
# One item more than minimum if possible
|
707
759
|
larger = min_items + 1
|
708
760
|
if larger not in seen and (max_items is None or larger <= max_items):
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
761
|
+
value = ctx.generate_from_schema({**schema, "minItems": larger, "maxItems": larger})
|
762
|
+
key = _to_hashable_key(value)
|
763
|
+
if key not in seen:
|
764
|
+
seen.add(key)
|
765
|
+
yield PositiveValue(value, description="Near-boundary items array")
|
714
766
|
|
715
767
|
if max_items is not None:
|
716
768
|
if max_items < BUFFER_SIZE and max_items not in seen:
|
717
|
-
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
|
769
|
+
value = ctx.generate_from_schema({**schema, "minItems": max_items})
|
770
|
+
key = _to_hashable_key(value)
|
771
|
+
if key not in seen:
|
772
|
+
seen.add(key)
|
773
|
+
yield PositiveValue(value, description="Maximum items array")
|
722
774
|
|
723
775
|
# One item smaller than maximum if possible
|
724
776
|
smaller = max_items - 1
|
@@ -728,11 +780,26 @@ def _positive_array(ctx: CoverageContext, schema: dict, template: list) -> Gener
|
|
728
780
|
and smaller not in seen
|
729
781
|
and (min_items is None or smaller >= min_items)
|
730
782
|
):
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
783
|
+
value = ctx.generate_from_schema({**schema, "minItems": smaller, "maxItems": smaller})
|
784
|
+
key = _to_hashable_key(value)
|
785
|
+
if key not in seen:
|
786
|
+
seen.add(key)
|
787
|
+
yield PositiveValue(value, description="Near-boundary items array")
|
788
|
+
|
789
|
+
if "items" in schema and "enum" in schema["items"] and isinstance(schema["items"]["enum"], list) and max_items != 0:
|
790
|
+
# Ensure there is enough items to pass `minItems` if it is specified
|
791
|
+
length = min_items or 1
|
792
|
+
for variant in schema["items"]["enum"]:
|
793
|
+
value = [variant] * length
|
794
|
+
key = _to_hashable_key(value)
|
795
|
+
if key not in seen:
|
796
|
+
seen.add(key)
|
797
|
+
yield PositiveValue(value, description="Enum value from available for items array")
|
798
|
+
elif min_items is None and max_items is None and "items" in schema and isinstance(schema["items"], dict):
|
799
|
+
# Otherwise only an empty array is generated
|
800
|
+
sub_schema = schema["items"]
|
801
|
+
for item in cover_schema_iter(ctx, sub_schema):
|
802
|
+
yield PositiveValue([item.value], description=f"Single-item array: {item.description}")
|
736
803
|
|
737
804
|
|
738
805
|
def _positive_object(ctx: CoverageContext, schema: dict, template: dict) -> Generator[GeneratedValue, None, None]:
|