schemathesis 3.39.10__tar.gz → 3.39.11__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.39.10 → schemathesis-3.39.11}/PKG-INFO +1 -1
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/changelog.rst +21 -1
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/contrib.rst +1 -1
- {schemathesis-3.39.10 → schemathesis-3.39.11}/pyproject.toml +1 -1
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/_hypothesis.py +106 -58
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/failures.py +6 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/internal/checks.py +3 -1
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/runner/impl/core.py +18 -8
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/checks.py +6 -1
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/examples.py +3 -5
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/patterns.py +18 -3
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/serialization.py +12 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/openapi/_aiohttp/handlers.py +8 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/openapi/schema.py +2 -0
- schemathesis-3.39.11/test/cli/__snapshots__/test_checks/test_negative_data_rejection_displays_all_cases.raw +103 -0
- schemathesis-3.39.11/test/cli/__snapshots__/test_commands/test_warning_on_no_2xx.raw +24 -0
- schemathesis-3.39.11/test/cli/__snapshots__/test_commands/test_warning_on_no_2xx_options_only.raw +31 -0
- schemathesis-3.39.11/test/cli/__snapshots__/test_commands/test_warning_on_unauthorized.raw +24 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/test_checks.py +76 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/test_commands.py +14 -1
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/coverage/__snapshots__/test_phase/test_negative_data_rejection.raw +1 -1
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/coverage/test_phase.py +13 -13
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_patterns.py +1 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.dockerignore +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/FUNDING.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/dependabot.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/workflows/build.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/workflows/codeql-analysis.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/workflows/codspeed.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/workflows/commit.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/workflows/example-build.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/workflows/example-no-build.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/workflows/release.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/workflows/test-corpus.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/workflows/test-hypothesis.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.github/workflows/update-pre-commit.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.gitignore +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.pre-commit-config.yaml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.readthedocs.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.relint.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.rstcheck.cfg +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/.yamllint +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/CITATION.cff +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/CONTRIBUTING.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/Dockerfile +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/Dockerfile.bookworm +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/LICENSE +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/README.md +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/SECURITY.md +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/benches/cli.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/benches/coverage_phase.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/benches/references.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/benches/schema.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/changelog.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/codecov.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/corpus/data/graphql.tar.gz +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/corpus/data/openapi-3.0.tar.gz +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/corpus/data/openapi-3.1.tar.gz +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/corpus/data/swagger-2.0.tar.gz +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/corpus/tools.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/Makefile +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/additional-content.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/api.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/auth.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/cli.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/compatibility.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/conf.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/continuous_integration.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/data-generation.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/examples.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/experimental.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/extending.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/faq.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/getting-started.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/graphql.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/index.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/python.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/recipes.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/requirements.txt +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/sanitizing.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/service.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/stateful.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/docs/targeted.rst +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/example/Dockerfile +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/example/README.md +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/example/app.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/example/compose.yml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/example/openapi.json +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/example/requirements-app.in +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/example/requirements-app.txt +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/example/requirements-pytest.in +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/example/requirements-pytest.txt +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/example/tests/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/example/tests/conftest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/example/tests/extensions.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/example/tests/test_app.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/img/demo.gif +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/img/service_github_report.png +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/mypy.ini +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/_compat.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/_dependency_versions.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/_lazy_import.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/_override.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/_patches.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/_rate_limiter.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/_xml.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/auths.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/checks.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/__main__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/callbacks.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/cassettes.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/context.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/debug.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/handlers.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/junitxml.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/options.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/output/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/output/default.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/output/short.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/reporting.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/cli/sanitization.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/code_samples.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/constants.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/contrib/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/contrib/openapi/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/contrib/unique_data.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/exceptions.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/experimental/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/extra/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/extra/_aiohttp.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/extra/_flask.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/extra/_server.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/extra/pytest_plugin.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/filters.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/fixups/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/fixups/fast_api.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/fixups/utf8_bom.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/generation/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/generation/_hypothesis.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/generation/_methods.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/generation/coverage.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/graphql.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/hooks.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/internal/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/internal/copy.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/internal/datetime.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/internal/deprecation.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/internal/diff.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/internal/extensions.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/internal/jsonschema.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/internal/output.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/internal/result.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/internal/transformation.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/internal/validation.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/lazy.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/loaders.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/models.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/parameters.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/py.typed +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/runner/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/runner/events.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/runner/impl/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/runner/impl/context.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/runner/impl/solo.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/runner/impl/threadpool.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/runner/probes.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/runner/serialization.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/sanitization.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/schemas.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/serializers.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/service/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/service/auth.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/service/ci.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/service/client.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/service/constants.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/service/events.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/service/extensions.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/service/hosts.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/service/metadata.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/service/models.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/service/report.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/service/serialization.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/service/usage.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/graphql/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/graphql/_cache.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/graphql/loaders.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/graphql/schemas.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/_cache.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/converter.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/formats.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/links.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/loaders.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/media_types.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/schemas.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/security.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/stateful/statistic.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/stateful/types.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/utils.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/validation.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/stateful/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/stateful/config.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/stateful/context.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/stateful/events.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/stateful/runner.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/stateful/sink.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/stateful/state_machine.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/stateful/statistic.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/stateful/validation.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/targets.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/throttling.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/transports/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/transports/asgi.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/transports/auth.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/transports/content_types.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/transports/headers.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/transports/responses.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/types.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/utils.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/cp1252_app.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/hooks.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/auth/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/auth/conftest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/auth/test_cli.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/auth/test_provider.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/auth/test_pytest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/checks/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/checks/test_checks.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_checks/test_deduplication_on_sanitized_header.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args10].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args3].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args4].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args5].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args6].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args7].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args8].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args9].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance_with_env_vars.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_deprecated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_filtered_out[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_generation_config[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_keyboard_interrupt[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_max_failures[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only_with_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args37].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_stateful_explicit_examples_with_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_unresolvable_links[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/cert.pem +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/conftest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/output/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/output/test_default.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/test_asgi.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/test_callbacks.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/test_cassettes.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/test_crashes.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/test_hooks.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/test_junitxml.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/test_options.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/test_reporting.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/cli/test_targeted.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/code_samples/conftest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/code_samples/test_curl.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/code_samples/test_python.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/conftest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/contrib/openapi/formats/test_uuid.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/contrib/test_install.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/contrib/test_unique_data.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/coverage/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/coverage/__snapshots__/test_phase/test_unspecified_http_methods.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/coverage/test_combinations.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/coverage/test_examples.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/data/relative_files/components/parameters.yaml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/data/relative_files/components/responses.yaml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/data/relative_files/components/schemas.yaml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/data/relative_files/main.yaml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/data/relative_files/paths/user-account.yaml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/experimental/conftest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/experimental/test_experiments.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/experimental/test_openapi_3_1.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/extra/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/extra/test_aiohttp.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/filters/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/filters/test_expressions.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/filters/test_matching.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/fixtures/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/fixtures/ctx.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/hooks/test_filter_operations.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/hooks/test_filters.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/hooks/test_hooks.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/loaders/conftest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/loaders/test_app.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/loaders/test_common.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/loaders/test_graphql.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/loaders/test_openapi.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/loaders/test_yaml.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/runner/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/runner/test_checks.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/runner/test_events.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/runner/test_probes.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/runner/test_runner.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_cli/test_client_error_on_project_details.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_cli/test_unauthorized.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_custom_format.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/conftest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/test_auth.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/test_ci.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/test_cli.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/test_extensions.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/test_report.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/test_serialization.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/service/test_usage.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/graphql/test_basic.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/graphql/test_pytest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[basic-post].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[success-get].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[basic-Authorization-406].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-Authorization-200].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-200].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-406].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_ignored_auth/test_auth_via_override_cli[cookie].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_ignored_auth/test_auth_via_override_cli[query].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_ignored_auth/test_explicit_auth_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-False].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-True].raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/blank.pdf +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/parameters/test_forms.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/parameters/test_non_payload.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/stateful/conftest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/stateful/test_config.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/stateful/test_runner.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/stateful/test_stateful.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_checks.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_examples.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_hypothesis.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_ignored_auth.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_links.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_media_types.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_negative.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_randomized.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_security.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_serializing.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/specs/openapi/test_validation.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_app.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_asgi.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_async.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_common_parameters.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_converter.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_dereferencing.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_direct_access.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_examples.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_filters.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_fixups.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_hypothesis.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_internal.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_lazy.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_models.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_output.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_package.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_parameters.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_parametrization.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_petstore.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_pytest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_rate_limit.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_recoverable_errors.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_required.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_sanitizing_output.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_schemas.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_serialization.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_stateful.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_unittest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_utils.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/test_wsgi.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/transports/test_content_types.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test/utils.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test-corpus/conftest.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test-corpus/test_corpus.py +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/test_server.sh +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/tox.ini +0 -0
- {schemathesis-3.39.10 → schemathesis-3.39.11}/typos.toml +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: schemathesis
|
3
|
-
Version: 3.39.
|
3
|
+
Version: 3.39.11
|
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
|
@@ -1,9 +1,29 @@
|
|
1
1
|
Changelog
|
2
2
|
=========
|
3
3
|
|
4
|
-
:version:`Unreleased <v3.39.
|
4
|
+
:version:`Unreleased <v3.39.11...HEAD>` - TBD
|
5
5
|
---------------------------------------------
|
6
6
|
|
7
|
+
.. _v3.39.11:
|
8
|
+
|
9
|
+
:version:`3.39.11 <v3.39.10...v3.39.11>` - 2025-02-23
|
10
|
+
-----------------------------------------------------
|
11
|
+
|
12
|
+
**Fixed**
|
13
|
+
|
14
|
+
- Deduplicate failures from ``negative_data_rejection`` by response status code.
|
15
|
+
It makes Schemathesis display more different failures for this check.
|
16
|
+
- Query parameter serialization during the coverage phase.
|
17
|
+
- Apply custom auth data correctly during the coverage phase.
|
18
|
+
- Apply parameter overrides during the coverage phase.
|
19
|
+
- Incorrect quantifiers merging for some patterns. :issue:`2732`
|
20
|
+
|
21
|
+
**Changed**
|
22
|
+
|
23
|
+
- Do not report ``unsupported_method`` failure if the API returned HTTP 200 on OPTIONS request.
|
24
|
+
- More precise warning about missing 2xx responses for positive test cases.
|
25
|
+
- Add HTTP 406 status to the list of status codes that are expected for negative test cases.
|
26
|
+
|
7
27
|
.. _v3.39.10:
|
8
28
|
|
9
29
|
:version:`3.39.10 <v3.39.9...v3.39.10>` - 2025-02-10
|
@@ -7,7 +7,7 @@ Unique data generation
|
|
7
7
|
~~~~~~~~~~~~~~~~~~~~~~
|
8
8
|
|
9
9
|
By default, Schemathesis may generate the same test cases as all data is randomized. If this behavior does not match your expectations, or
|
10
|
-
your test
|
10
|
+
your test budgets, you can force Schemathesis to generate unique test cases.
|
11
11
|
|
12
12
|
In CLI:
|
13
13
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "schemathesis"
|
7
|
-
version = "3.39.
|
7
|
+
version = "3.39.11"
|
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" }]
|
@@ -4,7 +4,6 @@ from __future__ import annotations
|
|
4
4
|
|
5
5
|
import asyncio
|
6
6
|
from dataclasses import dataclass
|
7
|
-
import json
|
8
7
|
import warnings
|
9
8
|
from functools import wraps
|
10
9
|
from itertools import combinations
|
@@ -16,8 +15,10 @@ from hypothesis.errors import HypothesisWarning, Unsatisfiable
|
|
16
15
|
from hypothesis.internal.entropy import deterministic_PRNG
|
17
16
|
from jsonschema.exceptions import SchemaError
|
18
17
|
|
18
|
+
from schemathesis.serializers import get_first_matching_media_type
|
19
|
+
|
19
20
|
from . import _patches
|
20
|
-
from .auths import get_auth_storage_from_test
|
21
|
+
from .auths import AuthStorage, get_auth_storage_from_test
|
21
22
|
from .constants import DEFAULT_DEADLINE, NOT_SET
|
22
23
|
from .exceptions import OperationSchemaError, SerializationNotPossible
|
23
24
|
from .experimental import COVERAGE_PHASE
|
@@ -28,6 +29,7 @@ from .parameters import ParameterSet
|
|
28
29
|
from .transports.content_types import parse_content_type
|
29
30
|
from .transports.headers import has_invalid_characters, is_latin_1_encodable
|
30
31
|
from .types import NotSet
|
32
|
+
from schemathesis import auths
|
31
33
|
|
32
34
|
if TYPE_CHECKING:
|
33
35
|
from .utils import GivenInput
|
@@ -112,7 +114,9 @@ def create_test(
|
|
112
114
|
wrapped_test, operation, hook_dispatcher=hook_dispatcher, as_strategy_kwargs=as_strategy_kwargs
|
113
115
|
)
|
114
116
|
if COVERAGE_PHASE.is_enabled:
|
115
|
-
wrapped_test = add_coverage(
|
117
|
+
wrapped_test = add_coverage(
|
118
|
+
wrapped_test, operation, data_generation_methods, auth_storage, as_strategy_kwargs
|
119
|
+
)
|
116
120
|
return wrapped_test
|
117
121
|
|
118
122
|
|
@@ -216,20 +220,45 @@ def adjust_urlencoded_payload(case: Case) -> None:
|
|
216
220
|
|
217
221
|
|
218
222
|
def add_coverage(
|
219
|
-
test: Callable,
|
223
|
+
test: Callable,
|
224
|
+
operation: APIOperation,
|
225
|
+
data_generation_methods: list[DataGenerationMethod],
|
226
|
+
auth_storage: AuthStorage | None,
|
227
|
+
as_strategy_kwargs: dict[str, Any],
|
220
228
|
) -> Callable:
|
221
|
-
|
222
|
-
|
223
|
-
|
229
|
+
from schemathesis.specs.openapi.constants import LOCATION_TO_CONTAINER
|
230
|
+
|
231
|
+
auth_context = auths.AuthContext(
|
232
|
+
operation=operation,
|
233
|
+
app=operation.app,
|
234
|
+
)
|
235
|
+
overrides = {
|
236
|
+
container: as_strategy_kwargs[container]
|
237
|
+
for container in LOCATION_TO_CONTAINER.values()
|
238
|
+
if container in as_strategy_kwargs
|
239
|
+
}
|
240
|
+
for case in _iter_coverage_cases(operation, data_generation_methods):
|
241
|
+
if case.media_type and get_first_matching_media_type(case.media_type) is None:
|
242
|
+
continue
|
243
|
+
adjust_urlencoded_payload(case)
|
244
|
+
auths.set_on_case(case, auth_context, auth_storage)
|
245
|
+
for container_name, value in overrides.items():
|
246
|
+
container = getattr(case, container_name)
|
247
|
+
if container is None:
|
248
|
+
setattr(case, container_name, value)
|
249
|
+
else:
|
250
|
+
container.update(value)
|
251
|
+
test = hypothesis.example(case=case)(test)
|
224
252
|
return test
|
225
253
|
|
226
254
|
|
227
255
|
class Template:
|
228
|
-
__slots__ = ("_components", "_template")
|
256
|
+
__slots__ = ("_components", "_template", "_serializers")
|
229
257
|
|
230
|
-
def __init__(self) -> None:
|
258
|
+
def __init__(self, serializers: dict[str, Callable]) -> None:
|
231
259
|
self._components: dict[str, DataGenerationMethod] = {}
|
232
260
|
self._template: dict[str, Any] = {}
|
261
|
+
self._serializers = serializers
|
233
262
|
|
234
263
|
def __contains__(self, key: str) -> bool:
|
235
264
|
return key in self._template
|
@@ -251,36 +280,58 @@ class Template:
|
|
251
280
|
self._components[component_name] = DataGenerationMethod.negative
|
252
281
|
|
253
282
|
container = self._template.setdefault(component_name, {})
|
254
|
-
|
255
|
-
container[name] = _stringify_value(value.value, location)
|
256
|
-
else:
|
257
|
-
container[name] = value.value
|
283
|
+
container[name] = value.value
|
258
284
|
|
259
285
|
def set_body(self, body: coverage.GeneratedValue, media_type: str) -> None:
|
260
286
|
self._template["body"] = body.value
|
261
287
|
self._template["media_type"] = media_type
|
262
288
|
self._components["body"] = body.data_generation_method
|
263
289
|
|
290
|
+
def _serialize(self, kwargs: dict[str, Any]) -> dict[str, Any]:
|
291
|
+
from schemathesis.specs.openapi._hypothesis import quote_all
|
292
|
+
|
293
|
+
output = {}
|
294
|
+
for container_name, value in kwargs.items():
|
295
|
+
serializer = self._serializers.get(container_name)
|
296
|
+
if container_name in ("headers", "cookies") and isinstance(value, dict):
|
297
|
+
value = _stringify_value(value, container_name)
|
298
|
+
if serializer is not None:
|
299
|
+
value = serializer(value)
|
300
|
+
if container_name == "query" and isinstance(value, dict):
|
301
|
+
value = _stringify_value(value, container_name)
|
302
|
+
if container_name == "path_parameters" and isinstance(value, dict):
|
303
|
+
value = _stringify_value(quote_all(value), container_name)
|
304
|
+
output[container_name] = value
|
305
|
+
return output
|
306
|
+
|
264
307
|
def unmodified(self) -> TemplateValue:
|
265
|
-
|
308
|
+
kwargs = self._template.copy()
|
309
|
+
kwargs = self._serialize(kwargs)
|
310
|
+
return TemplateValue(kwargs=kwargs, components=self._components.copy())
|
266
311
|
|
267
312
|
def with_body(self, *, media_type: str, value: coverage.GeneratedValue) -> TemplateValue:
|
268
313
|
kwargs = {**self._template, "media_type": media_type, "body": value.value}
|
314
|
+
kwargs = self._serialize(kwargs)
|
269
315
|
components = {**self._components, "body": value.data_generation_method}
|
270
316
|
return TemplateValue(kwargs=kwargs, components=components)
|
271
317
|
|
272
318
|
def with_parameter(self, *, location: str, name: str, value: coverage.GeneratedValue) -> TemplateValue:
|
273
319
|
from .specs.openapi.constants import LOCATION_TO_CONTAINER
|
274
320
|
|
275
|
-
if _should_stringify(location, value):
|
276
|
-
generated = _stringify_value(value.value, location)
|
277
|
-
else:
|
278
|
-
generated = value.value
|
279
|
-
|
280
321
|
container_name = LOCATION_TO_CONTAINER[location]
|
281
322
|
container = self._template[container_name]
|
282
|
-
|
283
|
-
|
323
|
+
return self.with_container(
|
324
|
+
container_name=container_name,
|
325
|
+
value={**container, name: value.value},
|
326
|
+
data_generation_method=value.data_generation_method,
|
327
|
+
)
|
328
|
+
|
329
|
+
def with_container(
|
330
|
+
self, *, container_name: str, value: Any, data_generation_method: DataGenerationMethod
|
331
|
+
) -> TemplateValue:
|
332
|
+
kwargs = {**self._template, container_name: value}
|
333
|
+
kwargs = self._serialize(kwargs)
|
334
|
+
components = {**self._components, container_name: data_generation_method}
|
284
335
|
return TemplateValue(kwargs=kwargs, components=components)
|
285
336
|
|
286
337
|
|
@@ -291,18 +342,24 @@ class TemplateValue:
|
|
291
342
|
__slots__ = ("kwargs", "components")
|
292
343
|
|
293
344
|
|
294
|
-
def
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
345
|
+
def _stringify_value(val: Any, container_name: str) -> Any:
|
346
|
+
if val is None:
|
347
|
+
return "null"
|
348
|
+
if val is True:
|
349
|
+
return "true"
|
350
|
+
if val is False:
|
351
|
+
return "false"
|
352
|
+
if isinstance(val, (int, float)):
|
353
|
+
return str(val)
|
299
354
|
if isinstance(val, list):
|
300
|
-
if
|
355
|
+
if container_name == "query":
|
301
356
|
# Having a list here ensures there will be multiple query parameters wit the same name
|
302
|
-
return [
|
357
|
+
return [_stringify_value(item, container_name) for item in val]
|
303
358
|
# use comma-separated values style for arrays
|
304
|
-
return ",".join(
|
305
|
-
|
359
|
+
return ",".join(_stringify_value(sub, container_name) for sub in val)
|
360
|
+
if isinstance(val, dict):
|
361
|
+
return {key: _stringify_value(sub, container_name) for key, sub in val.items()}
|
362
|
+
return val
|
306
363
|
|
307
364
|
|
308
365
|
def _iter_coverage_cases(
|
@@ -310,18 +367,11 @@ def _iter_coverage_cases(
|
|
310
367
|
) -> Generator[Case, None, None]:
|
311
368
|
from .specs.openapi.constants import LOCATION_TO_CONTAINER
|
312
369
|
from .specs.openapi.examples import find_in_responses, find_matching_in_responses
|
313
|
-
|
314
|
-
def _stringify_value(val: Any, location: str) -> str | list[str]:
|
315
|
-
if isinstance(val, list):
|
316
|
-
if location == "query":
|
317
|
-
# Having a list here ensures there will be multiple query parameters wit the same name
|
318
|
-
return [json.dumps(item) for item in val]
|
319
|
-
# use comma-separated values style for arrays
|
320
|
-
return ",".join(json.dumps(sub) for sub in val)
|
321
|
-
return json.dumps(val)
|
370
|
+
from schemathesis.specs.openapi.serialization import get_serializers_for_operation
|
322
371
|
|
323
372
|
generators: dict[tuple[str, str], Generator[coverage.GeneratedValue, None, None]] = {}
|
324
|
-
|
373
|
+
serializers = get_serializers_for_operation(operation)
|
374
|
+
template = Template(serializers)
|
325
375
|
responses = find_in_responses(operation)
|
326
376
|
for parameter in operation.iter_parameters():
|
327
377
|
location = parameter.location
|
@@ -415,10 +465,12 @@ def _iter_coverage_cases(
|
|
415
465
|
# I.e. contains just `default` value without any other keywords
|
416
466
|
value = container.get(parameter.name, NOT_SET)
|
417
467
|
if value is not NOT_SET:
|
418
|
-
data = template.
|
419
|
-
|
420
|
-
|
468
|
+
data = template.with_container(
|
469
|
+
container_name="query",
|
470
|
+
value={**container, parameter.name: [value, value]},
|
471
|
+
data_generation_method=DataGenerationMethod.negative,
|
421
472
|
)
|
473
|
+
case = operation.make_case(**data.kwargs)
|
422
474
|
case.data_generation_method = DataGenerationMethod.negative
|
423
475
|
case.meta = _make_meta(
|
424
476
|
description=f"Duplicate `{parameter.name}` query parameter",
|
@@ -435,17 +487,19 @@ def _iter_coverage_cases(
|
|
435
487
|
location = parameter.location
|
436
488
|
container_name = LOCATION_TO_CONTAINER[location]
|
437
489
|
container = template[container_name]
|
438
|
-
data = template.
|
439
|
-
|
440
|
-
|
490
|
+
data = template.with_container(
|
491
|
+
container_name=container_name,
|
492
|
+
value={k: v for k, v in container.items() if k != name},
|
493
|
+
data_generation_method=DataGenerationMethod.negative,
|
441
494
|
)
|
495
|
+
case = operation.make_case(**data.kwargs)
|
442
496
|
case.data_generation_method = DataGenerationMethod.negative
|
443
497
|
case.meta = _make_meta(
|
444
498
|
description=f"Missing `{name}` at {location}",
|
445
499
|
location=None,
|
446
500
|
parameter=name,
|
447
501
|
parameter_location=location,
|
448
|
-
**
|
502
|
+
**data.components,
|
449
503
|
)
|
450
504
|
yield case
|
451
505
|
# Generate combinations for each location
|
@@ -474,23 +528,17 @@ def _iter_coverage_cases(
|
|
474
528
|
_parameter: str | None,
|
475
529
|
_data_generation_method: DataGenerationMethod,
|
476
530
|
) -> Case:
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
}
|
482
|
-
else:
|
483
|
-
container = container_values
|
484
|
-
|
485
|
-
data = template.unmodified()
|
486
|
-
case = operation.make_case(**{**data.kwargs, _container_name: container})
|
531
|
+
data = template.with_container(
|
532
|
+
container_name=_container_name, value=container_values, data_generation_method=_data_generation_method
|
533
|
+
)
|
534
|
+
case = operation.make_case(**data.kwargs)
|
487
535
|
case.data_generation_method = _data_generation_method
|
488
536
|
case.meta = _make_meta(
|
489
537
|
description=description,
|
490
538
|
location=None,
|
491
539
|
parameter=_parameter,
|
492
540
|
parameter_location=_location,
|
493
|
-
**
|
541
|
+
**data.components,
|
494
542
|
)
|
495
543
|
return case
|
496
544
|
|
@@ -143,6 +143,12 @@ class AcceptedNegativeData(FailureContext):
|
|
143
143
|
title: str = "Accepted negative data"
|
144
144
|
type: str = "accepted_negative_data"
|
145
145
|
|
146
|
+
def unique_by_key(self, check_message: str | None) -> tuple[str, ...]:
|
147
|
+
return (
|
148
|
+
check_message or self.message,
|
149
|
+
str(self.status_code),
|
150
|
+
)
|
151
|
+
|
146
152
|
|
147
153
|
@dataclass(repr=False)
|
148
154
|
class RejectedPositiveData(FailureContext):
|
@@ -21,7 +21,9 @@ CheckFunction = Callable[["CheckContext", "GenericResponse", "Case"], Optional[b
|
|
21
21
|
@dataclass
|
22
22
|
class NegativeDataRejectionConfig:
|
23
23
|
# 5xx will pass through
|
24
|
-
allowed_statuses: list[str] = field(
|
24
|
+
allowed_statuses: list[str] = field(
|
25
|
+
default_factory=lambda: ["400", "401", "403", "404", "406", "422", "428", "5xx"]
|
26
|
+
)
|
25
27
|
|
26
28
|
|
27
29
|
@dataclass
|
@@ -150,13 +150,6 @@ class BaseRunner:
|
|
150
150
|
def _should_warn_about_only_4xx(result: TestResult) -> bool:
|
151
151
|
if all(check.response is None for check in result.checks):
|
152
152
|
return False
|
153
|
-
# Don't warn if we saw any 2xx or 5xx responses
|
154
|
-
if any(
|
155
|
-
check.response.status_code < 400 or check.response.status_code >= 500
|
156
|
-
for check in result.checks
|
157
|
-
if check.response is not None
|
158
|
-
):
|
159
|
-
return False
|
160
153
|
# Don't duplicate auth warnings
|
161
154
|
if {check.response.status_code for check in result.checks if check.response is not None} <= {401, 403}:
|
162
155
|
return False
|
@@ -164,11 +157,28 @@ class BaseRunner:
|
|
164
157
|
return True
|
165
158
|
|
166
159
|
def _check_warnings() -> None:
|
160
|
+
# Warn if all positive test cases got 4xx in return and no failure was found
|
161
|
+
def all_positive_are_rejected(result: TestResult) -> bool:
|
162
|
+
seen_positive = False
|
163
|
+
for check in result.checks:
|
164
|
+
if check.example.data_generation_method != DataGenerationMethod.positive:
|
165
|
+
continue
|
166
|
+
seen_positive = True
|
167
|
+
if check.response is None:
|
168
|
+
continue
|
169
|
+
# At least one positive response for positive test case
|
170
|
+
if 200 <= check.response.status_code < 300:
|
171
|
+
return False
|
172
|
+
# If there are positive test cases, and we ended up here, then there are no 2xx responses for them
|
173
|
+
# Otherwise, there are no positive test cases at all and this check should pass
|
174
|
+
return seen_positive
|
175
|
+
|
167
176
|
for result in ctx.data.results:
|
168
177
|
# Only warn about 4xx responses in successful positive test scenarios
|
169
178
|
if (
|
170
179
|
all(check.value == Status.success for check in result.checks)
|
171
|
-
and
|
180
|
+
and DataGenerationMethod.positive in result.data_generation_method
|
181
|
+
and all_positive_are_rejected(result)
|
172
182
|
and _should_warn_about_only_4xx(result)
|
173
183
|
):
|
174
184
|
ctx.add_warning(
|
@@ -294,7 +294,12 @@ def missing_required_header(ctx: CheckContext, response: GenericResponse, case:
|
|
294
294
|
|
295
295
|
|
296
296
|
def unsupported_method(ctx: CheckContext, response: GenericResponse, case: Case) -> bool | None:
|
297
|
-
if
|
297
|
+
if (
|
298
|
+
case.meta
|
299
|
+
and case.meta.description
|
300
|
+
and case.meta.description.startswith("Unspecified HTTP method:")
|
301
|
+
and response.request.method != "OPTIONS"
|
302
|
+
):
|
298
303
|
if response.status_code != 405:
|
299
304
|
raise AssertionError(
|
300
305
|
f"Unexpected response status for unspecified HTTP method: {response.status_code}\nExpected: 405"
|
@@ -9,6 +9,8 @@ from typing import TYPE_CHECKING, Any, Generator, Iterator, Union, cast
|
|
9
9
|
import requests
|
10
10
|
from hypothesis_jsonschema import from_schema
|
11
11
|
|
12
|
+
from schemathesis.specs.openapi.serialization import get_serializers_for_operation
|
13
|
+
|
12
14
|
from ...constants import DEFAULT_RESPONSE_TIMEOUT
|
13
15
|
from ...generation import get_single_example
|
14
16
|
from ...internal.copy import fast_deepcopy
|
@@ -48,11 +50,7 @@ def get_strategies_from_examples(
|
|
48
50
|
operation: APIOperation[OpenAPIParameter, Case], as_strategy_kwargs: dict[str, Any] | None = None
|
49
51
|
) -> list[SearchStrategy[Case]]:
|
50
52
|
"""Build a set of strategies that generate test cases based on explicit examples in the schema."""
|
51
|
-
maps =
|
52
|
-
for location, container in LOCATION_TO_CONTAINER.items():
|
53
|
-
serializer = operation.get_parameter_serializer(location)
|
54
|
-
if serializer is not None:
|
55
|
-
maps[container] = serializer
|
53
|
+
maps = get_serializers_for_operation(operation)
|
56
54
|
|
57
55
|
def serialize_components(case: Case) -> Case:
|
58
56
|
"""Applies special serialization rules for case components.
|
@@ -3,6 +3,8 @@ from __future__ import annotations
|
|
3
3
|
import re
|
4
4
|
from functools import lru_cache
|
5
5
|
|
6
|
+
from ...exceptions import InternalError
|
7
|
+
|
6
8
|
try: # pragma: no cover
|
7
9
|
import re._constants as sre
|
8
10
|
import re._parser as sre_parse
|
@@ -29,7 +31,15 @@ def update_quantifier(pattern: str, min_length: int | None, max_length: int | No
|
|
29
31
|
|
30
32
|
try:
|
31
33
|
parsed = sre_parse.parse(pattern)
|
32
|
-
|
34
|
+
updated = _handle_parsed_pattern(parsed, pattern, min_length, max_length)
|
35
|
+
try:
|
36
|
+
re.compile(updated)
|
37
|
+
except re.error as exc:
|
38
|
+
raise InternalError(
|
39
|
+
f"The combination of min_length={min_length} and max_length={max_length} applied to the original pattern '{pattern}' resulted in an invalid regex: '{updated}'. "
|
40
|
+
"This indicates a bug in the regex quantifier merging logic"
|
41
|
+
) from exc
|
42
|
+
return updated
|
33
43
|
except re.error:
|
34
44
|
# Invalid pattern
|
35
45
|
return pattern
|
@@ -261,13 +271,18 @@ def _handle_repeat_quantifier(
|
|
261
271
|
min_length, max_length = _build_size(min_repeat, max_repeat, min_length, max_length)
|
262
272
|
if min_length > max_length:
|
263
273
|
return pattern
|
264
|
-
|
274
|
+
inner = _strip_quantifier(pattern)
|
275
|
+
if inner.startswith("(") and inner.endswith(")"):
|
276
|
+
inner = inner[1:-1]
|
277
|
+
return f"({inner})" + _build_quantifier(min_length, max_length)
|
265
278
|
|
266
279
|
|
267
280
|
def _handle_literal_or_in_quantifier(pattern: str, min_length: int | None, max_length: int | None) -> str:
|
268
281
|
"""Handle literal or character class quantifiers."""
|
269
282
|
min_length = 1 if min_length is None else max(min_length, 1)
|
270
|
-
|
283
|
+
if pattern.startswith("(") and pattern.endswith(")"):
|
284
|
+
pattern = pattern[1:-1]
|
285
|
+
return f"({pattern})" + _build_quantifier(min_length, max_length)
|
271
286
|
|
272
287
|
|
273
288
|
def _build_quantifier(minimum: int | None, maximum: int | None) -> str:
|
{schemathesis-3.39.10 → schemathesis-3.39.11}/src/schemathesis/specs/openapi/serialization.py
RENAMED
@@ -3,6 +3,9 @@ from __future__ import annotations
|
|
3
3
|
import json
|
4
4
|
from typing import Any, Callable, Dict, Generator, List
|
5
5
|
|
6
|
+
from schemathesis.schemas import APIOperation
|
7
|
+
from schemathesis.specs.openapi.constants import LOCATION_TO_CONTAINER
|
8
|
+
|
6
9
|
from ...utils import compose
|
7
10
|
|
8
11
|
Generated = Dict[str, Any]
|
@@ -11,6 +14,15 @@ DefinitionList = List[Definition]
|
|
11
14
|
MapFunction = Callable[[Generated], Generated]
|
12
15
|
|
13
16
|
|
17
|
+
def get_serializers_for_operation(operation: APIOperation) -> dict[str, Callable]:
|
18
|
+
serializers = {}
|
19
|
+
for location, container in LOCATION_TO_CONTAINER.items():
|
20
|
+
serializer = operation.get_parameter_serializer(location)
|
21
|
+
if serializer is not None:
|
22
|
+
serializers[container] = serializer
|
23
|
+
return serializers
|
24
|
+
|
25
|
+
|
14
26
|
def make_serializer(
|
15
27
|
func: Callable[[DefinitionList], Generator[Callable | None, None, None]],
|
16
28
|
) -> Callable[[DefinitionList], Callable | None]:
|
@@ -206,6 +206,14 @@ async def write_only(request: web.Request) -> web.Response:
|
|
206
206
|
raise web.HTTPInternalServerError
|
207
207
|
|
208
208
|
|
209
|
+
async def always_incorrect(request: web.Request) -> web.Response:
|
210
|
+
raise web.HTTPBadRequest(text='{"detail": "Always incorrect"}')
|
211
|
+
|
212
|
+
|
213
|
+
async def always_incorrect_options(request: web.Request) -> web.Response:
|
214
|
+
return web.Response(status=200)
|
215
|
+
|
216
|
+
|
209
217
|
async def upload_file(request: web.Request) -> web.Response:
|
210
218
|
if not request.headers.get("Content-Type", "").startswith("multipart/"):
|
211
219
|
raise web.HTTPBadRequest(text="Not a multipart request!")
|
@@ -29,6 +29,8 @@ class Operation(Enum):
|
|
29
29
|
teapot = ("POST", "/api/teapot")
|
30
30
|
text = ("GET", "/api/text")
|
31
31
|
cp866 = ("GET", "/api/cp866")
|
32
|
+
always_incorrect = ("GET", "/api/always_incorrect")
|
33
|
+
always_incorrect_options = ("OPTIONS", "/api/always_incorrect")
|
32
34
|
conformance = ("GET", "/api/conformance")
|
33
35
|
plain_text_body = ("POST", "/api/text")
|
34
36
|
csv_payload = ("POST", "/api/csv")
|
@@ -0,0 +1,103 @@
|
|
1
|
+
Exit code: 1
|
2
|
+
---
|
3
|
+
Stdout:
|
4
|
+
======================= Schemathesis test session starts =======================
|
5
|
+
Schema location: http://127.0.0.1:57599/openapi.json
|
6
|
+
Base URL: http://127.0.0.1:57599/
|
7
|
+
Specification version: Open API 3.0.0
|
8
|
+
Random seed: 42
|
9
|
+
Workers: 1
|
10
|
+
Collected API operations: 1
|
11
|
+
Collected API links: 0
|
12
|
+
API probing: SUCCESS
|
13
|
+
Schema analysis: SKIP
|
14
|
+
|
15
|
+
GET /test F [100%]
|
16
|
+
|
17
|
+
=================================== FAILURES ===================================
|
18
|
+
__________________________________ GET /test ___________________________________
|
19
|
+
1. Test Case ID: <PLACEHOLDER>
|
20
|
+
|
21
|
+
- Accepted negative data
|
22
|
+
|
23
|
+
Allowed statuses: 400, 401, 403, 404, 422, 428, 5xx
|
24
|
+
|
25
|
+
[200] OK:
|
26
|
+
|
27
|
+
`{"incorrect":"positive"}`
|
28
|
+
|
29
|
+
Reproduce with:
|
30
|
+
|
31
|
+
<PLACEHOLDER>
|
32
|
+
|
33
|
+
2. Test Case ID: <PLACEHOLDER>
|
34
|
+
|
35
|
+
- Response violates schema
|
36
|
+
|
37
|
+
'message' is a required property
|
38
|
+
|
39
|
+
Schema:
|
40
|
+
|
41
|
+
{
|
42
|
+
"properties": {
|
43
|
+
"message": {
|
44
|
+
"type": "string"
|
45
|
+
}
|
46
|
+
},
|
47
|
+
"required": [
|
48
|
+
"message"
|
49
|
+
],
|
50
|
+
"type": "object"
|
51
|
+
}
|
52
|
+
|
53
|
+
Value:
|
54
|
+
|
55
|
+
{
|
56
|
+
"incorrect": "positive"
|
57
|
+
}
|
58
|
+
|
59
|
+
[200] OK:
|
60
|
+
|
61
|
+
`{"incorrect":"positive"}`
|
62
|
+
|
63
|
+
Reproduce with:
|
64
|
+
|
65
|
+
<PLACEHOLDER>
|
66
|
+
|
67
|
+
3. Test Case ID: <PLACEHOLDER>
|
68
|
+
|
69
|
+
- Accepted negative data
|
70
|
+
|
71
|
+
Allowed statuses: 400, 401, 403, 404, 422, 428, 5xx
|
72
|
+
|
73
|
+
[406] Not Acceptable:
|
74
|
+
|
75
|
+
`{"message":"negative"}`
|
76
|
+
|
77
|
+
Reproduce with:
|
78
|
+
|
79
|
+
<PLACEHOLDER>
|
80
|
+
|
81
|
+
=================================== SUMMARY ====================================
|
82
|
+
|
83
|
+
Performed checks:
|
84
|
+
not_a_server_error N / N passed PASSED
|
85
|
+
status_code_conformance N / N passed PASSED
|
86
|
+
content_type_conformance N / N passed PASSED
|
87
|
+
response_headers_conformance N / N passed PASSED
|
88
|
+
response_schema_conformance N / N passed FAILED
|
89
|
+
negative_data_rejection N / N passed FAILED
|
90
|
+
ignored_auth N / N passed PASSED
|
91
|
+
unsupported_method N / N passed PASSED
|
92
|
+
|
93
|
+
Experimental Features:
|
94
|
+
- Coverage phase: Generate covering test cases
|
95
|
+
Feedback: https://github.com/schemathesis/schemathesis/discussions/2418
|
96
|
+
|
97
|
+
Your feedback is crucial for experimental features. Please visit the provided URL(s) to share your thoughts.
|
98
|
+
|
99
|
+
Note: Use the 'X-Schemathesis-TestCaseId' header to correlate test case ids from failure messages with server logs for debugging.
|
100
|
+
|
101
|
+
Note: To replicate these test failures, rerun with `--hypothesis-seed=42`
|
102
|
+
|
103
|
+
============================== 1 failed in 1.00s ===============================
|