schemathesis 3.36.4__tar.gz → 3.37.0__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.36.4 → schemathesis-3.37.0}/.github/workflows/build.yml +1 -1
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/workflows/codeql-analysis.yml +3 -3
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.pre-commit-config.yaml +3 -3
- {schemathesis-3.36.4 → schemathesis-3.37.0}/PKG-INFO +2 -2
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/changelog.rst +18 -1
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/experimental.rst +43 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/pyproject.toml +2 -2
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/__init__.py +41 -5
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/callbacks.py +42 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/options.py +7 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/exceptions.py +4 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/experimental/__init__.py +7 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/failures.py +13 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/generation/_methods.py +4 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/generation/coverage.py +22 -8
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/hooks.py +2 -2
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/internal/checks.py +19 -1
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/lazy.py +4 -3
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/runner/__init__.py +9 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/runner/impl/context.py +11 -2
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/runner/impl/core.py +18 -5
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/checks.py +40 -3
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/utils.py +5 -1
- schemathesis-3.37.0/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args0].raw +34 -0
- schemathesis-3.37.0/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args10].raw +54 -0
- schemathesis-3.37.0/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args1].raw +34 -0
- schemathesis-3.37.0/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args2].raw +54 -0
- schemathesis-3.37.0/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args3].raw +34 -0
- schemathesis-3.37.0/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args4].raw +54 -0
- schemathesis-3.37.0/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args5].raw +34 -0
- schemathesis-3.37.0/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args6].raw +54 -0
- schemathesis-3.37.0/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args7].raw +34 -0
- schemathesis-3.37.0/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args8].raw +7 -0
- schemathesis-3.37.0/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args9].raw +7 -0
- schemathesis-3.37.0/test/cli/__snapshots__/test_checks/test_positive_data_acceptance_with_env_vars.raw +54 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +19 -9
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/test_callbacks.py +32 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/test_checks.py +75 -1
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/test_commands.py +2 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/code_samples/test_curl.py +1 -1
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/conftest.py +11 -3
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/coverage/test_combinations.py +15 -2
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/hooks/test_hooks.py +0 -17
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/test_cli.py +5 -1
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/graphql/test_basic.py +11 -25
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_checks.py +56 -1
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_lazy.py +36 -12
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_recoverable_errors.py +14 -2
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.dockerignore +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/FUNDING.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/dependabot.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/workflows/codspeed.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/workflows/commit.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/workflows/example-build.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/workflows/example-no-build.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/workflows/master_update.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/workflows/release.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/workflows/test-corpus.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/workflows/test-hypothesis.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.github/workflows/update-pre-commit.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.gitignore +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.readthedocs.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.relint.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.rstcheck.cfg +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/.yamllint +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/CITATION.cff +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/CONTRIBUTING.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/Dockerfile +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/Dockerfile.bookworm +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/LICENSE +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/README.md +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/benches/cli.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/benches/coverage_phase.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/benches/references.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/benches/schema.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/changelog.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/codecov.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/corpus/data/graphql.tar.gz +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/corpus/data/openapi-3.0.tar.gz +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/corpus/data/openapi-3.1.tar.gz +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/corpus/data/swagger-2.0.tar.gz +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/corpus/tools.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/Makefile +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/additional-content.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/api.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/auth.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/cli.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/compatibility.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/conf.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/continuous_integration.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/contrib.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/data-generation.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/examples.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/extending.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/faq.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/getting-started.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/graphql.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/index.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/python.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/recipes.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/requirements.txt +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/sanitizing.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/service.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/stateful.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/docs/targeted.rst +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/example/Dockerfile +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/example/README.md +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/example/app.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/example/compose.yml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/example/openapi.json +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/example/requirements-app.in +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/example/requirements-app.txt +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/example/requirements-pytest.in +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/example/requirements-pytest.txt +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/example/tests/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/example/tests/conftest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/example/tests/extensions.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/example/tests/test_app.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/img/demo.gif +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/img/service_github_report.png +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/mypy.ini +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/_compat.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/_dependency_versions.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/_hypothesis.py +1 -1
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/_lazy_import.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/_override.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/_rate_limiter.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/_xml.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/auths.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/checks.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/__main__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/cassettes.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/context.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/debug.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/handlers.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/junitxml.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/output/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/output/default.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/output/short.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/reporting.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/cli/sanitization.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/code_samples.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/constants.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/contrib/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/contrib/openapi/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/contrib/unique_data.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/extra/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/extra/_aiohttp.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/extra/_flask.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/extra/_server.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/extra/pytest_plugin.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/filters.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/fixups/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/fixups/fast_api.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/fixups/utf8_bom.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/generation/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/generation/_hypothesis.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/graphql.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/internal/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/internal/copy.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/internal/datetime.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/internal/deprecation.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/internal/extensions.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/internal/jsonschema.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/internal/output.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/internal/result.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/internal/transformation.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/internal/validation.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/loaders.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/models.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/parameters.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/py.typed +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/runner/events.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/runner/impl/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/runner/impl/solo.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/runner/impl/threadpool.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/runner/probes.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/runner/serialization.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/sanitization.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/schemas.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/serializers.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/service/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/service/auth.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/service/ci.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/service/client.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/service/constants.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/service/events.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/service/extensions.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/service/hosts.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/service/metadata.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/service/models.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/service/report.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/service/serialization.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/service/usage.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/graphql/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/graphql/_cache.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/graphql/loaders.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/graphql/schemas.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/_cache.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/converter.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/examples.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/formats.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/links.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/loaders.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/media_types.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/patterns.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/schemas.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/security.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/serialization.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/stateful/statistic.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/stateful/types.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/specs/openapi/validation.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/stateful/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/stateful/config.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/stateful/context.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/stateful/events.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/stateful/runner.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/stateful/sink.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/stateful/state_machine.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/stateful/statistic.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/stateful/validation.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/targets.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/throttling.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/transports/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/transports/asgi.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/transports/auth.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/transports/content_types.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/transports/headers.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/transports/responses.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/types.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/src/schemathesis/utils.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/cp1252_app.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/hooks.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/openapi/_aiohttp/handlers.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/apps/openapi/schema.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/auth/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/auth/conftest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/auth/test_cli.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/auth/test_provider.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/auth/test_pytest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/checks/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/checks/test_checks.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_checks/test_deduplication_on_sanitized_header.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_deprecated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_filtered_out[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_generation_config[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_keyboard_interrupt[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_max_failures[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only_with_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args37].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_stateful_explicit_examples_with_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_unresolvable_links[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/cert.pem +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/conftest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/output/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/output/test_default.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/test_asgi.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/test_cassettes.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/test_crashes.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/test_hooks.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/test_junitxml.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/test_options.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/test_reporting.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/cli/test_targeted.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/code_samples/conftest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/code_samples/test_python.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/contrib/openapi/formats/test_uuid.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/contrib/test_install.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/contrib/test_unique_data.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/coverage/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/coverage/test_examples.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/coverage/test_phase.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/data/relative_files/components/parameters.yaml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/data/relative_files/components/responses.yaml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/data/relative_files/components/schemas.yaml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/data/relative_files/main.yaml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/data/relative_files/paths/user-account.yaml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/experimental/conftest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/experimental/test_experiments.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/experimental/test_openapi_3_1.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/extra/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/extra/test_aiohttp.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/filters/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/filters/test_expressions.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/filters/test_matching.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/hooks/test_filter_operations.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/hooks/test_filters.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/loaders/conftest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/loaders/test_app.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/loaders/test_common.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/loaders/test_graphql.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/loaders/test_openapi.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/loaders/test_yaml.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/runner/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/runner/test_checks.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/runner/test_events.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/runner/test_probes.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/runner/test_runner.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_cli/test_client_error_on_project_details[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_cli/test_unauthorized[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_custom_format.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/conftest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/test_auth.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/test_ci.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/test_extensions.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/test_report.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/test_serialization.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/service/test_usage.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/graphql/test_pytest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/__snapshots__/test_ignored_auth/test_explicit_auth_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-False].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-True].raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/blank.pdf +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/parameters/test_forms.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/parameters/test_non_payload.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/stateful/conftest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/stateful/test_config.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/stateful/test_runner.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/stateful/test_stateful.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_examples.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_hypothesis.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_ignored_auth.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_links.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_media_types.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_negative.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_patterns.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_randomized.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_security.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_serializing.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/specs/openapi/test_validation.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_app.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_asgi.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_async.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_common_parameters.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_converter.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_dereferencing.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_direct_access.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_examples.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_filters.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_fixups.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_hypothesis.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_internal.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_models.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_output.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_package.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_parameters.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_parametrization.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_petstore.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_pytest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_rate_limit.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_required.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_sanitizing_output.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_schemas.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_serialization.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_stateful.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_unittest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_utils.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/test_wsgi.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/transports/test_content_types.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test/utils.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test-corpus/conftest.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test-corpus/test_corpus.py +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/test_server.sh +0 -0
- {schemathesis-3.36.4 → schemathesis-3.37.0}/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.26.
|
|
41
|
+
uses: github/codeql-action/init@v3.26.11
|
|
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.26.
|
|
52
|
+
uses: github/codeql-action/autobuild@v3.26.11
|
|
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.26.
|
|
66
|
+
uses: github/codeql-action/analyze@v3.26.11
|
|
@@ -3,7 +3,7 @@ default_language_version:
|
|
|
3
3
|
|
|
4
4
|
repos:
|
|
5
5
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
6
|
-
rev:
|
|
6
|
+
rev: v5.0.0
|
|
7
7
|
hooks:
|
|
8
8
|
- id: check-yaml
|
|
9
9
|
- id: end-of-file-fixer
|
|
@@ -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.6.
|
|
41
|
+
rev: v0.6.9
|
|
42
42
|
hooks:
|
|
43
43
|
- id: ruff-format
|
|
44
44
|
|
|
45
45
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
46
|
-
rev: v0.6.
|
|
46
|
+
rev: v0.6.9
|
|
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.
|
|
3
|
+
Version: 3.37.0
|
|
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
|
|
@@ -40,7 +40,7 @@ Requires-Dist: hypothesis[zoneinfo]<7,>=6.103.4; python_version == '3.8'
|
|
|
40
40
|
Requires-Dist: jsonschema[format]<5.0,>=4.18.0
|
|
41
41
|
Requires-Dist: junit-xml<2.0,>=1.9
|
|
42
42
|
Requires-Dist: pyrate-limiter<4.0,>=2.10
|
|
43
|
-
Requires-Dist: pytest-subtests<0.
|
|
43
|
+
Requires-Dist: pytest-subtests<0.14.0,>=0.2.1
|
|
44
44
|
Requires-Dist: pytest<9,>=4.6.4
|
|
45
45
|
Requires-Dist: pyyaml<7.0,>=5.1
|
|
46
46
|
Requires-Dist: requests<3,>=2.22
|
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
-
:version:`Unreleased <v3.
|
|
4
|
+
:version:`Unreleased <v3.37.0...HEAD>` - TBD
|
|
5
5
|
--------------------------------------------
|
|
6
6
|
|
|
7
|
+
.. _v3.37.0:
|
|
8
|
+
|
|
9
|
+
:version:`3.37.0 <v3.36.4...v3.37.0>` - 2024-10-09
|
|
10
|
+
--------------------------------------------------
|
|
11
|
+
|
|
12
|
+
**Added**
|
|
13
|
+
|
|
14
|
+
- Support for ``pytest-subtests`` up to ``0.14``.
|
|
15
|
+
- Experimental "Positive Data Acceptance" check to verify that schema-conforming data receives 2xx status responses. Enable with `--experimental=positive_data_acceptance`
|
|
16
|
+
- Experimental CLI options to configure the ``negative_data_rejection`` check.
|
|
17
|
+
- More negative string combinations with patterns in the coverage phase.
|
|
18
|
+
|
|
19
|
+
**Fixed**
|
|
20
|
+
|
|
21
|
+
- Internal error in conditional hooks.
|
|
22
|
+
- Negative test cases for patterns in the coverage phase.
|
|
23
|
+
|
|
7
24
|
.. _v3.36.4:
|
|
8
25
|
|
|
9
26
|
:version:`3.36.4 <v3.36.3...v3.36.4>` - 2024-10-05
|
|
@@ -144,6 +144,49 @@ Using Environment Variables
|
|
|
144
144
|
|
|
145
145
|
For more details, join the `GitHub Discussion #2418 <https://github.com/schemathesis/schemathesis/discussions/2418>`_.
|
|
146
146
|
|
|
147
|
+
Positive Data Acceptance
|
|
148
|
+
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
149
|
+
|
|
150
|
+
Verifies that schema-conforming data receives 2xx status responses, highlighting mismatches between schema and API behavior across all endpoints.
|
|
151
|
+
|
|
152
|
+
**Allowed status codes**: 2xx, 401, 403, 404
|
|
153
|
+
|
|
154
|
+
**Note**: May produce false positives with complex validation that is not reflected in the schema.
|
|
155
|
+
|
|
156
|
+
.. _positive-data-acceptance-cli:
|
|
157
|
+
|
|
158
|
+
In CLI
|
|
159
|
+
~~~~~~
|
|
160
|
+
|
|
161
|
+
.. code-block:: bash
|
|
162
|
+
|
|
163
|
+
st run https://example.schemathesis.io/openapi.json --experimental=positive_data_acceptance
|
|
164
|
+
|
|
165
|
+
Configuration options:
|
|
166
|
+
|
|
167
|
+
.. code-block:: bash
|
|
168
|
+
|
|
169
|
+
--experimental-positive-data-acceptance-allowed-statuses=202
|
|
170
|
+
|
|
171
|
+
.. _positive-data-acceptance-env-vars:
|
|
172
|
+
|
|
173
|
+
Using Environment Variables
|
|
174
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
175
|
+
|
|
176
|
+
To enable Positive Data Acceptance via environment variables:
|
|
177
|
+
|
|
178
|
+
.. code-block:: bash
|
|
179
|
+
|
|
180
|
+
export SCHEMATHESIS_EXPERIMENTAL_POSITIVE_DATA_ACCEPTANCE=true
|
|
181
|
+
|
|
182
|
+
Configure status codes:
|
|
183
|
+
|
|
184
|
+
.. code-block:: bash
|
|
185
|
+
|
|
186
|
+
export SCHEMATHESIS_EXPERIMENTAL_POSITIVE_DATA_ACCEPTANCE_ALLOWED_STATUSES=201,202,204
|
|
187
|
+
|
|
188
|
+
For more details, join the `GitHub Discussion #2499 <https://github.com/schemathesis/schemathesis/discussions/2499>`_.
|
|
189
|
+
|
|
147
190
|
.. _stateful-test-runner:
|
|
148
191
|
|
|
149
192
|
New Stateful Test Runner
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "schemathesis"
|
|
7
|
-
version = "3.
|
|
7
|
+
version = "3.37.0"
|
|
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" }]
|
|
@@ -43,7 +43,7 @@ dependencies = [
|
|
|
43
43
|
"jsonschema[format]>=4.18.0,<5.0",
|
|
44
44
|
"junit-xml>=1.9,<2.0",
|
|
45
45
|
"pyrate-limiter>=2.10,<4.0",
|
|
46
|
-
"pytest-subtests>=0.2.1,<0.
|
|
46
|
+
"pytest-subtests>=0.2.1,<0.14.0",
|
|
47
47
|
"pytest>=4.6.4,<9",
|
|
48
48
|
"PyYAML>=5.1,<7.0",
|
|
49
49
|
"requests>=2.22,<3",
|
|
@@ -36,6 +36,7 @@ from ..filters import FilterSet, expression_to_filter_function, is_deprecated
|
|
|
36
36
|
from ..fixups import ALL_FIXUPS
|
|
37
37
|
from ..generation import DEFAULT_DATA_GENERATION_METHODS, DataGenerationMethod
|
|
38
38
|
from ..hooks import GLOBAL_HOOK_DISPATCHER, HookContext, HookDispatcher, HookScope
|
|
39
|
+
from ..internal.checks import CheckConfig, PositiveDataAcceptanceConfig
|
|
39
40
|
from ..internal.datetime import current_datetime
|
|
40
41
|
from ..internal.output import OutputConfig
|
|
41
42
|
from ..internal.validation import file_exists
|
|
@@ -52,7 +53,7 @@ from .context import ExecutionContext, FileReportContext, ServiceReportContext
|
|
|
52
53
|
from .debug import DebugOutputHandler
|
|
53
54
|
from .handlers import EventHandler
|
|
54
55
|
from .junitxml import JunitXMLHandler
|
|
55
|
-
from .options import CsvChoice, CsvEnumChoice, CustomHelpMessageChoice, OptionalInt
|
|
56
|
+
from .options import CsvChoice, CsvEnumChoice, CsvListChoice, CustomHelpMessageChoice, OptionalInt
|
|
56
57
|
from .sanitization import SanitizationHandler
|
|
57
58
|
|
|
58
59
|
if TYPE_CHECKING:
|
|
@@ -296,6 +297,14 @@ REPORT_TO_SERVICE = ReportToService()
|
|
|
296
297
|
default=False,
|
|
297
298
|
help="Simulate test execution without making any actual requests, useful for validating data generation",
|
|
298
299
|
)
|
|
300
|
+
@grouped_option(
|
|
301
|
+
"--fixups",
|
|
302
|
+
help="Apply compatibility adjustments",
|
|
303
|
+
multiple=True,
|
|
304
|
+
type=click.Choice([*ALL_FIXUPS, "all"]),
|
|
305
|
+
metavar="",
|
|
306
|
+
)
|
|
307
|
+
@group("Experimental options")
|
|
299
308
|
@grouped_option(
|
|
300
309
|
"--experimental",
|
|
301
310
|
"experiments",
|
|
@@ -307,6 +316,7 @@ REPORT_TO_SERVICE = ReportToService()
|
|
|
307
316
|
experimental.STATEFUL_TEST_RUNNER.name,
|
|
308
317
|
experimental.STATEFUL_ONLY.name,
|
|
309
318
|
experimental.COVERAGE_PHASE.name,
|
|
319
|
+
experimental.POSITIVE_DATA_ACCEPTANCE.name,
|
|
310
320
|
]
|
|
311
321
|
),
|
|
312
322
|
callback=callbacks.convert_experimental,
|
|
@@ -314,11 +324,22 @@ REPORT_TO_SERVICE = ReportToService()
|
|
|
314
324
|
metavar="",
|
|
315
325
|
)
|
|
316
326
|
@grouped_option(
|
|
317
|
-
"--
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
type=
|
|
327
|
+
"--experimental-positive-data-acceptance-allowed-statuses",
|
|
328
|
+
"positive_data_acceptance_allowed_statuses",
|
|
329
|
+
help="Comma-separated list of status codes considered as successful responses",
|
|
330
|
+
type=CsvListChoice(),
|
|
331
|
+
callback=callbacks.convert_status_codes,
|
|
332
|
+
metavar="",
|
|
333
|
+
envvar="SCHEMATHESIS_EXPERIMENTAL_POSITIVE_DATA_ACCEPTANCE_ALLOWED_STATUSES",
|
|
334
|
+
)
|
|
335
|
+
@grouped_option(
|
|
336
|
+
"--experimental-negative-data-rejection-allowed-statuses",
|
|
337
|
+
"negative_data_rejection_allowed_statuses",
|
|
338
|
+
help="Comma-separated list of status codes expected for rejected negative data",
|
|
339
|
+
type=CsvListChoice(),
|
|
340
|
+
callback=callbacks.convert_status_codes,
|
|
321
341
|
metavar="",
|
|
342
|
+
envvar="SCHEMATHESIS_EXPERIMENTAL_NEGATIVE_DATA_REJECTION_ALLOWED_STATUSES",
|
|
322
343
|
)
|
|
323
344
|
@group("API validation options")
|
|
324
345
|
@grouped_option(
|
|
@@ -834,6 +855,8 @@ def run(
|
|
|
834
855
|
set_cookie: dict[str, str],
|
|
835
856
|
set_path: dict[str, str],
|
|
836
857
|
experiments: list,
|
|
858
|
+
positive_data_acceptance_allowed_statuses: list[str],
|
|
859
|
+
negative_data_rejection_allowed_statuses: list[str],
|
|
837
860
|
checks: Iterable[str] = DEFAULT_CHECKS_NAMES,
|
|
838
861
|
exclude_checks: Iterable[str] = (),
|
|
839
862
|
data_generation_methods: tuple[DataGenerationMethod, ...] = DEFAULT_DATA_GENERATION_METHODS,
|
|
@@ -1142,6 +1165,16 @@ def run(
|
|
|
1142
1165
|
else:
|
|
1143
1166
|
selected_checks = tuple(check for check in checks_module.ALL_CHECKS if check.__name__ in checks)
|
|
1144
1167
|
|
|
1168
|
+
checks_config = CheckConfig()
|
|
1169
|
+
if experimental.POSITIVE_DATA_ACCEPTANCE.is_enabled:
|
|
1170
|
+
from ..specs.openapi.checks import positive_data_acceptance
|
|
1171
|
+
|
|
1172
|
+
selected_checks += (positive_data_acceptance,)
|
|
1173
|
+
if positive_data_acceptance_allowed_statuses:
|
|
1174
|
+
checks_config.positive_data_acceptance.allowed_statuses = positive_data_acceptance_allowed_statuses
|
|
1175
|
+
if negative_data_rejection_allowed_statuses:
|
|
1176
|
+
checks_config.negative_data_rejection.allowed_statuses = negative_data_rejection_allowed_statuses
|
|
1177
|
+
|
|
1145
1178
|
selected_checks = tuple(check for check in selected_checks if check.__name__ not in exclude_checks)
|
|
1146
1179
|
|
|
1147
1180
|
if fixups:
|
|
@@ -1197,6 +1230,7 @@ def run(
|
|
|
1197
1230
|
stateful_recursion_limit=stateful_recursion_limit,
|
|
1198
1231
|
hypothesis_settings=hypothesis_settings,
|
|
1199
1232
|
generation_config=generation_config,
|
|
1233
|
+
checks_config=checks_config,
|
|
1200
1234
|
output_config=output_config,
|
|
1201
1235
|
service_client=client,
|
|
1202
1236
|
filter_set=filter_set,
|
|
@@ -1300,6 +1334,7 @@ def into_event_stream(
|
|
|
1300
1334
|
filter_set: FilterSet,
|
|
1301
1335
|
# Runtime behavior
|
|
1302
1336
|
checks: Iterable[CheckFunction],
|
|
1337
|
+
checks_config: CheckConfig,
|
|
1303
1338
|
max_response_time: int | None,
|
|
1304
1339
|
targets: Iterable[Target],
|
|
1305
1340
|
workers_num: int,
|
|
@@ -1358,6 +1393,7 @@ def into_event_stream(
|
|
|
1358
1393
|
dry_run=dry_run,
|
|
1359
1394
|
store_interactions=store_interactions,
|
|
1360
1395
|
checks=checks,
|
|
1396
|
+
checks_config=checks_config,
|
|
1361
1397
|
max_response_time=max_response_time,
|
|
1362
1398
|
targets=targets,
|
|
1363
1399
|
workers_num=workers_num,
|
|
@@ -344,6 +344,48 @@ def convert_checks(ctx: click.core.Context, param: click.core.Parameter, value:
|
|
|
344
344
|
return reduce(operator.iadd, value, [])
|
|
345
345
|
|
|
346
346
|
|
|
347
|
+
def convert_status_codes(
|
|
348
|
+
ctx: click.core.Context, param: click.core.Parameter, value: list[str] | None
|
|
349
|
+
) -> list[str] | None:
|
|
350
|
+
if not value:
|
|
351
|
+
return value
|
|
352
|
+
|
|
353
|
+
invalid = []
|
|
354
|
+
|
|
355
|
+
for code in value:
|
|
356
|
+
if len(code) != 3:
|
|
357
|
+
invalid.append(code)
|
|
358
|
+
continue
|
|
359
|
+
|
|
360
|
+
if code[0] not in {"1", "2", "3", "4", "5"}:
|
|
361
|
+
invalid.append(code)
|
|
362
|
+
continue
|
|
363
|
+
|
|
364
|
+
upper_code = code.upper()
|
|
365
|
+
|
|
366
|
+
if "X" in upper_code:
|
|
367
|
+
if (
|
|
368
|
+
upper_code[1:] == "XX"
|
|
369
|
+
or (upper_code[1] == "X" and upper_code[2].isdigit())
|
|
370
|
+
or (upper_code[1].isdigit() and upper_code[2] == "X")
|
|
371
|
+
):
|
|
372
|
+
continue
|
|
373
|
+
else:
|
|
374
|
+
invalid.append(code)
|
|
375
|
+
continue
|
|
376
|
+
|
|
377
|
+
if not code.isnumeric():
|
|
378
|
+
invalid.append(code)
|
|
379
|
+
|
|
380
|
+
if invalid:
|
|
381
|
+
raise click.UsageError(
|
|
382
|
+
f"Invalid status code(s): {', '.join(invalid)}. "
|
|
383
|
+
"Use valid 3-digit codes between 100 and 599, "
|
|
384
|
+
"or wildcards (e.g., 2XX, 2X0, 20X), where X is a wildcard digit."
|
|
385
|
+
)
|
|
386
|
+
return value
|
|
387
|
+
|
|
388
|
+
|
|
347
389
|
def convert_code_sample_style(ctx: click.core.Context, param: click.core.Parameter, value: str) -> CodeSampleStyle:
|
|
348
390
|
return CodeSampleStyle.from_str(value)
|
|
349
391
|
|
|
@@ -58,6 +58,13 @@ class CsvChoice(BaseCsvChoice):
|
|
|
58
58
|
self.fail_on_invalid_options(invalid_options, selected)
|
|
59
59
|
|
|
60
60
|
|
|
61
|
+
class CsvListChoice(click.ParamType):
|
|
62
|
+
def convert( # type: ignore[return]
|
|
63
|
+
self, value: str, param: click.core.Parameter | None, ctx: click.core.Context | None
|
|
64
|
+
) -> list[str]:
|
|
65
|
+
return [item for item in value.split(",") if item]
|
|
66
|
+
|
|
67
|
+
|
|
61
68
|
class OptionalInt(click.types.IntRange):
|
|
62
69
|
def convert( # type: ignore
|
|
63
70
|
self, value: str, param: click.core.Parameter | None, ctx: click.core.Context | None
|
|
@@ -148,6 +148,10 @@ def get_negative_rejection_error(prefix: str, status: int) -> type[CheckFailed]:
|
|
|
148
148
|
return _get_hashed_exception(f"AcceptedNegativeDataError{prefix}", str(status))
|
|
149
149
|
|
|
150
150
|
|
|
151
|
+
def get_positive_acceptance_error(prefix: str, status: int) -> type[CheckFailed]:
|
|
152
|
+
return _get_hashed_exception(f"RejectedPositiveDataError{prefix}", str(status))
|
|
153
|
+
|
|
154
|
+
|
|
151
155
|
def get_use_after_free_error(free: str) -> type[CheckFailed]:
|
|
152
156
|
return _get_hashed_exception("UseAfterFreeError", free)
|
|
153
157
|
|
|
@@ -100,3 +100,10 @@ COVERAGE_PHASE = GLOBAL_EXPERIMENTS.create_experiment(
|
|
|
100
100
|
description="Generate covering test cases",
|
|
101
101
|
discussion_url="https://github.com/schemathesis/schemathesis/discussions/2418",
|
|
102
102
|
)
|
|
103
|
+
POSITIVE_DATA_ACCEPTANCE = GLOBAL_EXPERIMENTS.create_experiment(
|
|
104
|
+
name="positive_data_acceptance",
|
|
105
|
+
verbose_name="Positive Data Acceptance",
|
|
106
|
+
env_var="POSITIVE_DATA_ACCEPTANCE",
|
|
107
|
+
description="Verifying schema-conformant data is accepted",
|
|
108
|
+
discussion_url="https://github.com/schemathesis/schemathesis/discussions/2499",
|
|
109
|
+
)
|
|
@@ -137,10 +137,23 @@ class AcceptedNegativeData(FailureContext):
|
|
|
137
137
|
"""Response with negative data was accepted."""
|
|
138
138
|
|
|
139
139
|
message: str
|
|
140
|
+
status_code: int
|
|
141
|
+
allowed_statuses: list[str]
|
|
140
142
|
title: str = "Accepted negative data"
|
|
141
143
|
type: str = "accepted_negative_data"
|
|
142
144
|
|
|
143
145
|
|
|
146
|
+
@dataclass(repr=False)
|
|
147
|
+
class RejectedPositiveData(FailureContext):
|
|
148
|
+
"""Response with positive data was rejected."""
|
|
149
|
+
|
|
150
|
+
message: str
|
|
151
|
+
status_code: int
|
|
152
|
+
allowed_statuses: list[str]
|
|
153
|
+
title: str = "Rejected positive data"
|
|
154
|
+
type: str = "rejected_positive_data"
|
|
155
|
+
|
|
156
|
+
|
|
144
157
|
@dataclass(repr=False)
|
|
145
158
|
class UseAfterFree(FailureContext):
|
|
146
159
|
"""Resource was used after a successful DELETE operation on it."""
|
|
@@ -26,6 +26,10 @@ class DataGenerationMethod(str, Enum):
|
|
|
26
26
|
DataGenerationMethod.negative: "N",
|
|
27
27
|
}[self]
|
|
28
28
|
|
|
29
|
+
@property
|
|
30
|
+
def is_positive(self) -> bool:
|
|
31
|
+
return self == DataGenerationMethod.positive
|
|
32
|
+
|
|
29
33
|
@property
|
|
30
34
|
def is_negative(self) -> bool:
|
|
31
35
|
return self == DataGenerationMethod.negative
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
import json
|
|
4
3
|
import functools
|
|
4
|
+
import json
|
|
5
|
+
import re
|
|
5
6
|
from contextlib import contextmanager, suppress
|
|
6
7
|
from dataclasses import dataclass
|
|
7
|
-
from functools import lru_cache
|
|
8
|
+
from functools import lru_cache, partial
|
|
8
9
|
from itertools import combinations
|
|
9
10
|
from typing import Any, Generator, Iterator, TypeVar, cast
|
|
10
11
|
|
|
@@ -14,8 +15,8 @@ from hypothesis.errors import InvalidArgument, Unsatisfiable
|
|
|
14
15
|
from hypothesis_jsonschema import from_schema
|
|
15
16
|
from hypothesis_jsonschema._canonicalise import canonicalish
|
|
16
17
|
|
|
17
|
-
from
|
|
18
|
-
|
|
18
|
+
from ..constants import NOT_SET
|
|
19
|
+
from ..specs.openapi.patterns import update_quantifier
|
|
19
20
|
from ._hypothesis import get_single_example
|
|
20
21
|
from ._methods import DataGenerationMethod
|
|
21
22
|
|
|
@@ -233,14 +234,23 @@ def cover_schema_iter(
|
|
|
233
234
|
seen.add(k)
|
|
234
235
|
elif key == "minLength" and 0 < value < BUFFER_SIZE:
|
|
235
236
|
with suppress(InvalidArgument):
|
|
236
|
-
|
|
237
|
+
min_length = max_length = value - 1
|
|
238
|
+
new_schema = {**schema, "minLength": min_length, "maxLength": max_length}
|
|
239
|
+
if "pattern" in new_schema:
|
|
240
|
+
new_schema["pattern"] = update_quantifier(schema["pattern"], min_length, max_length)
|
|
241
|
+
value = ctx.generate_from_schema(new_schema)
|
|
237
242
|
k = _to_hashable_key(value)
|
|
238
243
|
if k not in seen:
|
|
239
244
|
yield NegativeValue(value, description="String smaller than minLength")
|
|
240
245
|
seen.add(k)
|
|
241
246
|
elif key == "maxLength" and value < BUFFER_SIZE:
|
|
242
|
-
with suppress(InvalidArgument):
|
|
243
|
-
|
|
247
|
+
with suppress(InvalidArgument, Unsatisfiable):
|
|
248
|
+
min_length = value + 1
|
|
249
|
+
max_length = value + 1
|
|
250
|
+
new_schema = {**schema, "minLength": min_length, "maxLength": max_length}
|
|
251
|
+
if "pattern" in new_schema:
|
|
252
|
+
new_schema["pattern"] = update_quantifier(schema["pattern"], min_length, max_length)
|
|
253
|
+
value = ctx.generate_from_schema(new_schema)
|
|
244
254
|
k = _to_hashable_key(value)
|
|
245
255
|
if k not in seen:
|
|
246
256
|
yield NegativeValue(value, description="String larger than maxLength")
|
|
@@ -586,9 +596,13 @@ def _negative_properties(
|
|
|
586
596
|
)
|
|
587
597
|
|
|
588
598
|
|
|
599
|
+
def _not_matching_pattern(value: str, pattern: str) -> bool:
|
|
600
|
+
return re.search(pattern, value) is None
|
|
601
|
+
|
|
602
|
+
|
|
589
603
|
def _negative_pattern(ctx: CoverageContext, pattern: str) -> Generator[GeneratedValue, None, None]:
|
|
590
604
|
yield NegativeValue(
|
|
591
|
-
ctx.generate_from(st.text().filter(pattern
|
|
605
|
+
ctx.generate_from(st.text().filter(partial(_not_matching_pattern, pattern=pattern))),
|
|
592
606
|
description=f"Value not matching the '{pattern}' pattern",
|
|
593
607
|
)
|
|
594
608
|
|
|
@@ -285,9 +285,9 @@ class HookDispatcher:
|
|
|
285
285
|
self._hooks = defaultdict(list)
|
|
286
286
|
|
|
287
287
|
|
|
288
|
-
def _should_skip_hook(hook: Callable,
|
|
288
|
+
def _should_skip_hook(hook: Callable, ctx: HookContext) -> bool:
|
|
289
289
|
filter_set = getattr(hook, "filter_set", None)
|
|
290
|
-
return filter_set is not None and not filter_set.match(
|
|
290
|
+
return filter_set is not None and ctx.operation is not None and not filter_set.match(ctx)
|
|
291
291
|
|
|
292
292
|
|
|
293
293
|
def apply_to_all_dispatchers(
|
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import inspect
|
|
4
4
|
import warnings
|
|
5
|
-
from dataclasses import dataclass
|
|
5
|
+
from dataclasses import dataclass, field
|
|
6
6
|
from typing import TYPE_CHECKING, Callable, Optional
|
|
7
7
|
|
|
8
8
|
if TYPE_CHECKING:
|
|
@@ -17,6 +17,23 @@ if TYPE_CHECKING:
|
|
|
17
17
|
CheckFunction = Callable[["CheckContext", "GenericResponse", "Case"], Optional[bool]]
|
|
18
18
|
|
|
19
19
|
|
|
20
|
+
@dataclass
|
|
21
|
+
class NegativeDataRejectionConfig:
|
|
22
|
+
# 5xx will pass through
|
|
23
|
+
allowed_statuses: list[str] = field(default_factory=lambda: ["4xx", "5xx"])
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@dataclass
|
|
27
|
+
class PositiveDataAcceptanceConfig:
|
|
28
|
+
allowed_statuses: list[str] = field(default_factory=lambda: ["2xx", "401", "403", "404"])
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@dataclass
|
|
32
|
+
class CheckConfig:
|
|
33
|
+
negative_data_rejection: NegativeDataRejectionConfig = field(default_factory=NegativeDataRejectionConfig)
|
|
34
|
+
positive_data_acceptance: PositiveDataAcceptanceConfig = field(default_factory=PositiveDataAcceptanceConfig)
|
|
35
|
+
|
|
36
|
+
|
|
20
37
|
@dataclass
|
|
21
38
|
class CheckContext:
|
|
22
39
|
"""Context for Schemathesis checks.
|
|
@@ -26,6 +43,7 @@ class CheckContext:
|
|
|
26
43
|
|
|
27
44
|
auth: HTTPDigestAuth | RawAuth | None = None
|
|
28
45
|
headers: CaseInsensitiveDict | None = None
|
|
46
|
+
config: CheckConfig = field(default_factory=CheckConfig)
|
|
29
47
|
|
|
30
48
|
|
|
31
49
|
def wrap_check(check: Callable) -> CheckFunction:
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from contextlib import nullcontext
|
|
3
4
|
from dataclasses import dataclass, field
|
|
4
5
|
from inspect import signature
|
|
5
|
-
from typing import TYPE_CHECKING, Any, Callable, Generator
|
|
6
|
+
from typing import TYPE_CHECKING, Any, Callable, Generator, Type
|
|
6
7
|
|
|
7
8
|
import pytest
|
|
8
9
|
from hypothesis.core import HypothesisHandle
|
|
9
10
|
from hypothesis.errors import Flaky
|
|
10
11
|
from hypothesis.internal.escalation import format_exception, get_trimmed_traceback
|
|
11
12
|
from hypothesis.internal.reflection import impersonate
|
|
12
|
-
from pytest_subtests import SubTests
|
|
13
|
+
from pytest_subtests import SubTests
|
|
13
14
|
|
|
14
15
|
from ._compat import MultipleFailures, get_interesting_origin
|
|
15
16
|
from ._override import CaseOverride, check_no_override_mark, get_override_from_mark, set_override_mark
|
|
@@ -310,7 +311,7 @@ def _copy_marks(source: Callable, target: Callable) -> None:
|
|
|
310
311
|
target.pytestmark.extend(marks) # type: ignore
|
|
311
312
|
|
|
312
313
|
|
|
313
|
-
def _get_capturemanager(request: FixtureRequest) -> Generator:
|
|
314
|
+
def _get_capturemanager(request: FixtureRequest) -> Generator | Type[nullcontext]:
|
|
314
315
|
capturemanager = request.node.config.pluginmanager.get_plugin("capturemanager")
|
|
315
316
|
if capturemanager is not None:
|
|
316
317
|
return capturemanager.global_and_fixture_disabled
|
|
@@ -11,6 +11,7 @@ from ..constants import (
|
|
|
11
11
|
)
|
|
12
12
|
from ..exceptions import SchemaError
|
|
13
13
|
from ..generation import DEFAULT_DATA_GENERATION_METHODS, DataGenerationMethod, GenerationConfig
|
|
14
|
+
from ..internal.checks import CheckConfig
|
|
14
15
|
from ..internal.datetime import current_datetime
|
|
15
16
|
from ..internal.deprecation import deprecated_function
|
|
16
17
|
from ..internal.validation import file_exists
|
|
@@ -355,6 +356,7 @@ def from_schema(
|
|
|
355
356
|
count_operations: bool = True,
|
|
356
357
|
count_links: bool = True,
|
|
357
358
|
probe_config: ProbeConfig | None = None,
|
|
359
|
+
checks_config: CheckConfig | None = None,
|
|
358
360
|
service_client: ServiceClient | None = None,
|
|
359
361
|
) -> BaseRunner:
|
|
360
362
|
import hypothesis
|
|
@@ -371,6 +373,7 @@ def from_schema(
|
|
|
371
373
|
)
|
|
372
374
|
|
|
373
375
|
checks = checks or DEFAULT_CHECKS
|
|
376
|
+
checks_config = checks_config or CheckConfig()
|
|
374
377
|
probe_config = probe_config or ProbeConfig()
|
|
375
378
|
|
|
376
379
|
hypothesis_settings = hypothesis_settings or hypothesis.settings(deadline=DEFAULT_DEADLINE)
|
|
@@ -413,6 +416,7 @@ def from_schema(
|
|
|
413
416
|
count_operations=count_operations,
|
|
414
417
|
count_links=count_links,
|
|
415
418
|
probe_config=probe_config,
|
|
419
|
+
checks_config=checks_config,
|
|
416
420
|
service_client=service_client,
|
|
417
421
|
)
|
|
418
422
|
if is_asgi_app(schema.app):
|
|
@@ -439,6 +443,7 @@ def from_schema(
|
|
|
439
443
|
count_operations=count_operations,
|
|
440
444
|
count_links=count_links,
|
|
441
445
|
probe_config=probe_config,
|
|
446
|
+
checks_config=checks_config,
|
|
442
447
|
service_client=service_client,
|
|
443
448
|
)
|
|
444
449
|
return ThreadPoolWSGIRunner(
|
|
@@ -465,6 +470,7 @@ def from_schema(
|
|
|
465
470
|
count_operations=count_operations,
|
|
466
471
|
count_links=count_links,
|
|
467
472
|
probe_config=probe_config,
|
|
473
|
+
checks_config=checks_config,
|
|
468
474
|
service_client=service_client,
|
|
469
475
|
)
|
|
470
476
|
if not schema.app:
|
|
@@ -492,6 +498,7 @@ def from_schema(
|
|
|
492
498
|
count_operations=count_operations,
|
|
493
499
|
count_links=count_links,
|
|
494
500
|
probe_config=probe_config,
|
|
501
|
+
checks_config=checks_config,
|
|
495
502
|
service_client=service_client,
|
|
496
503
|
)
|
|
497
504
|
if is_asgi_app(schema.app):
|
|
@@ -518,6 +525,7 @@ def from_schema(
|
|
|
518
525
|
count_operations=count_operations,
|
|
519
526
|
count_links=count_links,
|
|
520
527
|
probe_config=probe_config,
|
|
528
|
+
checks_config=checks_config,
|
|
521
529
|
service_client=service_client,
|
|
522
530
|
)
|
|
523
531
|
return SingleThreadWSGIRunner(
|
|
@@ -543,6 +551,7 @@ def from_schema(
|
|
|
543
551
|
count_operations=count_operations,
|
|
544
552
|
count_links=count_links,
|
|
545
553
|
probe_config=probe_config,
|
|
554
|
+
checks_config=checks_config,
|
|
546
555
|
service_client=service_client,
|
|
547
556
|
)
|
|
548
557
|
|
|
@@ -4,6 +4,7 @@ from dataclasses import dataclass
|
|
|
4
4
|
from typing import TYPE_CHECKING
|
|
5
5
|
|
|
6
6
|
from ...constants import NOT_SET
|
|
7
|
+
from ...internal.checks import CheckConfig
|
|
7
8
|
from ...models import TestResult, TestResultSet
|
|
8
9
|
|
|
9
10
|
if TYPE_CHECKING:
|
|
@@ -24,11 +25,18 @@ class RunnerContext:
|
|
|
24
25
|
stop_event: threading.Event
|
|
25
26
|
unique_data: bool
|
|
26
27
|
outcome_cache: dict[int, BaseException | None]
|
|
28
|
+
checks_config: CheckConfig
|
|
27
29
|
|
|
28
|
-
__slots__ = ("data", "auth", "seed", "stop_event", "unique_data", "outcome_cache")
|
|
30
|
+
__slots__ = ("data", "auth", "seed", "stop_event", "unique_data", "outcome_cache", "checks_config")
|
|
29
31
|
|
|
30
32
|
def __init__(
|
|
31
|
-
self,
|
|
33
|
+
self,
|
|
34
|
+
*,
|
|
35
|
+
seed: int | None,
|
|
36
|
+
auth: RawAuth | None,
|
|
37
|
+
stop_event: threading.Event,
|
|
38
|
+
unique_data: bool,
|
|
39
|
+
checks_config: CheckConfig,
|
|
32
40
|
) -> None:
|
|
33
41
|
self.data = TestResultSet(seed=seed)
|
|
34
42
|
self.auth = auth
|
|
@@ -36,6 +44,7 @@ class RunnerContext:
|
|
|
36
44
|
self.stop_event = stop_event
|
|
37
45
|
self.outcome_cache = {}
|
|
38
46
|
self.unique_data = unique_data
|
|
47
|
+
self.checks_config = checks_config
|
|
39
48
|
|
|
40
49
|
@property
|
|
41
50
|
def is_stopped(self) -> bool:
|