schemathesis 3.26.2__tar.gz → 3.27.1__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-3.26.2 → schemathesis-3.27.1}/.github/workflows/build.yml +4 -4
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/workflows/codeql-analysis.yml +4 -4
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/workflows/codspeed.yml +1 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/workflows/commit.yml +1 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/workflows/example-build.yml +1 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/workflows/master_update.yml +1 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/workflows/release.yml +2 -2
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/workflows/test-corpus.yml +1 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/workflows/test-hypothesis.yml +1 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/workflows/update-corpus.yml +1 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/workflows/update-pre-commit.yml +1 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.pre-commit-config.yaml +4 -4
- {schemathesis-3.26.2 → schemathesis-3.27.1}/PKG-INFO +2 -3
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/api.rst +3 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/changelog.rst +36 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/cli.rst +94 -33
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/extending.rst +46 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/python.rst +41 -27
- {schemathesis-3.26.2 → schemathesis-3.27.1}/example/requirements-pytest.txt +1 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/pyproject.toml +2 -3
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/__init__.py +1 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/cli/__init__.py +1 -1
- schemathesis-3.27.1/src/schemathesis/cli/__main__.py +4 -0
- schemathesis-3.27.1/src/schemathesis/cli/junitxml.py +112 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/cli/output/default.py +9 -47
- schemathesis-3.27.1/src/schemathesis/cli/reporting.py +72 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/generation/__init__.py +14 -2
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/models.py +51 -143
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/runner/impl/core.py +11 -12
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/runner/serialization.py +32 -10
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/schemas.py +11 -7
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/graphql/loaders.py +2 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/graphql/schemas.py +7 -40
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/_hypothesis.py +16 -5
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/loaders.py +3 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/stateful/state_machine.py +3 -13
- schemathesis-3.27.1/src/schemathesis/transports/__init__.py +312 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/transports/responses.py +2 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/__init__.py +0 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/auth/test_pytest.py +2 -2
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/test_commands.py +10 -7
- schemathesis-3.27.1/test/cli/test_junitxml.py +199 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/code_samples/test_python.py +4 -4
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/conftest.py +7 -4
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/experimental/test_openapi_3_1.py +1 -2
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/hooks/test_hooks.py +7 -2
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/loaders/conftest.py +3 -12
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/loaders/test_graphql.py +8 -8
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/loaders/test_openapi.py +6 -6
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/runner/test_runner.py +1 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/graphql/test_basic.py +7 -4
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/graphql/test_pytest.py +1 -2
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/test_examples.py +2 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/test_hypothesis.py +26 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/test_media_types.py +3 -2
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/test_negative.py +1 -1
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/test_serializing.py +4 -4
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_asgi.py +7 -6
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_hypothesis.py +5 -5
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_models.py +15 -13
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_parameters.py +4 -10
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_pytest.py +4 -7
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_serialization.py +20 -24
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_wsgi.py +5 -4
- {schemathesis-3.26.2 → schemathesis-3.27.1}/tox.ini +1 -1
- schemathesis-3.26.2/src/schemathesis/cli/junitxml.py +0 -43
- schemathesis-3.26.2/src/schemathesis/transports/__init__.py +0 -5
- schemathesis-3.26.2/test/cli/test_junitxml.py +0 -78
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.dockerignore +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/FUNDING.yml +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/dependabot.yml +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.github/workflows/example-no-build.yml +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.gitignore +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.gitmodules +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.readthedocs.yml +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.relint.yml +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.rstcheck.cfg +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/.yamllint +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/CITATION.cff +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/CONTRIBUTING.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/Dockerfile +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/Dockerfile.bookworm +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/LICENSE +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/README.md +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/benches/cli.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/benches/references.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/changelog.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/codecov.yml +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/Makefile +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/additional-content.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/auth.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/compatibility.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/conf.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/continuous_integration.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/contrib.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/data-generation.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/examples.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/experimental.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/faq.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/getting-started.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/graphql.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/index.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/recipes.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/requirements.txt +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/sanitizing.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/service.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/stateful.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/docs/targeted.rst +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/example/Dockerfile +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/example/README.md +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/example/app.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/example/compose.yml +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/example/openapi.json +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/example/requirements-app.in +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/example/requirements-app.txt +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/example/requirements-pytest.in +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/example/tests/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/example/tests/conftest.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/example/tests/extensions.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/example/tests/test_app.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/img/demo.gif +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/img/service_github_report.png +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/mypy.ini +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/_compat.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/_dependency_versions.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/_hypothesis.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/_lazy_import.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/_override.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/_rate_limiter.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/_xml.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/auths.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/checks.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/cli/callbacks.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/cli/cassettes.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/cli/context.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/cli/debug.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/cli/handlers.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/cli/options.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/cli/output/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/cli/output/short.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/cli/sanitization.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/code_samples.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/constants.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/contrib/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/contrib/openapi/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/contrib/unique_data.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/exceptions.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/experimental/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/extra/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/extra/_aiohttp.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/extra/_flask.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/extra/_server.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/extra/pytest_plugin.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/failures.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/filters.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/fixups/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/fixups/fast_api.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/fixups/utf8_bom.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/graphql.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/hooks.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/internal/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/internal/copy.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/internal/datetime.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/internal/deprecation.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/internal/jsonschema.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/internal/result.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/internal/transformation.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/internal/validation.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/lazy.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/loaders.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/parameters.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/py.typed +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/runner/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/runner/events.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/runner/impl/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/runner/impl/solo.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/runner/impl/threadpool.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/runner/probes.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/sanitization.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/serializers.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/service/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/service/auth.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/service/ci.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/service/client.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/service/constants.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/service/events.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/service/extensions.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/service/hosts.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/service/metadata.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/service/models.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/service/report.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/service/serialization.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/service/usage.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/graphql/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/checks.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/converter.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/examples.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/filters.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/formats.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/links.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/media_types.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/schemas.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/security.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/serialization.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/stateful/links.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/utils.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/specs/openapi/validation.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/stateful/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/targets.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/throttling.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/transports/auth.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/transports/content_types.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/transports/headers.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/types.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/src/schemathesis/utils.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/openapi/_aiohttp/handlers.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/apps/openapi/schema.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/auth/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/auth/conftest.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/auth/test_cli.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/auth/test_provider.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2-The provided definition doesn't match any of the expected formats or types.].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0-'type' is a required property].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1-.....].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5-......].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1-.....].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5-......].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1-.....].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5-......].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1-.....].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5-......].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/cert.pem +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/conftest.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/output/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/output/test_default.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/test_asgi.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/test_callbacks.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/test_cassettes.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/test_checks.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/test_crashes.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/test_hooks.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/test_options.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/cli/test_targeted.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/code_samples/conftest.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/code_samples/test_curl.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/contrib/openapi/formats/test_uuid.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/contrib/test_install.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/contrib/test_unique_data.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/experimental/conftest.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/experimental/test_experiments.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/extra/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/extra/test_aiohttp.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/filters/test_matching.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/hooks/test_filter_operations.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/loaders/test_app.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/loaders/test_common.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/loaders/test_yaml.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/runner/test_checks.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/runner/test_events.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/runner/test_probes.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__init__.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_cli/test_client_error_on_project_details[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_cli/test_unauthorized[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_custom_format.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/conftest.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/test_auth.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/test_ci.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/test_cli.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/test_extensions.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/test_report.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/test_serialization.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/service/test_usage.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/blank.pdf +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/parameters/test_forms.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/parameters/test_non_payload.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/test_links.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/test_security.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/test_stateful.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/specs/openapi/test_validation.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_app.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_async.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_common_parameters.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_converter.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_dereferencing.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_direct_access.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_errors.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_examples.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_filters.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_fixups.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_internal.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_lazy.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_package.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_parametrization.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_petstore.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_rate_limit.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_recoverable_errors.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_required.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_sanitizing_output.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_schemas.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_stateful.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_unittest.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/test_utils.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/transports/test_content_types.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test/utils.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test-corpus/test_corpus.py +0 -0
- {schemathesis-3.26.2 → schemathesis-3.27.1}/test_server.sh +0 -0
|
@@ -26,7 +26,7 @@ jobs:
|
|
|
26
26
|
name: Generic pre-commit checks
|
|
27
27
|
runs-on: ubuntu-22.04
|
|
28
28
|
steps:
|
|
29
|
-
- uses: actions/checkout@v4.1.
|
|
29
|
+
- uses: actions/checkout@v4.1.4
|
|
30
30
|
with:
|
|
31
31
|
fetch-depth: 1
|
|
32
32
|
|
|
@@ -41,7 +41,7 @@ jobs:
|
|
|
41
41
|
name: Documentation
|
|
42
42
|
runs-on: ubuntu-22.04
|
|
43
43
|
steps:
|
|
44
|
-
- uses: actions/checkout@v4.1.
|
|
44
|
+
- uses: actions/checkout@v4.1.4
|
|
45
45
|
with:
|
|
46
46
|
fetch-depth: 1
|
|
47
47
|
- uses: ammaraskar/sphinx-action@master
|
|
@@ -66,7 +66,7 @@ jobs:
|
|
|
66
66
|
name: Tests (Python ${{ matrix.python }} on ${{ matrix.os }} ${{ matrix.tox_env }})
|
|
67
67
|
runs-on: ${{ matrix.os }}
|
|
68
68
|
steps:
|
|
69
|
-
- uses: actions/checkout@v4.1.
|
|
69
|
+
- uses: actions/checkout@v4.1.4
|
|
70
70
|
with:
|
|
71
71
|
fetch-depth: 1
|
|
72
72
|
|
|
@@ -83,6 +83,6 @@ jobs:
|
|
|
83
83
|
run: python -m tox
|
|
84
84
|
|
|
85
85
|
- name: Upload coverage to Codecov
|
|
86
|
-
uses: codecov/codecov-action@v4.
|
|
86
|
+
uses: codecov/codecov-action@v4.3.0
|
|
87
87
|
with:
|
|
88
88
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
@@ -30,7 +30,7 @@ jobs:
|
|
|
30
30
|
|
|
31
31
|
steps:
|
|
32
32
|
- name: Checkout repository
|
|
33
|
-
uses: actions/checkout@v4.1.
|
|
33
|
+
uses: actions/checkout@v4.1.4
|
|
34
34
|
with:
|
|
35
35
|
# We must fetch at least the immediate parents so that if this is
|
|
36
36
|
# a pull request then we can checkout the head.
|
|
@@ -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.
|
|
41
|
+
uses: github/codeql-action/init@v3.25.3
|
|
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.
|
|
52
|
+
uses: github/codeql-action/autobuild@v3.25.3
|
|
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.
|
|
66
|
+
uses: github/codeql-action/analyze@v3.25.3
|
|
@@ -19,7 +19,7 @@ jobs:
|
|
|
19
19
|
tag-suffix: "-bookworm"
|
|
20
20
|
|
|
21
21
|
steps:
|
|
22
|
-
- uses: actions/checkout@v4.1.
|
|
22
|
+
- uses: actions/checkout@v4.1.4
|
|
23
23
|
|
|
24
24
|
- name: Docker meta
|
|
25
25
|
id: meta
|
|
@@ -68,7 +68,7 @@ jobs:
|
|
|
68
68
|
name: Build and publish package to pypi.org
|
|
69
69
|
runs-on: ubuntu-22.04
|
|
70
70
|
steps:
|
|
71
|
-
- uses: actions/checkout@v4.1.
|
|
71
|
+
- uses: actions/checkout@v4.1.4
|
|
72
72
|
with:
|
|
73
73
|
fetch-depth: 1
|
|
74
74
|
|
|
@@ -3,7 +3,7 @@ default_language_version:
|
|
|
3
3
|
|
|
4
4
|
repos:
|
|
5
5
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
6
|
-
rev: v4.
|
|
6
|
+
rev: v4.6.0
|
|
7
7
|
hooks:
|
|
8
8
|
- id: check-yaml
|
|
9
9
|
- id: end-of-file-fixer
|
|
@@ -30,7 +30,7 @@ repos:
|
|
|
30
30
|
- id: relint
|
|
31
31
|
|
|
32
32
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
33
|
-
rev: v1.
|
|
33
|
+
rev: v1.10.0
|
|
34
34
|
hooks:
|
|
35
35
|
- id: mypy
|
|
36
36
|
exclude: ^(docs/|test/|test-corpus/|example/|benches/).*$
|
|
@@ -38,12 +38,12 @@ repos:
|
|
|
38
38
|
additional_dependencies: [types-click, types-requests, types-PyYAML]
|
|
39
39
|
|
|
40
40
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
41
|
-
rev: v0.
|
|
41
|
+
rev: v0.4.2
|
|
42
42
|
hooks:
|
|
43
43
|
- id: ruff-format
|
|
44
44
|
|
|
45
45
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
46
|
-
rev: v0.
|
|
46
|
+
rev: v0.4.2
|
|
47
47
|
hooks:
|
|
48
48
|
- id: ruff
|
|
49
49
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: schemathesis
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.27.1
|
|
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
|
|
@@ -28,7 +28,6 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
28
28
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
29
29
|
Classifier: Topic :: Software Development :: Testing
|
|
30
30
|
Requires-Python: >=3.8
|
|
31
|
-
Requires-Dist: anyio<4
|
|
32
31
|
Requires-Dist: backoff<3.0,>=2.1.2
|
|
33
32
|
Requires-Dist: click<9.0,>=7.0
|
|
34
33
|
Requires-Dist: colorama<1.0,>=0.4
|
|
@@ -44,7 +43,7 @@ Requires-Dist: pytest-subtests<0.8.0,>=0.2.1
|
|
|
44
43
|
Requires-Dist: pytest<9,>=4.6.4
|
|
45
44
|
Requires-Dist: pyyaml<7.0,>=5.1
|
|
46
45
|
Requires-Dist: requests<3,>=2.22
|
|
47
|
-
Requires-Dist: starlette-testclient<1
|
|
46
|
+
Requires-Dist: starlette-testclient<1,>=0.4.1
|
|
48
47
|
Requires-Dist: starlette<1,>=0.13
|
|
49
48
|
Requires-Dist: tomli-w<2.0,>=1.0.0
|
|
50
49
|
Requires-Dist: tomli<3.0,>=2.0.1
|
|
@@ -113,8 +113,11 @@ Loaders
|
|
|
113
113
|
.. autofunction:: schemathesis.from_pytest_fixture
|
|
114
114
|
.. autofunction:: schemathesis.from_uri
|
|
115
115
|
.. autofunction:: schemathesis.from_wsgi
|
|
116
|
+
.. autofunction:: schemathesis.graphql.from_path
|
|
116
117
|
.. autofunction:: schemathesis.graphql.from_dict
|
|
118
|
+
.. autofunction:: schemathesis.graphql.from_file
|
|
117
119
|
.. autofunction:: schemathesis.graphql.from_url
|
|
120
|
+
.. autofunction:: schemathesis.graphql.from_asgi
|
|
118
121
|
.. autofunction:: schemathesis.graphql.from_wsgi
|
|
119
122
|
|
|
120
123
|
Sanitizing Output
|
|
@@ -1,9 +1,44 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
-
:version:`Unreleased <v3.
|
|
4
|
+
:version:`Unreleased <v3.27.1...HEAD>` - TBD
|
|
5
5
|
--------------------------------------------
|
|
6
6
|
|
|
7
|
+
.. _v3.27.1:
|
|
8
|
+
|
|
9
|
+
:version:`3.27.1 <v3.27.0...v3.27.1>` - 2024-04-29
|
|
10
|
+
--------------------------------------------------
|
|
11
|
+
|
|
12
|
+
**Added**
|
|
13
|
+
|
|
14
|
+
- ``GenerationConfig.headers.strategy`` attribute for customizing header generation. :issue:`2137`
|
|
15
|
+
- Support for ``python -m schemathesis.cli``. :issue:`2142`
|
|
16
|
+
- Support for ``anyio>=4.0``. :issue:`2081`
|
|
17
|
+
|
|
18
|
+
**Fixed**
|
|
19
|
+
|
|
20
|
+
- Supporting non-Starlette ASGI apps. :issue:`2136`
|
|
21
|
+
- Missing version metadata in ASGI client causing errors with ASGI3-only apps. :issue:`2136`
|
|
22
|
+
|
|
23
|
+
.. _v3.27.0:
|
|
24
|
+
|
|
25
|
+
:version:`3.27.0 <v3.26.2...v3.27.0>` - 2024-04-14
|
|
26
|
+
--------------------------------------------------
|
|
27
|
+
|
|
28
|
+
**Added**
|
|
29
|
+
|
|
30
|
+
- ``Case.as_transport_kwargs`` method to simplify the creation of transport-specific keyword arguments for sending requests.
|
|
31
|
+
|
|
32
|
+
**Changed**
|
|
33
|
+
|
|
34
|
+
- Make ``Case.call`` work with ``ASGI`` & ``WSGI`` applications.
|
|
35
|
+
- Extend the JUnit XML report format to match CLI output including skipped tests, code samples, and more.
|
|
36
|
+
|
|
37
|
+
**Deprecated**
|
|
38
|
+
|
|
39
|
+
- ``Case.call_wsgi`` & ``Case.call_asgi`` in favor of ``Case.call``.
|
|
40
|
+
- ``Case.as_requests_kwargs`` & ``Case.as_werkzeug_kwargs`` in favor of ``Case.as_transport_kwargs``.
|
|
41
|
+
|
|
7
42
|
.. _v3.26.2:
|
|
8
43
|
|
|
9
44
|
:version:`3.26.2 <v3.26.1...v3.26.2>` - 2024-04-06
|
|
@@ -398,39 +398,100 @@ This command will create an XML at a given path, as in the example below.
|
|
|
398
398
|
.. code:: xml
|
|
399
399
|
|
|
400
400
|
<?xml version="1.0" ?>
|
|
401
|
-
<testsuites disabled="0" errors="
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
401
|
+
<testsuites disabled="0" errors="0" failures="4" tests="4" time="1.7481054730014876">
|
|
402
|
+
<testsuite disabled="0" errors="0" failures="4" name="schemathesis" skipped="0" tests="4" time="1.7481054730014876" hostname="midgard">
|
|
403
|
+
<testcase name="GET /response-conformance/missing-field" time="0.859204">
|
|
404
|
+
<failure type="failure" message="1. Test Case ID: JA63GZ
|
|
405
|
+
|
|
406
|
+
- Response violates schema
|
|
407
|
+
|
|
408
|
+
'age' is a required property
|
|
409
|
+
|
|
410
|
+
Schema:
|
|
411
|
+
|
|
412
|
+
{
|
|
413
|
+
"type": "object",
|
|
414
|
+
"properties": {
|
|
415
|
+
"id": {
|
|
416
|
+
"type": "string"
|
|
417
|
+
},
|
|
418
|
+
"name": {
|
|
419
|
+
"type": "string"
|
|
420
|
+
},
|
|
421
|
+
"age": {
|
|
422
|
+
"type": "integer"
|
|
423
|
+
}
|
|
424
|
+
},
|
|
425
|
+
"required": [
|
|
426
|
+
"id",
|
|
427
|
+
"name",
|
|
428
|
+
"age"
|
|
429
|
+
]
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
Value:
|
|
433
|
+
|
|
434
|
+
{
|
|
435
|
+
"id": "123",
|
|
436
|
+
"name": "Alice"
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
[200] OK:
|
|
440
|
+
|
|
441
|
+
`{"id":"123","name":"Alice"}`
|
|
442
|
+
|
|
443
|
+
Reproduce with:
|
|
444
|
+
|
|
445
|
+
curl -X GET https://example.schemathesis.io/response-conformance/missing-field"/>
|
|
446
|
+
</testcase>
|
|
447
|
+
<testcase name="GET /response-conformance/malformed-json" time="0.068179">
|
|
448
|
+
<failure type="failure" message="1. Test Case ID: Vn5hfI
|
|
449
|
+
|
|
450
|
+
- JSON deserialization error
|
|
451
|
+
|
|
452
|
+
Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
|
|
453
|
+
|
|
454
|
+
[200] OK:
|
|
455
|
+
|
|
456
|
+
`{success: true}`
|
|
457
|
+
|
|
458
|
+
Reproduce with:
|
|
459
|
+
|
|
460
|
+
curl -X GET https://example.schemathesis.io/response-conformance/malformed-json"/>
|
|
461
|
+
</testcase>
|
|
462
|
+
<testcase name="GET /response-conformance/undocumented-status-code" time="0.756355">
|
|
463
|
+
<failure type="failure" message="1. Test Case ID: jm2nOs
|
|
464
|
+
|
|
465
|
+
- Undocumented HTTP status code
|
|
466
|
+
|
|
467
|
+
Received: 404
|
|
468
|
+
Documented: 200, 400
|
|
469
|
+
|
|
470
|
+
[404] Not Found:
|
|
471
|
+
|
|
472
|
+
`{"error":"Not Found"}`
|
|
473
|
+
|
|
474
|
+
Reproduce with:
|
|
475
|
+
|
|
476
|
+
curl -X GET 'https://example.schemathesis.io/response-conformance/undocumented-status-code?id=1'"/>
|
|
477
|
+
</testcase>
|
|
478
|
+
<testcase name="GET /response-conformance/incorrect-content-type" time="0.064367">
|
|
479
|
+
<failure type="failure" message="1. Test Case ID: Sveexo
|
|
480
|
+
|
|
481
|
+
- Undocumented Content-Type
|
|
482
|
+
|
|
483
|
+
Received: text/plain
|
|
484
|
+
Documented: application/json
|
|
485
|
+
|
|
486
|
+
[200] OK:
|
|
487
|
+
|
|
488
|
+
`Success!`
|
|
489
|
+
|
|
490
|
+
Reproduce with:
|
|
491
|
+
|
|
492
|
+
curl -X GET https://example.schemathesis.io/response-conformance/incorrect-content-type"/>
|
|
493
|
+
</testcase>
|
|
494
|
+
</testsuite>
|
|
434
495
|
</testsuites>
|
|
435
496
|
|
|
436
497
|
Base URL configuration
|
|
@@ -558,7 +558,7 @@ For the WSGI case, it will be ``schemathesis.utils.WSGIResponse``.
|
|
|
558
558
|
``process_call_kwargs``
|
|
559
559
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
560
560
|
|
|
561
|
-
If you want to modify what keyword arguments will be given to ``case.call``
|
|
561
|
+
If you want to modify what keyword arguments will be given to ``case.call`` in CLI, then you can use this hook:
|
|
562
562
|
|
|
563
563
|
.. code:: python
|
|
564
564
|
|
|
@@ -651,6 +651,51 @@ In the example above, when Schemathesis detects a string with the "card_number"
|
|
|
651
651
|
|
|
652
652
|
For more details about creating strategies, refer to the `Hypothesis documentation <https://hypothesis.readthedocs.io/en/latest/data.html>`_.
|
|
653
653
|
|
|
654
|
+
Adjusting header generation
|
|
655
|
+
---------------------------
|
|
656
|
+
|
|
657
|
+
By default, Schemathesis generates headers based on the schema definition falling back to the set of characters defined in `RFC 7230 <https://datatracker.ietf.org/doc/html/rfc7230#section-3.2>`_, but you can adjust this behavior to suit your needs.
|
|
658
|
+
|
|
659
|
+
To customize header generation, you can extend the ``GenerationConfig`` class and modify its ``headers`` attribute.
|
|
660
|
+
The ``headers`` attribute accepts a ``HeaderConfig`` object, which allows you to specify a custom Hypothesis strategy for generating header values.
|
|
661
|
+
|
|
662
|
+
Here's an example of how you can adjust header generation:
|
|
663
|
+
|
|
664
|
+
.. code-block:: python
|
|
665
|
+
|
|
666
|
+
import schemathesis
|
|
667
|
+
from schemathesis import GenerationConfig, HeaderConfig
|
|
668
|
+
from hypothesis import strategies as st
|
|
669
|
+
|
|
670
|
+
schema = schemathesis.from_uri(
|
|
671
|
+
"https://example.schemathesis.io/openapi.json",
|
|
672
|
+
generation_config=GenerationConfig(
|
|
673
|
+
headers=HeaderConfig(
|
|
674
|
+
strategy=st.text(
|
|
675
|
+
alphabet=st.characters(
|
|
676
|
+
min_codepoint=1,
|
|
677
|
+
max_codepoint=127,
|
|
678
|
+
).map(str.strip)
|
|
679
|
+
)
|
|
680
|
+
)
|
|
681
|
+
),
|
|
682
|
+
)
|
|
683
|
+
|
|
684
|
+
In the code above, we use the ``st.text`` strategy from Hypothesis to restrict the characters used in the generated headers to codepoints 1 to 127.
|
|
685
|
+
|
|
686
|
+
Alternatively, you can customize header generation using the ``after_load_schema`` hook:
|
|
687
|
+
|
|
688
|
+
.. code-block:: python
|
|
689
|
+
|
|
690
|
+
import schemathesis
|
|
691
|
+
from hypothesis import strategies as st
|
|
692
|
+
|
|
693
|
+
@schemathesis.hook
|
|
694
|
+
def after_load_schema(context, schema) -> None:
|
|
695
|
+
schema.generation_config.headers.strategy = st.text(
|
|
696
|
+
alphabet=st.characters(min_codepoint=1, max_codepoint=127)
|
|
697
|
+
)
|
|
698
|
+
|
|
654
699
|
Generating payloads for unknown media types
|
|
655
700
|
-------------------------------------------
|
|
656
701
|
|
|
@@ -226,7 +226,7 @@ If you maintain your API schema in Python code or your web framework (for exampl
|
|
|
226
226
|
Web applications
|
|
227
227
|
~~~~~~~~~~~~~~~~
|
|
228
228
|
|
|
229
|
-
Schemathesis natively supports testing of ASGI and WSGI compatible apps (e.g.,
|
|
229
|
+
Schemathesis natively supports testing of ASGI and WSGI compatible apps (e.g., FastAPI or Flask),
|
|
230
230
|
which is significantly faster since it doesn't involve the network.
|
|
231
231
|
|
|
232
232
|
.. code:: python
|
|
@@ -272,7 +272,7 @@ This approach requires an initialized application instance to generate the API s
|
|
|
272
272
|
yield
|
|
273
273
|
await db.disconnect()
|
|
274
274
|
|
|
275
|
-
return schemathesis.from_dict(app.openapi())
|
|
275
|
+
return schemathesis.from_dict(app.openapi(), app)
|
|
276
276
|
|
|
277
277
|
|
|
278
278
|
schema = schemathesis.from_pytest_fixture("web_app")
|
|
@@ -300,7 +300,7 @@ When the received response is validated, Schemathesis runs the following checks:
|
|
|
300
300
|
- ``response_schema_conformance``. The response content does not conform to the schema defined for this specific response;
|
|
301
301
|
- ``response_headers_conformance``. The response headers does not contain all defined headers.
|
|
302
302
|
|
|
303
|
-
Validation happens in the ``case.
|
|
303
|
+
Validation happens in the ``case.call_and_validate`` function, but you can add your code to verify the response conformance as you do in regular Python tests.
|
|
304
304
|
By default, all available checks will be applied, but you can customize it by passing a tuple of checks explicitly:
|
|
305
305
|
|
|
306
306
|
.. code-block:: python
|
|
@@ -312,8 +312,7 @@ By default, all available checks will be applied, but you can customize it by pa
|
|
|
312
312
|
|
|
313
313
|
@schema.parametrize()
|
|
314
314
|
def test_api(case):
|
|
315
|
-
|
|
316
|
-
case.validate_response(response, checks=(not_a_server_error,))
|
|
315
|
+
case.call_and_validate(checks=(not_a_server_error,))
|
|
317
316
|
|
|
318
317
|
The code above will run only the ``not_a_server_error`` check. Or a tuple of additional checks will be executed after ones from the ``checks`` argument:
|
|
319
318
|
|
|
@@ -328,8 +327,7 @@ The code above will run only the ``not_a_server_error`` check. Or a tuple of add
|
|
|
328
327
|
|
|
329
328
|
@schema.parametrize()
|
|
330
329
|
def test_api(case):
|
|
331
|
-
|
|
332
|
-
case.validate_response(response, additional_checks=(my_check,))
|
|
330
|
+
case.call_and_validate(additional_checks=(my_check,))
|
|
333
331
|
|
|
334
332
|
.. note::
|
|
335
333
|
|
|
@@ -346,8 +344,7 @@ You can also use the ``excluded_checks`` argument to exclude chhecks from runnin
|
|
|
346
344
|
|
|
347
345
|
@schema.parametrize()
|
|
348
346
|
def test_api(case):
|
|
349
|
-
|
|
350
|
-
case.validate_response(response, excluded_checks=(not_a_server_error,))
|
|
347
|
+
case.call_and_validate(excluded_checks=(not_a_server_error,))
|
|
351
348
|
|
|
352
349
|
The code above will run the default checks, and any additional checks, excluding the ``not_a_server_error`` check.
|
|
353
350
|
|
|
@@ -398,8 +395,7 @@ In the following example we test a hypothetical ``/api/auth/password/reset/`` op
|
|
|
398
395
|
case.body["token"] = data.draw(
|
|
399
396
|
(st.emails() | st.just(user.email)).map(create_reset_password_token)
|
|
400
397
|
)
|
|
401
|
-
|
|
402
|
-
case.validate_response(response)
|
|
398
|
+
case.call_and_validate()
|
|
403
399
|
|
|
404
400
|
Here we use the special `data strategy <https://hypothesis.readthedocs.io/en/latest/data.html#drawing-interactively-in-tests>`_ to change the ``case`` data in ~50% cases.
|
|
405
401
|
The additional strategy in the conditional branch creates a valid password reset token from the given email.
|
|
@@ -449,11 +445,13 @@ This approach ensures that both types of tests can be executed, albeit in separa
|
|
|
449
445
|
def test_explicit_examples(data, case, user):
|
|
450
446
|
...
|
|
451
447
|
|
|
452
|
-
ASGI
|
|
448
|
+
ASGI & WSGI support
|
|
453
449
|
-------------------
|
|
454
450
|
|
|
455
|
-
Schemathesis supports making calls to ASGI and WSGI-compliant applications instead of real network calls
|
|
456
|
-
|
|
451
|
+
Schemathesis supports making calls to `ASGI <https://asgi.readthedocs.io/en/latest/>`_ and `WSGI-compliant <https://docs.python.org/3/library/wsgiref.html>`_ applications instead of through real network calls,
|
|
452
|
+
significantly speeding up test execution.
|
|
453
|
+
|
|
454
|
+
Using Schemathesis with a Flask application (WSGI):
|
|
457
455
|
|
|
458
456
|
.. code:: python
|
|
459
457
|
|
|
@@ -470,34 +468,50 @@ in this case, the test execution will go much faster.
|
|
|
470
468
|
|
|
471
469
|
@app.route("/v1/users", methods=["GET"])
|
|
472
470
|
def users():
|
|
473
|
-
return
|
|
471
|
+
return [{"name": "Robin"}]
|
|
474
472
|
|
|
475
473
|
|
|
474
|
+
# Load the schema from the WSGI app
|
|
476
475
|
schema = schemathesis.from_wsgi("/schema.json", app)
|
|
477
476
|
|
|
478
477
|
|
|
479
478
|
@schema.parametrize()
|
|
480
479
|
def test_api(case):
|
|
481
|
-
|
|
482
|
-
|
|
480
|
+
# The test case will make a call to the application and validate the response
|
|
481
|
+
# against the defined schema automatically.
|
|
482
|
+
case.call_and_validate()
|
|
483
483
|
|
|
484
|
-
|
|
484
|
+
Running the example above with ``pytest`` will execute property-based tests against the Flask application.
|
|
485
485
|
|
|
486
|
-
|
|
486
|
+
Using Schemathesis with a FastAPI application (ASGI):
|
|
487
487
|
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
488
|
+
.. code:: python
|
|
489
|
+
|
|
490
|
+
from fastapi import FastAPI
|
|
491
|
+
import schemathesis
|
|
492
492
|
|
|
493
|
+
# Enable the experimental Open API 3.1 support
|
|
494
|
+
schemathesis.experimental.OPEN_API_3_1.enable()
|
|
493
495
|
|
|
494
|
-
|
|
496
|
+
app = FastAPI()
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
@app.get("/v1/users")
|
|
500
|
+
async def users():
|
|
501
|
+
return [{"name": "Robin"}]
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
# Load the schema from the ASGI app
|
|
505
|
+
schema = schemathesis.from_asgi("/openapi.json", app)
|
|
495
506
|
|
|
496
507
|
|
|
497
508
|
@schema.parametrize()
|
|
498
|
-
def test_api(case
|
|
499
|
-
# The
|
|
500
|
-
|
|
509
|
+
def test_api(case):
|
|
510
|
+
# The test case will make a call to the application and validate the response
|
|
511
|
+
# against the defined schema automatically.
|
|
512
|
+
case.call_and_validate()
|
|
513
|
+
|
|
514
|
+
Note that Schemathesis currently tests ASGI applications synchronously.
|
|
501
515
|
|
|
502
516
|
Async support
|
|
503
517
|
-------------
|