schemathesis 3.38.7__tar.gz → 3.38.8__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.38.7 → schemathesis-3.38.8}/.github/workflows/codeql-analysis.yml +3 -3
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.pre-commit-config.yaml +2 -2
- {schemathesis-3.38.7 → schemathesis-3.38.8}/PKG-INFO +1 -1
- {schemathesis-3.38.7 → schemathesis-3.38.8}/benches/coverage_phase.py +1 -1
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/changelog.rst +12 -1
- {schemathesis-3.38.7 → schemathesis-3.38.8}/pyproject.toml +1 -1
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/_hypothesis.py +20 -11
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/__init__.py +15 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/generation/coverage.py +50 -38
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/internal/checks.py +6 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/models.py +1 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/checks.py +14 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +4 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/test_commands.py +0 -1
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/coverage/test_combinations.py +3 -4
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/coverage/test_phase.py +93 -0
- schemathesis-3.38.8/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[200].raw +32 -0
- schemathesis-3.38.8/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[406].raw +52 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_checks.py +30 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_lazy.py +1 -1
- schemathesis-3.38.8/typos.toml +2 -0
- schemathesis-3.38.7/typos.toml +0 -2
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.dockerignore +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/FUNDING.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/dependabot.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/workflows/build.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/workflows/codspeed.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/workflows/commit.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/workflows/example-build.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/workflows/example-no-build.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/workflows/master_update.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/workflows/release.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/workflows/test-corpus.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/workflows/test-hypothesis.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.github/workflows/update-pre-commit.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.gitignore +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.readthedocs.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.relint.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.rstcheck.cfg +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/.yamllint +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/CITATION.cff +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/CONTRIBUTING.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/Dockerfile +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/Dockerfile.bookworm +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/LICENSE +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/README.md +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/SECURITY.md +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/benches/cli.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/benches/references.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/benches/schema.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/changelog.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/codecov.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/corpus/data/graphql.tar.gz +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/corpus/data/openapi-3.0.tar.gz +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/corpus/data/openapi-3.1.tar.gz +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/corpus/data/swagger-2.0.tar.gz +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/corpus/tools.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/Makefile +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/additional-content.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/api.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/auth.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/cli.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/compatibility.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/conf.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/continuous_integration.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/contrib.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/data-generation.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/examples.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/experimental.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/extending.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/faq.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/getting-started.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/graphql.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/index.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/python.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/recipes.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/requirements.txt +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/sanitizing.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/service.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/stateful.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/docs/targeted.rst +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/example/Dockerfile +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/example/README.md +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/example/app.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/example/compose.yml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/example/openapi.json +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/example/requirements-app.in +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/example/requirements-app.txt +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/example/requirements-pytest.in +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/example/requirements-pytest.txt +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/example/tests/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/example/tests/conftest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/example/tests/extensions.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/example/tests/test_app.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/img/demo.gif +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/img/service_github_report.png +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/mypy.ini +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/_compat.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/_dependency_versions.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/_lazy_import.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/_override.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/_patches.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/_rate_limiter.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/_xml.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/auths.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/checks.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/__main__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/callbacks.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/cassettes.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/context.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/debug.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/handlers.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/junitxml.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/options.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/output/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/output/default.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/output/short.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/reporting.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/cli/sanitization.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/code_samples.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/constants.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/contrib/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/contrib/openapi/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/contrib/unique_data.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/exceptions.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/experimental/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/extra/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/extra/_aiohttp.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/extra/_flask.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/extra/_server.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/extra/pytest_plugin.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/failures.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/filters.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/fixups/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/fixups/fast_api.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/fixups/utf8_bom.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/generation/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/generation/_hypothesis.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/generation/_methods.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/graphql.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/hooks.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/internal/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/internal/copy.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/internal/datetime.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/internal/deprecation.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/internal/diff.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/internal/extensions.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/internal/jsonschema.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/internal/output.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/internal/result.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/internal/transformation.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/internal/validation.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/lazy.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/loaders.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/parameters.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/py.typed +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/runner/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/runner/events.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/runner/impl/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/runner/impl/context.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/runner/impl/core.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/runner/impl/solo.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/runner/impl/threadpool.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/runner/probes.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/runner/serialization.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/sanitization.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/schemas.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/serializers.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/service/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/service/auth.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/service/ci.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/service/client.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/service/constants.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/service/events.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/service/extensions.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/service/hosts.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/service/metadata.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/service/models.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/service/report.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/service/serialization.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/service/usage.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/_cache.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/loaders.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/schemas.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/_cache.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/converter.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/examples.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/formats.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/links.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/loaders.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/media_types.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/patterns.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/schemas.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/security.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/serialization.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/stateful/statistic.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/stateful/types.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/utils.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/validation.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/stateful/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/stateful/config.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/stateful/context.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/stateful/events.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/stateful/runner.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/stateful/sink.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/stateful/state_machine.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/stateful/statistic.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/stateful/validation.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/targets.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/throttling.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/transports/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/transports/asgi.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/transports/auth.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/transports/content_types.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/transports/headers.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/transports/responses.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/types.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/src/schemathesis/utils.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/cp1252_app.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/hooks.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/openapi/_aiohttp/handlers.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/apps/openapi/schema.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/auth/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/auth/conftest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/auth/test_cli.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/auth/test_provider.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/auth/test_pytest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/checks/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/checks/test_checks.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_deduplication_on_sanitized_header.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args10].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args3].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args4].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args5].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args6].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args7].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args8].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args9].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance_with_env_vars.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_deprecated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_filtered_out[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_generation_config[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_keyboard_interrupt[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_max_failures[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only_with_error[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args37].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_stateful_explicit_examples_with_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unresolvable_links[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/cert.pem +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/conftest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/output/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/output/test_default.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/test_asgi.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/test_callbacks.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/test_cassettes.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/test_checks.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/test_crashes.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/test_hooks.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/test_junitxml.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/test_options.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/test_reporting.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/cli/test_targeted.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/code_samples/conftest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/code_samples/test_curl.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/code_samples/test_python.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/conftest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/contrib/openapi/formats/test_uuid.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/contrib/test_install.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/contrib/test_unique_data.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/coverage/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/coverage/test_examples.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/data/relative_files/components/parameters.yaml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/data/relative_files/components/responses.yaml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/data/relative_files/components/schemas.yaml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/data/relative_files/main.yaml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/data/relative_files/paths/user-account.yaml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/experimental/conftest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/experimental/test_experiments.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/experimental/test_openapi_3_1.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/extra/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/extra/test_aiohttp.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/filters/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/filters/test_expressions.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/filters/test_matching.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/fixtures/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/fixtures/ctx.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/hooks/test_filter_operations.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/hooks/test_filters.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/hooks/test_hooks.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/loaders/conftest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/loaders/test_app.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/loaders/test_common.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/loaders/test_graphql.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/loaders/test_openapi.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/loaders/test_yaml.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/runner/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/runner/test_checks.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/runner/test_events.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/runner/test_probes.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/runner/test_runner.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_client_error_on_project_details.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_unauthorized.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_custom_format.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/conftest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/test_auth.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/test_ci.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/test_cli.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/test_extensions.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/test_report.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/test_serialization.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/service/test_usage.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/graphql/test_basic.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/graphql/test_pytest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_auth_via_override_cli[cookie].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_auth_via_override_cli[query].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_explicit_auth_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-False].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-True].raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/blank.pdf +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/parameters/test_forms.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/parameters/test_non_payload.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/stateful/conftest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/stateful/test_config.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/stateful/test_runner.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/stateful/test_stateful.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_examples.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_hypothesis.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_ignored_auth.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_links.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_media_types.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_negative.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_patterns.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_randomized.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_security.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_serializing.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/specs/openapi/test_validation.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_app.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_asgi.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_async.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_common_parameters.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_converter.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_dereferencing.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_direct_access.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_examples.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_filters.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_fixups.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_hypothesis.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_internal.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_models.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_output.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_package.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_parameters.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_parametrization.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_petstore.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_pytest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_rate_limit.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_recoverable_errors.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_required.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_sanitizing_output.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_schemas.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_serialization.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_stateful.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_unittest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_utils.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/test_wsgi.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/transports/test_content_types.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test/utils.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test-corpus/conftest.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test-corpus/test_corpus.py +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/test_server.sh +0 -0
- {schemathesis-3.38.7 → schemathesis-3.38.8}/tox.ini +0 -0
|
@@ -38,7 +38,7 @@ jobs:
|
|
|
38
38
|
|
|
39
39
|
# Initializes the CodeQL tools for scanning.
|
|
40
40
|
- name: Initialize CodeQL
|
|
41
|
-
uses: github/codeql-action/init@v3.27.
|
|
41
|
+
uses: github/codeql-action/init@v3.27.5
|
|
42
42
|
with:
|
|
43
43
|
languages: ${{ matrix.language }}
|
|
44
44
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
@@ -49,7 +49,7 @@ jobs:
|
|
|
49
49
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
50
50
|
# If this step fails, then you should remove it and run the build manually (see below)
|
|
51
51
|
- name: Autobuild
|
|
52
|
-
uses: github/codeql-action/autobuild@v3.27.
|
|
52
|
+
uses: github/codeql-action/autobuild@v3.27.5
|
|
53
53
|
|
|
54
54
|
# ℹ️ Command-line programs to run using the OS shell.
|
|
55
55
|
# 📚 https://git.io/JvXDl
|
|
@@ -63,4 +63,4 @@ jobs:
|
|
|
63
63
|
# make release
|
|
64
64
|
|
|
65
65
|
- name: Perform CodeQL Analysis
|
|
66
|
-
uses: github/codeql-action/analyze@v3.27.
|
|
66
|
+
uses: github/codeql-action/analyze@v3.27.5
|
|
@@ -38,12 +38,12 @@ repos:
|
|
|
38
38
|
additional_dependencies: [types-click, types-requests, types-PyYAML]
|
|
39
39
|
|
|
40
40
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
41
|
-
rev: v0.
|
|
41
|
+
rev: v0.8.0
|
|
42
42
|
hooks:
|
|
43
43
|
- id: ruff-format
|
|
44
44
|
|
|
45
45
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
46
|
-
rev: v0.
|
|
46
|
+
rev: v0.8.0
|
|
47
47
|
hooks:
|
|
48
48
|
- id: ruff
|
|
49
49
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: schemathesis
|
|
3
|
-
Version: 3.38.
|
|
3
|
+
Version: 3.38.8
|
|
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
|
|
@@ -4,7 +4,7 @@ import pytest
|
|
|
4
4
|
|
|
5
5
|
from schemathesis.generation.coverage import cover_schema_iter, CoverageContext
|
|
6
6
|
|
|
7
|
-
CONTEXTS = [CoverageContext().with_positive(), CoverageContext().with_negative()]
|
|
7
|
+
CONTEXTS = [CoverageContext(location="body").with_positive(), CoverageContext(location="body").with_negative()]
|
|
8
8
|
CONTEXT_NAMES = [",".join([m.value for m in ctx.data_generation_methods]) for ctx in CONTEXTS]
|
|
9
9
|
|
|
10
10
|
BASIC_TYPES = [
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
-
:version:`Unreleased <v3.38.
|
|
4
|
+
:version:`Unreleased <v3.38.8...HEAD>` - TBD
|
|
5
5
|
--------------------------------------------
|
|
6
6
|
|
|
7
|
+
.. _v3.38.8:
|
|
8
|
+
|
|
9
|
+
:version:`3.38.8 <v3.38.7...v3.38.8>` - 2024-11-28
|
|
10
|
+
--------------------------------------------------
|
|
11
|
+
|
|
12
|
+
**Fixed**
|
|
13
|
+
|
|
14
|
+
- ``UnicodeEncodeError`` when sending a request during the coverage phase.
|
|
15
|
+
- Duplicated test cases for missing required headers during the coverage phase.
|
|
16
|
+
- Generating positive test cases when they are explicitly excluded via configuration during the coverage phase.
|
|
17
|
+
|
|
7
18
|
.. _v3.38.7:
|
|
8
19
|
|
|
9
20
|
:version:`3.38.7 <v3.38.6...v3.38.7>` - 2024-11-16
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "schemathesis"
|
|
7
|
-
version = "3.38.
|
|
7
|
+
version = "3.38.8"
|
|
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" }]
|
|
@@ -237,17 +237,17 @@ def _iter_coverage_cases(
|
|
|
237
237
|
template: dict[str, Any] = {}
|
|
238
238
|
responses = find_in_responses(operation)
|
|
239
239
|
for parameter in operation.iter_parameters():
|
|
240
|
+
location = parameter.location
|
|
241
|
+
name = parameter.name
|
|
240
242
|
schema = parameter.as_json_schema(operation, update_quantifiers=False)
|
|
241
243
|
for value in find_matching_in_responses(responses, parameter.name):
|
|
242
244
|
schema.setdefault("examples", []).append(value)
|
|
243
245
|
gen = coverage.cover_schema_iter(
|
|
244
|
-
coverage.CoverageContext(data_generation_methods=data_generation_methods), schema
|
|
246
|
+
coverage.CoverageContext(location=location, data_generation_methods=data_generation_methods), schema
|
|
245
247
|
)
|
|
246
248
|
value = next(gen, NOT_SET)
|
|
247
249
|
if isinstance(value, NotSet):
|
|
248
250
|
continue
|
|
249
|
-
location = parameter.location
|
|
250
|
-
name = parameter.name
|
|
251
251
|
container = template.setdefault(LOCATION_TO_CONTAINER[location], {})
|
|
252
252
|
if location in ("header", "cookie", "path", "query") and not isinstance(value.value, str):
|
|
253
253
|
container[name] = _stringify_value(value.value, location)
|
|
@@ -263,7 +263,7 @@ def _iter_coverage_cases(
|
|
|
263
263
|
if examples:
|
|
264
264
|
schema.setdefault("examples", []).extend(examples)
|
|
265
265
|
gen = coverage.cover_schema_iter(
|
|
266
|
-
coverage.CoverageContext(data_generation_methods=data_generation_methods), schema
|
|
266
|
+
coverage.CoverageContext(location="body", data_generation_methods=data_generation_methods), schema
|
|
267
267
|
)
|
|
268
268
|
value = next(gen, NOT_SET)
|
|
269
269
|
if isinstance(value, NotSet):
|
|
@@ -417,7 +417,7 @@ def _iter_coverage_cases(
|
|
|
417
417
|
subschema: dict[str, Any], _location: str, _container_name: str
|
|
418
418
|
) -> Generator[Case, None, None]:
|
|
419
419
|
for more in coverage.cover_schema_iter(
|
|
420
|
-
coverage.CoverageContext(data_generation_methods=[DataGenerationMethod.negative]),
|
|
420
|
+
coverage.CoverageContext(location=_location, data_generation_methods=[DataGenerationMethod.negative]),
|
|
421
421
|
subschema,
|
|
422
422
|
):
|
|
423
423
|
yield make_case(
|
|
@@ -432,17 +432,26 @@ def _iter_coverage_cases(
|
|
|
432
432
|
# 1. Generate only required properties
|
|
433
433
|
if required and all_params != required:
|
|
434
434
|
only_required = {k: v for k, v in base_container.items() if k in required}
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
435
|
+
if DataGenerationMethod.positive in data_generation_methods:
|
|
436
|
+
yield make_case(
|
|
437
|
+
only_required,
|
|
438
|
+
"Only required properties",
|
|
439
|
+
location,
|
|
440
|
+
container_name,
|
|
441
|
+
None,
|
|
442
|
+
DataGenerationMethod.positive,
|
|
443
|
+
)
|
|
438
444
|
if DataGenerationMethod.negative in data_generation_methods:
|
|
439
445
|
subschema = _combination_schema(only_required, required, parameter_set)
|
|
440
|
-
|
|
446
|
+
for case in _yield_negative(subschema, location, container_name):
|
|
447
|
+
# Already generated in one of the blocks above
|
|
448
|
+
if location != "path" and not case.meta.description.startswith("Missing required property"):
|
|
449
|
+
yield case
|
|
441
450
|
|
|
442
451
|
# 2. Generate combinations with required properties and one optional property
|
|
443
452
|
for opt_param in optional:
|
|
444
453
|
combo = {k: v for k, v in base_container.items() if k in required or k == opt_param}
|
|
445
|
-
if combo != base_container:
|
|
454
|
+
if combo != base_container and DataGenerationMethod.positive in data_generation_methods:
|
|
446
455
|
yield make_case(
|
|
447
456
|
combo,
|
|
448
457
|
f"All required properties and optional '{opt_param}'",
|
|
@@ -456,7 +465,7 @@ def _iter_coverage_cases(
|
|
|
456
465
|
yield from _yield_negative(subschema, location, container_name)
|
|
457
466
|
|
|
458
467
|
# 3. Generate one combination for each size from 2 to N-1 of optional parameters
|
|
459
|
-
if len(optional) > 1:
|
|
468
|
+
if len(optional) > 1 and DataGenerationMethod.positive in data_generation_methods:
|
|
460
469
|
for size in range(2, len(optional)):
|
|
461
470
|
for combination in combinations(optional, size):
|
|
462
471
|
combo = {k: v for k, v in base_container.items() if k in required or k in combination}
|
|
@@ -323,6 +323,15 @@ REPORT_TO_SERVICE = ReportToService()
|
|
|
323
323
|
multiple=True,
|
|
324
324
|
metavar="",
|
|
325
325
|
)
|
|
326
|
+
@grouped_option(
|
|
327
|
+
"--experimental-missing-required-header-allowed-statuses",
|
|
328
|
+
"missing_required_header_allowed_statuses",
|
|
329
|
+
help="Comma-separated list of status codes expected for test cases with a missing required header",
|
|
330
|
+
type=CsvListChoice(),
|
|
331
|
+
callback=callbacks.convert_status_codes,
|
|
332
|
+
metavar="",
|
|
333
|
+
envvar="SCHEMATHESIS_EXPERIMENTAL_MISSING_REQUIRED_HEADER_ALLOWED_STATUSES",
|
|
334
|
+
)
|
|
326
335
|
@grouped_option(
|
|
327
336
|
"--experimental-positive-data-acceptance-allowed-statuses",
|
|
328
337
|
"positive_data_acceptance_allowed_statuses",
|
|
@@ -855,6 +864,7 @@ def run(
|
|
|
855
864
|
set_cookie: dict[str, str],
|
|
856
865
|
set_path: dict[str, str],
|
|
857
866
|
experiments: list,
|
|
867
|
+
missing_required_header_allowed_statuses: list[str],
|
|
858
868
|
positive_data_acceptance_allowed_statuses: list[str],
|
|
859
869
|
negative_data_rejection_allowed_statuses: list[str],
|
|
860
870
|
checks: Iterable[str] = DEFAULT_CHECKS_NAMES,
|
|
@@ -1172,6 +1182,11 @@ def run(
|
|
|
1172
1182
|
selected_checks += (positive_data_acceptance,)
|
|
1173
1183
|
if positive_data_acceptance_allowed_statuses:
|
|
1174
1184
|
checks_config.positive_data_acceptance.allowed_statuses = positive_data_acceptance_allowed_statuses
|
|
1185
|
+
if missing_required_header_allowed_statuses:
|
|
1186
|
+
from ..specs.openapi.checks import missing_required_header
|
|
1187
|
+
|
|
1188
|
+
selected_checks += (missing_required_header,)
|
|
1189
|
+
checks_config.missing_required_header.allowed_statuses = missing_required_header_allowed_statuses
|
|
1175
1190
|
if negative_data_rejection_allowed_statuses:
|
|
1176
1191
|
checks_config.negative_data_rejection.allowed_statuses = negative_data_rejection_allowed_statuses
|
|
1177
1192
|
|
|
@@ -21,6 +21,7 @@ from ..internal.copy import fast_deepcopy
|
|
|
21
21
|
from ..specs.openapi.converter import update_pattern_in_schema
|
|
22
22
|
from ..specs.openapi.formats import STRING_FORMATS, get_default_format_strategies
|
|
23
23
|
from ..specs.openapi.patterns import update_quantifier
|
|
24
|
+
from ..transports.headers import has_invalid_characters, is_latin_1_encodable
|
|
24
25
|
from ._hypothesis import get_single_example
|
|
25
26
|
from ._methods import DataGenerationMethod
|
|
26
27
|
|
|
@@ -103,42 +104,55 @@ def cached_draw(strategy: st.SearchStrategy) -> Any:
|
|
|
103
104
|
@dataclass
|
|
104
105
|
class CoverageContext:
|
|
105
106
|
data_generation_methods: list[DataGenerationMethod]
|
|
106
|
-
|
|
107
|
+
location: str
|
|
108
|
+
path: list[str | int]
|
|
107
109
|
|
|
108
|
-
__slots__ = ("data_generation_methods", "
|
|
110
|
+
__slots__ = ("location", "data_generation_methods", "path")
|
|
109
111
|
|
|
110
112
|
def __init__(
|
|
111
113
|
self,
|
|
114
|
+
*,
|
|
115
|
+
location: str,
|
|
112
116
|
data_generation_methods: list[DataGenerationMethod] | None = None,
|
|
113
|
-
|
|
117
|
+
path: list[str | int] | None = None,
|
|
114
118
|
) -> None:
|
|
119
|
+
self.location = location
|
|
115
120
|
self.data_generation_methods = (
|
|
116
121
|
data_generation_methods if data_generation_methods is not None else DataGenerationMethod.all()
|
|
117
122
|
)
|
|
118
|
-
self.
|
|
123
|
+
self.path = path or []
|
|
119
124
|
|
|
120
125
|
@contextmanager
|
|
121
|
-
def
|
|
122
|
-
self.
|
|
126
|
+
def at(self, key: str | int) -> Generator[None, None, None]:
|
|
127
|
+
self.path.append(key)
|
|
123
128
|
try:
|
|
124
129
|
yield
|
|
125
130
|
finally:
|
|
126
|
-
self.
|
|
131
|
+
self.path.pop()
|
|
127
132
|
|
|
128
133
|
@property
|
|
129
|
-
def
|
|
130
|
-
return "/" + "/".join(str(key) for key in self.
|
|
134
|
+
def current_path(self) -> str:
|
|
135
|
+
return "/" + "/".join(str(key) for key in self.path)
|
|
131
136
|
|
|
132
137
|
def with_positive(self) -> CoverageContext:
|
|
133
138
|
return CoverageContext(
|
|
134
|
-
|
|
139
|
+
location=self.location,
|
|
140
|
+
data_generation_methods=[DataGenerationMethod.positive],
|
|
141
|
+
path=self.path,
|
|
135
142
|
)
|
|
136
143
|
|
|
137
144
|
def with_negative(self) -> CoverageContext:
|
|
138
145
|
return CoverageContext(
|
|
139
|
-
|
|
146
|
+
location=self.location,
|
|
147
|
+
data_generation_methods=[DataGenerationMethod.negative],
|
|
148
|
+
path=self.path,
|
|
140
149
|
)
|
|
141
150
|
|
|
151
|
+
def is_valid_for_location(self, value: Any) -> bool:
|
|
152
|
+
if self.location in ("header", "cookie") and isinstance(value, str):
|
|
153
|
+
return is_latin_1_encodable(value) and not has_invalid_characters("", value)
|
|
154
|
+
return True
|
|
155
|
+
|
|
142
156
|
def generate_from(self, strategy: st.SearchStrategy) -> Any:
|
|
143
157
|
return cached_draw(strategy)
|
|
144
158
|
|
|
@@ -322,7 +336,7 @@ def cover_schema_iter(
|
|
|
322
336
|
if DataGenerationMethod.negative in ctx.data_generation_methods:
|
|
323
337
|
template = None
|
|
324
338
|
for key, value in schema.items():
|
|
325
|
-
with _ignore_unfixable(), ctx.
|
|
339
|
+
with _ignore_unfixable(), ctx.at(key):
|
|
326
340
|
if key == "enum":
|
|
327
341
|
yield from _negative_enum(ctx, value, seen)
|
|
328
342
|
elif key == "const":
|
|
@@ -350,21 +364,17 @@ def cover_schema_iter(
|
|
|
350
364
|
elif key == "maximum":
|
|
351
365
|
next = value + 1
|
|
352
366
|
if next not in seen:
|
|
353
|
-
yield NegativeValue(
|
|
354
|
-
next, description="Value greater than maximum", location=ctx.current_location
|
|
355
|
-
)
|
|
367
|
+
yield NegativeValue(next, description="Value greater than maximum", location=ctx.current_path)
|
|
356
368
|
seen.add(next)
|
|
357
369
|
elif key == "minimum":
|
|
358
370
|
next = value - 1
|
|
359
371
|
if next not in seen:
|
|
360
|
-
yield NegativeValue(
|
|
361
|
-
next, description="Value smaller than minimum", location=ctx.current_location
|
|
362
|
-
)
|
|
372
|
+
yield NegativeValue(next, description="Value smaller than minimum", location=ctx.current_path)
|
|
363
373
|
seen.add(next)
|
|
364
374
|
elif key == "exclusiveMaximum" or key == "exclusiveMinimum" and value not in seen:
|
|
365
375
|
verb = "greater" if key == "exclusiveMaximum" else "smaller"
|
|
366
376
|
limit = "maximum" if key == "exclusiveMaximum" else "minimum"
|
|
367
|
-
yield NegativeValue(value, description=f"Value {verb} than {limit}", location=ctx.
|
|
377
|
+
yield NegativeValue(value, description=f"Value {verb} than {limit}", location=ctx.current_path)
|
|
368
378
|
seen.add(value)
|
|
369
379
|
elif key == "multipleOf":
|
|
370
380
|
for value_ in _negative_multiple_of(ctx, schema, value):
|
|
@@ -391,7 +401,7 @@ def cover_schema_iter(
|
|
|
391
401
|
k = _to_hashable_key(value)
|
|
392
402
|
if k not in seen:
|
|
393
403
|
yield NegativeValue(
|
|
394
|
-
value, description="String smaller than minLength", location=ctx.
|
|
404
|
+
value, description="String smaller than minLength", location=ctx.current_path
|
|
395
405
|
)
|
|
396
406
|
seen.add(k)
|
|
397
407
|
elif key == "maxLength" and value < BUFFER_SIZE:
|
|
@@ -413,7 +423,7 @@ def cover_schema_iter(
|
|
|
413
423
|
k = _to_hashable_key(value)
|
|
414
424
|
if k not in seen:
|
|
415
425
|
yield NegativeValue(
|
|
416
|
-
value, description="String larger than maxLength", location=ctx.
|
|
426
|
+
value, description="String larger than maxLength", location=ctx.current_path
|
|
417
427
|
)
|
|
418
428
|
seen.add(k)
|
|
419
429
|
except (InvalidArgument, Unsatisfiable):
|
|
@@ -428,12 +438,12 @@ def cover_schema_iter(
|
|
|
428
438
|
yield NegativeValue(
|
|
429
439
|
{**template, UNKNOWN_PROPERTY_KEY: UNKNOWN_PROPERTY_VALUE},
|
|
430
440
|
description="Object with unexpected properties",
|
|
431
|
-
location=ctx.
|
|
441
|
+
location=ctx.current_path,
|
|
432
442
|
)
|
|
433
443
|
elif key == "allOf":
|
|
434
444
|
nctx = ctx.with_negative()
|
|
435
445
|
if len(value) == 1:
|
|
436
|
-
with nctx.
|
|
446
|
+
with nctx.at(0):
|
|
437
447
|
yield from cover_schema_iter(nctx, value[0], seen)
|
|
438
448
|
else:
|
|
439
449
|
with _ignore_unfixable():
|
|
@@ -443,7 +453,7 @@ def cover_schema_iter(
|
|
|
443
453
|
nctx = ctx.with_negative()
|
|
444
454
|
# NOTE: Other sub-schemas are not filtered out
|
|
445
455
|
for idx, sub_schema in enumerate(value):
|
|
446
|
-
with nctx.
|
|
456
|
+
with nctx.at(idx):
|
|
447
457
|
yield from cover_schema_iter(nctx, sub_schema, seen)
|
|
448
458
|
|
|
449
459
|
|
|
@@ -487,15 +497,17 @@ def _positive_string(ctx: CoverageContext, schema: dict) -> Generator[GeneratedV
|
|
|
487
497
|
examples = schema.get("examples")
|
|
488
498
|
default = schema.get("default")
|
|
489
499
|
if example or examples or default:
|
|
490
|
-
if example:
|
|
500
|
+
if example and ctx.is_valid_for_location(example):
|
|
491
501
|
yield PositiveValue(example, description="Example value")
|
|
492
502
|
if examples:
|
|
493
503
|
for example in examples:
|
|
494
|
-
|
|
504
|
+
if ctx.is_valid_for_location(example):
|
|
505
|
+
yield PositiveValue(example, description="Example value")
|
|
495
506
|
if (
|
|
496
507
|
default
|
|
497
508
|
and not (example is not None and default == example)
|
|
498
509
|
and not (examples is not None and any(default == ex for ex in examples))
|
|
510
|
+
and ctx.is_valid_for_location(default)
|
|
499
511
|
):
|
|
500
512
|
yield PositiveValue(default, description="Default value")
|
|
501
513
|
elif not min_length and not max_length:
|
|
@@ -755,7 +767,7 @@ def _negative_enum(
|
|
|
755
767
|
|
|
756
768
|
strategy = (st.none() | st.booleans() | NUMERIC_STRATEGY | st.text()).filter(is_not_in_value)
|
|
757
769
|
value = ctx.generate_from(strategy)
|
|
758
|
-
yield NegativeValue(value, description="Invalid enum value", location=ctx.
|
|
770
|
+
yield NegativeValue(value, description="Invalid enum value", location=ctx.current_path)
|
|
759
771
|
hashed = _to_hashable_key(value)
|
|
760
772
|
seen.add(hashed)
|
|
761
773
|
|
|
@@ -765,12 +777,12 @@ def _negative_properties(
|
|
|
765
777
|
) -> Generator[GeneratedValue, None, None]:
|
|
766
778
|
nctx = ctx.with_negative()
|
|
767
779
|
for key, sub_schema in properties.items():
|
|
768
|
-
with nctx.
|
|
780
|
+
with nctx.at(key):
|
|
769
781
|
for value in cover_schema_iter(nctx, sub_schema):
|
|
770
782
|
yield NegativeValue(
|
|
771
783
|
{**template, key: value.value},
|
|
772
784
|
description=f"Object with invalid '{key}' value: {value.description}",
|
|
773
|
-
location=nctx.
|
|
785
|
+
location=nctx.current_path,
|
|
774
786
|
parameter=key,
|
|
775
787
|
)
|
|
776
788
|
|
|
@@ -784,12 +796,12 @@ def _negative_pattern_properties(
|
|
|
784
796
|
key = ctx.generate_from(st.from_regex(pattern))
|
|
785
797
|
except re.error:
|
|
786
798
|
continue
|
|
787
|
-
with nctx.
|
|
799
|
+
with nctx.at(pattern):
|
|
788
800
|
for value in cover_schema_iter(nctx, sub_schema):
|
|
789
801
|
yield NegativeValue(
|
|
790
802
|
{**template, key: value.value},
|
|
791
803
|
description=f"Object with invalid pattern key '{key}' ('{pattern}') value: {value.description}",
|
|
792
|
-
location=nctx.
|
|
804
|
+
location=nctx.current_path,
|
|
793
805
|
)
|
|
794
806
|
|
|
795
807
|
|
|
@@ -800,7 +812,7 @@ def _negative_items(ctx: CoverageContext, schema: dict[str, Any] | bool) -> Gene
|
|
|
800
812
|
yield NegativeValue(
|
|
801
813
|
[value.value],
|
|
802
814
|
description=f"Array with invalid items: {value.description}",
|
|
803
|
-
location=nctx.
|
|
815
|
+
location=nctx.current_path,
|
|
804
816
|
)
|
|
805
817
|
|
|
806
818
|
|
|
@@ -822,7 +834,7 @@ def _negative_pattern(
|
|
|
822
834
|
)
|
|
823
835
|
),
|
|
824
836
|
description=f"Value not matching the '{pattern}' pattern",
|
|
825
|
-
location=ctx.
|
|
837
|
+
location=ctx.current_path,
|
|
826
838
|
)
|
|
827
839
|
|
|
828
840
|
|
|
@@ -836,13 +848,13 @@ def _negative_multiple_of(
|
|
|
836
848
|
yield NegativeValue(
|
|
837
849
|
ctx.generate_from_schema(_with_negated_key(schema, "multipleOf", multiple_of)),
|
|
838
850
|
description=f"Non-multiple of {multiple_of}",
|
|
839
|
-
location=ctx.
|
|
851
|
+
location=ctx.current_path,
|
|
840
852
|
)
|
|
841
853
|
|
|
842
854
|
|
|
843
855
|
def _negative_unique_items(ctx: CoverageContext, schema: dict) -> Generator[GeneratedValue, None, None]:
|
|
844
856
|
unique = ctx.generate_from_schema({**schema, "type": "array", "minItems": 1, "maxItems": 1})
|
|
845
|
-
yield NegativeValue(unique + unique, description="Non-unique items", location=ctx.
|
|
857
|
+
yield NegativeValue(unique + unique, description="Non-unique items", location=ctx.current_path)
|
|
846
858
|
|
|
847
859
|
|
|
848
860
|
def _negative_required(
|
|
@@ -852,7 +864,7 @@ def _negative_required(
|
|
|
852
864
|
yield NegativeValue(
|
|
853
865
|
{k: v for k, v in template.items() if k != key},
|
|
854
866
|
description=f"Missing required property: {key}",
|
|
855
|
-
location=ctx.
|
|
867
|
+
location=ctx.current_path,
|
|
856
868
|
parameter=key,
|
|
857
869
|
)
|
|
858
870
|
|
|
@@ -878,7 +890,7 @@ def _negative_format(ctx: CoverageContext, schema: dict, format: str) -> Generat
|
|
|
878
890
|
yield NegativeValue(
|
|
879
891
|
ctx.generate_from(strategy),
|
|
880
892
|
description=f"Value not matching the '{format}' format",
|
|
881
|
-
location=ctx.
|
|
893
|
+
location=ctx.current_path,
|
|
882
894
|
)
|
|
883
895
|
|
|
884
896
|
|
|
@@ -901,7 +913,7 @@ def _negative_type(ctx: CoverageContext, seen: set, ty: str | list[str]) -> Gene
|
|
|
901
913
|
hashed = _to_hashable_key(value)
|
|
902
914
|
if hashed in seen:
|
|
903
915
|
continue
|
|
904
|
-
yield NegativeValue(value, description="Incorrect type", location=ctx.
|
|
916
|
+
yield NegativeValue(value, description="Incorrect type", location=ctx.current_path)
|
|
905
917
|
seen.add(hashed)
|
|
906
918
|
|
|
907
919
|
|
|
@@ -29,8 +29,14 @@ class PositiveDataAcceptanceConfig:
|
|
|
29
29
|
allowed_statuses: list[str] = field(default_factory=lambda: ["2xx", "401", "403", "404"])
|
|
30
30
|
|
|
31
31
|
|
|
32
|
+
@dataclass
|
|
33
|
+
class MissingRequiredHeaderConfig:
|
|
34
|
+
allowed_statuses: list[str] = field(default_factory=lambda: ["406"])
|
|
35
|
+
|
|
36
|
+
|
|
32
37
|
@dataclass
|
|
33
38
|
class CheckConfig:
|
|
39
|
+
missing_required_header: MissingRequiredHeaderConfig = field(default_factory=MissingRequiredHeaderConfig)
|
|
34
40
|
negative_data_rejection: NegativeDataRejectionConfig = field(default_factory=NegativeDataRejectionConfig)
|
|
35
41
|
positive_data_acceptance: PositiveDataAcceptanceConfig = field(default_factory=PositiveDataAcceptanceConfig)
|
|
36
42
|
|
|
@@ -269,6 +269,20 @@ def positive_data_acceptance(ctx: CheckContext, response: GenericResponse, case:
|
|
|
269
269
|
return None
|
|
270
270
|
|
|
271
271
|
|
|
272
|
+
def missing_required_header(ctx: CheckContext, response: GenericResponse, case: Case) -> bool | None:
|
|
273
|
+
if (
|
|
274
|
+
case.meta
|
|
275
|
+
and case.meta.parameter_location == "header"
|
|
276
|
+
and case.meta.description
|
|
277
|
+
and case.meta.description.startswith("Missing ")
|
|
278
|
+
):
|
|
279
|
+
config = ctx.config.missing_required_header
|
|
280
|
+
allowed_statuses = expand_status_codes(config.allowed_statuses or [])
|
|
281
|
+
if response.status_code not in allowed_statuses:
|
|
282
|
+
raise AssertionError(f"Unexpected response status for a missing header: {response.status_code}")
|
|
283
|
+
return None
|
|
284
|
+
|
|
285
|
+
|
|
272
286
|
def has_only_additional_properties_in_non_body_parameters(case: Case) -> bool:
|
|
273
287
|
# Check if the case contains only additional properties in query, headers, or cookies.
|
|
274
288
|
# This function is used to determine if negation is solely in the form of extra properties,
|
|
@@ -24,6 +24,10 @@ Experimental options:
|
|
|
24
24
|
schema-analysis, stateful-test-
|
|
25
25
|
runner, stateful-only, coverage-
|
|
26
26
|
phase, positive_data_acceptance]
|
|
27
|
+
--experimental-missing-required-header-allowed-statuses
|
|
28
|
+
Comma-separated list of status codes
|
|
29
|
+
expected for test cases with a
|
|
30
|
+
missing required header
|
|
27
31
|
--experimental-positive-data-acceptance-allowed-statuses
|
|
28
32
|
Comma-separated list of status codes
|
|
29
33
|
considered as successful responses
|
|
@@ -1959,7 +1959,6 @@ def test_long_operation_output(ctx, cli):
|
|
|
1959
1959
|
result = cli.run(str(schema_path), "--dry-run")
|
|
1960
1960
|
# Then this operation name should be truncated
|
|
1961
1961
|
assert result.exit_code == ExitCode.OK
|
|
1962
|
-
print(result.stdout)
|
|
1963
1962
|
assert "GET /aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[...] . [ 50%]" in result.stdout
|
|
1964
1963
|
assert "GET /aaaaaaaaaa . [100%]" in result.stdout
|
|
1965
1964
|
|
|
@@ -65,17 +65,17 @@ def assert_not_conform(values: list, schema: dict):
|
|
|
65
65
|
|
|
66
66
|
@pytest.fixture
|
|
67
67
|
def ctx():
|
|
68
|
-
return CoverageContext()
|
|
68
|
+
return CoverageContext(location="query")
|
|
69
69
|
|
|
70
70
|
|
|
71
71
|
@pytest.fixture
|
|
72
72
|
def pctx():
|
|
73
|
-
return CoverageContext(data_generation_methods=[DataGenerationMethod.positive])
|
|
73
|
+
return CoverageContext(location="query", data_generation_methods=[DataGenerationMethod.positive])
|
|
74
74
|
|
|
75
75
|
|
|
76
76
|
@pytest.fixture
|
|
77
77
|
def nctx():
|
|
78
|
-
return CoverageContext(data_generation_methods=[DataGenerationMethod.negative])
|
|
78
|
+
return CoverageContext(location="query", data_generation_methods=[DataGenerationMethod.negative])
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
@pytest.mark.parametrize(
|
|
@@ -1011,7 +1011,6 @@ def test_negative_combinators(nctx, schema, expected):
|
|
|
1011
1011
|
assert_not_conform(covered, schema)
|
|
1012
1012
|
break
|
|
1013
1013
|
else:
|
|
1014
|
-
print(covered)
|
|
1015
1014
|
pytest.fail("Expected value didn't match")
|
|
1016
1015
|
|
|
1017
1016
|
|