schemathesis 3.36.0__tar.gz → 3.36.2__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.0 → schemathesis-3.36.2}/.github/workflows/codeql-analysis.yml +3 -3
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.pre-commit-config.yaml +2 -2
- {schemathesis-3.36.0 → schemathesis-3.36.2}/PKG-INFO +2 -1
- {schemathesis-3.36.0 → schemathesis-3.36.2}/README.md +1 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/changelog.rst +32 -1
- {schemathesis-3.36.0 → schemathesis-3.36.2}/pyproject.toml +1 -1
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/_hypothesis.py +5 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/auths.py +1 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/generation/coverage.py +76 -23
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/internal/checks.py +4 -1
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/models.py +4 -2
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/runner/impl/context.py +7 -3
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/runner/impl/core.py +13 -7
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/_hypothesis.py +6 -1
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/checks.py +6 -3
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/converter.py +10 -0
- schemathesis-3.36.2/src/schemathesis/specs/openapi/patterns.py +120 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/coverage/test_combinations.py +96 -30
- schemathesis-3.36.2/test/coverage/test_examples.py +150 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/coverage/test_phase.py +112 -104
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/runner/test_runner.py +3 -3
- schemathesis-3.36.2/test/specs/openapi/__snapshots__/test_ignored_auth/test_explicit_auth_cli[Open API 3.0].raw +25 -0
- schemathesis-3.36.2/test/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_ignored_auth.py +66 -6
- schemathesis-3.36.2/test/specs/openapi/test_patterns.py +133 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_randomized.py +2 -2
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_converter.py +32 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_hypothesis.py +36 -2
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test-corpus/test_corpus.py +2 -2
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.dockerignore +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/FUNDING.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/dependabot.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/workflows/build.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/workflows/codspeed.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/workflows/commit.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/workflows/example-build.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/workflows/example-no-build.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/workflows/master_update.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/workflows/release.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/workflows/test-corpus.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/workflows/test-hypothesis.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.github/workflows/update-pre-commit.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.gitignore +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.readthedocs.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.relint.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.rstcheck.cfg +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/.yamllint +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/CITATION.cff +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/CONTRIBUTING.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/Dockerfile +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/Dockerfile.bookworm +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/LICENSE +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/benches/cli.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/benches/references.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/benches/schema.py +1 -1
- {schemathesis-3.36.0 → schemathesis-3.36.2}/changelog.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/codecov.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/corpus/data/graphql.tar.gz +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/corpus/data/openapi-3.0.tar.gz +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/corpus/data/openapi-3.1.tar.gz +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/corpus/data/swagger-2.0.tar.gz +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/corpus/tools.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/Makefile +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/additional-content.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/api.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/auth.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/cli.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/compatibility.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/conf.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/continuous_integration.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/contrib.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/data-generation.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/examples.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/experimental.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/extending.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/faq.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/getting-started.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/graphql.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/index.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/python.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/recipes.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/requirements.txt +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/sanitizing.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/service.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/stateful.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/docs/targeted.rst +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/example/Dockerfile +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/example/README.md +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/example/app.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/example/compose.yml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/example/openapi.json +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/example/requirements-app.in +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/example/requirements-app.txt +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/example/requirements-pytest.in +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/example/requirements-pytest.txt +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/example/tests/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/example/tests/conftest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/example/tests/extensions.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/example/tests/test_app.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/img/demo.gif +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/img/service_github_report.png +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/mypy.ini +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/_compat.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/_dependency_versions.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/_lazy_import.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/_override.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/_rate_limiter.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/_xml.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/checks.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/__main__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/callbacks.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/cassettes.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/context.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/debug.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/handlers.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/junitxml.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/options.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/output/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/output/default.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/output/short.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/reporting.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/cli/sanitization.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/code_samples.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/constants.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/contrib/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/contrib/openapi/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/contrib/unique_data.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/exceptions.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/experimental/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/extra/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/extra/_aiohttp.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/extra/_flask.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/extra/_server.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/extra/pytest_plugin.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/failures.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/filters.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/fixups/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/fixups/fast_api.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/fixups/utf8_bom.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/generation/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/generation/_hypothesis.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/generation/_methods.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/graphql.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/hooks.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/internal/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/internal/copy.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/internal/datetime.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/internal/deprecation.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/internal/extensions.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/internal/jsonschema.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/internal/output.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/internal/result.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/internal/transformation.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/internal/validation.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/lazy.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/loaders.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/parameters.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/py.typed +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/runner/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/runner/events.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/runner/impl/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/runner/impl/solo.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/runner/impl/threadpool.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/runner/probes.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/runner/serialization.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/sanitization.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/schemas.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/serializers.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/service/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/service/auth.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/service/ci.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/service/client.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/service/constants.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/service/events.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/service/extensions.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/service/hosts.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/service/metadata.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/service/models.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/service/report.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/service/serialization.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/service/usage.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/graphql/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/graphql/_cache.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/graphql/loaders.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/graphql/schemas.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/_cache.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/examples.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/formats.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/links.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/loaders.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/media_types.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/schemas.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/security.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/serialization.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/stateful/statistic.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/stateful/types.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/utils.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/specs/openapi/validation.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/stateful/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/stateful/config.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/stateful/context.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/stateful/events.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/stateful/runner.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/stateful/sink.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/stateful/state_machine.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/stateful/statistic.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/stateful/validation.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/targets.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/throttling.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/transports/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/transports/asgi.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/transports/auth.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/transports/content_types.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/transports/headers.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/transports/responses.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/types.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/src/schemathesis/utils.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/cp1252_app.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/hooks.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/openapi/_aiohttp/handlers.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/apps/openapi/schema.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/auth/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/auth/conftest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/auth/test_cli.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/auth/test_provider.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/auth/test_pytest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/checks/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/checks/test_checks.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_checks/test_deduplication_on_sanitized_header.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/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.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/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.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_deprecated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_filtered_out[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_generation_config[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_keyboard_interrupt[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_max_failures[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only_with_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args37].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_stateful_explicit_examples_with_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_unresolvable_links[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/cert.pem +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/conftest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/output/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/output/test_default.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/test_asgi.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/test_callbacks.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/test_cassettes.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/test_checks.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/test_commands.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/test_crashes.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/test_hooks.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/test_junitxml.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/test_options.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/test_reporting.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/cli/test_targeted.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/code_samples/conftest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/code_samples/test_curl.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/code_samples/test_python.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/conftest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/contrib/openapi/formats/test_uuid.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/contrib/test_install.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/contrib/test_unique_data.py +0 -0
- {schemathesis-3.36.0/test/extra → schemathesis-3.36.2/test/coverage}/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/data/relative_files/components/parameters.yaml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/data/relative_files/components/responses.yaml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/data/relative_files/components/schemas.yaml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/data/relative_files/main.yaml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/data/relative_files/paths/user-account.yaml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/experimental/conftest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/experimental/test_experiments.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/experimental/test_openapi_3_1.py +0 -0
- {schemathesis-3.36.0/test/filters → schemathesis-3.36.2/test/extra}/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/extra/test_aiohttp.py +0 -0
- {schemathesis-3.36.0/test/runner → schemathesis-3.36.2/test/filters}/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/filters/test_expressions.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/filters/test_matching.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/hooks/test_filter_operations.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/hooks/test_filters.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/hooks/test_hooks.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/loaders/conftest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/loaders/test_app.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/loaders/test_common.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/loaders/test_graphql.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/loaders/test_openapi.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/loaders/test_yaml.py +0 -0
- {schemathesis-3.36.0/test/service → schemathesis-3.36.2/test/runner}/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/runner/test_checks.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/runner/test_events.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/runner/test_probes.py +0 -0
- {schemathesis-3.36.0/test/specs/openapi/stateful → schemathesis-3.36.2/test/service}/__init__.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_cli/test_client_error_on_project_details[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_cli/test_unauthorized[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_custom_format.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/conftest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/test_auth.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/test_ci.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/test_cli.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/test_extensions.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/test_report.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/test_serialization.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/service/test_usage.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/graphql/test_basic.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/graphql/test_pytest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/blank.pdf +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/parameters/test_forms.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/parameters/test_non_payload.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/stateful/conftest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/stateful/test_config.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/stateful/test_runner.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/stateful/test_stateful.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_checks.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_examples.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_hypothesis.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_links.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_media_types.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_negative.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_security.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_serializing.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/specs/openapi/test_validation.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_app.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_asgi.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_async.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_common_parameters.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_dereferencing.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_direct_access.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_examples.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_filters.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_fixups.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_internal.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_lazy.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_models.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_output.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_package.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_parameters.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_parametrization.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_petstore.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_pytest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_rate_limit.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_recoverable_errors.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_required.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_sanitizing_output.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_schemas.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_serialization.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_stateful.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_unittest.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_utils.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/test_wsgi.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/transports/test_content_types.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test/utils.py +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/test_server.sh +0 -0
- {schemathesis-3.36.0 → schemathesis-3.36.2}/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.8
|
|
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.8
|
|
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.8
|
|
@@ -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.7
|
|
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.7
|
|
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.36.
|
|
3
|
+
Version: 3.36.2
|
|
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
|
|
@@ -237,6 +237,7 @@ Schemathesis is used by a number of projects and companies, including direct usa
|
|
|
237
237
|
- [Pixie](https://github.com/pixie-io/pixie)
|
|
238
238
|
- [Qdrant](https://github.com/qdrant/qdrant)
|
|
239
239
|
- Spotify ([Backstage](https://github.com/backstage/backstage))
|
|
240
|
+
- [Weechat](https://github.com/weechat/weechat)
|
|
240
241
|
- WordPress ([OpenVerse](https://github.com/WordPress/openverse))
|
|
241
242
|
|
|
242
243
|
## Testimonials
|
|
@@ -138,6 +138,7 @@ Schemathesis is used by a number of projects and companies, including direct usa
|
|
|
138
138
|
- [Pixie](https://github.com/pixie-io/pixie)
|
|
139
139
|
- [Qdrant](https://github.com/qdrant/qdrant)
|
|
140
140
|
- Spotify ([Backstage](https://github.com/backstage/backstage))
|
|
141
|
+
- [Weechat](https://github.com/weechat/weechat)
|
|
141
142
|
- WordPress ([OpenVerse](https://github.com/WordPress/openverse))
|
|
142
143
|
|
|
143
144
|
## Testimonials
|
|
@@ -1,9 +1,40 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
-
:version:`Unreleased <v3.36.
|
|
4
|
+
:version:`Unreleased <v3.36.2...HEAD>` - TBD
|
|
5
5
|
--------------------------------------------
|
|
6
6
|
|
|
7
|
+
.. _v3.36.2:
|
|
8
|
+
|
|
9
|
+
:version:`3.36.2 <v3.36.1...v3.36.2>` - 2024-09-26
|
|
10
|
+
--------------------------------------------------
|
|
11
|
+
|
|
12
|
+
**Changed**
|
|
13
|
+
|
|
14
|
+
- Merge ``minLength`` & ``maxLength`` into ``pattern`` to avoid extremely slow generation in most popular cases.
|
|
15
|
+
- Avoid generating ``{`` and ``}`` for path parameters.
|
|
16
|
+
- Generate all negative types in the coverage phase.
|
|
17
|
+
|
|
18
|
+
**Fixed**
|
|
19
|
+
|
|
20
|
+
- Internal error on incorrect examples during the coverage phase.
|
|
21
|
+
|
|
22
|
+
.. _v3.36.1:
|
|
23
|
+
|
|
24
|
+
:version:`3.36.1 <v3.36.0...v3.36.1>` - 2024-09-23
|
|
25
|
+
--------------------------------------------------
|
|
26
|
+
|
|
27
|
+
**Changed**
|
|
28
|
+
|
|
29
|
+
- Use ``requestBody`` examples as the source of valid inputs during the coverage phase.
|
|
30
|
+
- Reuse top-level schema examples in more places during the coverage phase.
|
|
31
|
+
- Generate more combinations of optional parameters during the coverage phase.
|
|
32
|
+
|
|
33
|
+
**Fixed**
|
|
34
|
+
|
|
35
|
+
- ``ignored_auth`` false positives on custom auth and explicit ``--auth`` CLI option. :issue:`2462`
|
|
36
|
+
- Avoid skipping string generation if they have ``pattern`` during the coverage phase.
|
|
37
|
+
|
|
7
38
|
.. _v3.36.0:
|
|
8
39
|
|
|
9
40
|
:version:`3.36.0 <v3.35.5...v3.36.0>` - 2024-09-15
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "schemathesis"
|
|
7
|
-
version = "3.36.
|
|
7
|
+
version = "3.36.2"
|
|
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" }]
|
|
@@ -245,6 +245,11 @@ def _iter_coverage_cases(
|
|
|
245
245
|
if operation.body:
|
|
246
246
|
for body in operation.body:
|
|
247
247
|
schema = body.as_json_schema(operation)
|
|
248
|
+
# Definition could be a list for Open API 2.0
|
|
249
|
+
definition = body.definition if isinstance(body.definition, dict) else {}
|
|
250
|
+
examples = [example["value"] for example in definition.get("examples", {}).values() if "value" in example]
|
|
251
|
+
if examples:
|
|
252
|
+
schema.setdefault("examples", []).extend(examples)
|
|
248
253
|
gen = coverage.cover_schema_iter(ctx, schema)
|
|
249
254
|
value = next(gen, NOT_SET)
|
|
250
255
|
if isinstance(value, NotSet):
|
|
@@ -4,7 +4,8 @@ import json
|
|
|
4
4
|
from contextlib import contextmanager, suppress
|
|
5
5
|
from dataclasses import dataclass, field
|
|
6
6
|
from functools import lru_cache
|
|
7
|
-
from
|
|
7
|
+
from itertools import combinations
|
|
8
|
+
from typing import Any, Generator, Iterator, TypeVar, cast
|
|
8
9
|
|
|
9
10
|
import jsonschema
|
|
10
11
|
from hypothesis import strategies as st
|
|
@@ -14,7 +15,7 @@ from hypothesis_jsonschema._canonicalise import canonicalish
|
|
|
14
15
|
|
|
15
16
|
from schemathesis.constants import NOT_SET
|
|
16
17
|
|
|
17
|
-
from ._hypothesis import
|
|
18
|
+
from ._hypothesis import get_single_example
|
|
18
19
|
from ._methods import DataGenerationMethod
|
|
19
20
|
|
|
20
21
|
BUFFER_SIZE = 8 * 1024
|
|
@@ -156,12 +157,17 @@ def _ignore_unfixable(
|
|
|
156
157
|
raise
|
|
157
158
|
|
|
158
159
|
|
|
159
|
-
def cover_schema_iter(
|
|
160
|
+
def cover_schema_iter(
|
|
161
|
+
ctx: CoverageContext, schema: dict | bool, seen: set[Any | tuple[type, str]] | None = None
|
|
162
|
+
) -> Generator[GeneratedValue, None, None]:
|
|
163
|
+
if seen is None:
|
|
164
|
+
seen = set()
|
|
160
165
|
if isinstance(schema, bool):
|
|
161
166
|
types = ["null", "boolean", "string", "number", "array", "object"]
|
|
162
167
|
schema = {}
|
|
163
168
|
else:
|
|
164
169
|
types = schema.get("type", [])
|
|
170
|
+
push_examples_to_properties(schema)
|
|
165
171
|
if not isinstance(types, list):
|
|
166
172
|
types = [types] # type: ignore[unreachable]
|
|
167
173
|
if not types:
|
|
@@ -172,13 +178,16 @@ def cover_schema_iter(ctx: CoverageContext, schema: dict | bool) -> Generator[Ge
|
|
|
172
178
|
yield from _cover_positive_for_type(ctx, schema, ty)
|
|
173
179
|
if DataGenerationMethod.negative in ctx.data_generation_methods:
|
|
174
180
|
template = None
|
|
175
|
-
seen: set[Any | tuple[type, str]] = set()
|
|
176
181
|
for key, value in schema.items():
|
|
177
182
|
with _ignore_unfixable():
|
|
178
183
|
if key == "enum":
|
|
179
184
|
yield from _negative_enum(ctx, value)
|
|
180
185
|
elif key == "const":
|
|
181
|
-
|
|
186
|
+
for value_ in _negative_enum(ctx, [value]):
|
|
187
|
+
k = _to_hashable_key(value_.value)
|
|
188
|
+
if k not in seen:
|
|
189
|
+
yield value_
|
|
190
|
+
seen.add(k)
|
|
182
191
|
elif key == "type":
|
|
183
192
|
yield from _negative_type(ctx, seen, value)
|
|
184
193
|
elif key == "properties":
|
|
@@ -190,27 +199,37 @@ def cover_schema_iter(ctx: CoverageContext, schema: dict | bool) -> Generator[Ge
|
|
|
190
199
|
yield from _negative_format(ctx, schema, value)
|
|
191
200
|
elif key == "maximum":
|
|
192
201
|
next = value + 1
|
|
193
|
-
|
|
194
|
-
|
|
202
|
+
if next not in seen:
|
|
203
|
+
yield NegativeValue(next)
|
|
204
|
+
seen.add(next)
|
|
195
205
|
elif key == "minimum":
|
|
196
206
|
next = value - 1
|
|
197
|
-
|
|
198
|
-
|
|
207
|
+
if next not in seen:
|
|
208
|
+
yield NegativeValue(next)
|
|
209
|
+
seen.add(next)
|
|
199
210
|
elif key == "exclusiveMaximum" or key == "exclusiveMinimum" and value not in seen:
|
|
200
211
|
yield NegativeValue(value)
|
|
201
212
|
seen.add(value)
|
|
202
213
|
elif key == "multipleOf":
|
|
203
|
-
|
|
214
|
+
for value_ in _negative_multiple_of(ctx, schema, value):
|
|
215
|
+
k = _to_hashable_key(value_.value)
|
|
216
|
+
if k not in seen:
|
|
217
|
+
yield value_
|
|
218
|
+
seen.add(k)
|
|
204
219
|
elif key == "minLength" and 0 < value < BUFFER_SIZE:
|
|
205
220
|
with suppress(InvalidArgument):
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
221
|
+
value = ctx.generate_from_schema({**schema, "minLength": value - 1, "maxLength": value - 1})
|
|
222
|
+
k = _to_hashable_key(value)
|
|
223
|
+
if k not in seen:
|
|
224
|
+
yield NegativeValue(value)
|
|
225
|
+
seen.add(k)
|
|
209
226
|
elif key == "maxLength" and value < BUFFER_SIZE:
|
|
210
227
|
with suppress(InvalidArgument):
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
228
|
+
value = ctx.generate_from_schema({**schema, "minLength": value + 1, "maxLength": value + 1})
|
|
229
|
+
k = _to_hashable_key(value)
|
|
230
|
+
if k not in seen:
|
|
231
|
+
yield NegativeValue(value)
|
|
232
|
+
seen.add(k)
|
|
214
233
|
elif key == "uniqueItems" and value:
|
|
215
234
|
yield from _negative_unique_items(ctx, schema)
|
|
216
235
|
elif key == "required":
|
|
@@ -222,16 +241,16 @@ def cover_schema_iter(ctx: CoverageContext, schema: dict | bool) -> Generator[Ge
|
|
|
222
241
|
elif key == "allOf":
|
|
223
242
|
nctx = ctx.with_negative()
|
|
224
243
|
if len(value) == 1:
|
|
225
|
-
yield from cover_schema_iter(nctx, value[0])
|
|
244
|
+
yield from cover_schema_iter(nctx, value[0], seen)
|
|
226
245
|
else:
|
|
227
246
|
with _ignore_unfixable():
|
|
228
247
|
canonical = canonicalish(schema)
|
|
229
|
-
yield from cover_schema_iter(nctx, canonical)
|
|
248
|
+
yield from cover_schema_iter(nctx, canonical, seen)
|
|
230
249
|
elif key == "anyOf" or key == "oneOf":
|
|
231
250
|
nctx = ctx.with_negative()
|
|
232
251
|
# NOTE: Other sub-schemas are not filtered out
|
|
233
252
|
for sub_schema in value:
|
|
234
|
-
yield from cover_schema_iter(nctx, sub_schema)
|
|
253
|
+
yield from cover_schema_iter(nctx, sub_schema, seen)
|
|
235
254
|
|
|
236
255
|
|
|
237
256
|
def _get_properties(schema: dict | bool) -> dict | bool:
|
|
@@ -264,6 +283,8 @@ def _positive_string(ctx: CoverageContext, schema: dict) -> Generator[GeneratedV
|
|
|
264
283
|
"""Generate positive string values."""
|
|
265
284
|
# Boundary and near boundary values
|
|
266
285
|
min_length = schema.get("minLength")
|
|
286
|
+
if min_length == 0:
|
|
287
|
+
min_length = None
|
|
267
288
|
max_length = schema.get("maxLength")
|
|
268
289
|
example = schema.get("example")
|
|
269
290
|
examples = schema.get("examples")
|
|
@@ -283,6 +304,12 @@ def _positive_string(ctx: CoverageContext, schema: dict) -> Generator[GeneratedV
|
|
|
283
304
|
elif not min_length and not max_length:
|
|
284
305
|
# Default positive value
|
|
285
306
|
yield PositiveValue(ctx.generate_from_schema(schema))
|
|
307
|
+
elif "pattern" in schema:
|
|
308
|
+
# Without merging `maxLength` & `minLength` into a regex it is problematic
|
|
309
|
+
# to generate a valid value as the unredlying machinery will resort to filtering
|
|
310
|
+
# and it is unlikely that it will generate a string of that length
|
|
311
|
+
yield PositiveValue(ctx.generate_from_schema(schema))
|
|
312
|
+
return
|
|
286
313
|
|
|
287
314
|
seen = set()
|
|
288
315
|
|
|
@@ -476,6 +503,10 @@ def _positive_object(ctx: CoverageContext, schema: dict, template: dict) -> Gene
|
|
|
476
503
|
combo = {k: v for k, v in template.items() if k in required or k == name}
|
|
477
504
|
if combo != template:
|
|
478
505
|
yield PositiveValue(combo)
|
|
506
|
+
# Generate one combination for each size from 2 to N-1
|
|
507
|
+
for selection in select_combinations(optional):
|
|
508
|
+
combo = {k: v for k, v in template.items() if k in required or k in selection}
|
|
509
|
+
yield PositiveValue(combo)
|
|
479
510
|
# Generate only required properties
|
|
480
511
|
if set(properties) != required:
|
|
481
512
|
only_required = {k: v for k, v in template.items() if k in required}
|
|
@@ -491,6 +522,11 @@ def _positive_object(ctx: CoverageContext, schema: dict, template: dict) -> Gene
|
|
|
491
522
|
seen.clear()
|
|
492
523
|
|
|
493
524
|
|
|
525
|
+
def select_combinations(optional: list[str]) -> Iterator[tuple[str, ...]]:
|
|
526
|
+
for size in range(2, len(optional)):
|
|
527
|
+
yield next(combinations(optional, size))
|
|
528
|
+
|
|
529
|
+
|
|
494
530
|
def _negative_enum(ctx: CoverageContext, value: list) -> Generator[GeneratedValue, None, None]:
|
|
495
531
|
strategy = JSON_STRATEGY.filter(lambda x: x not in value)
|
|
496
532
|
# The exact negative value is not important here
|
|
@@ -565,7 +601,24 @@ def _negative_type(ctx: CoverageContext, seen: set, ty: str | list[str]) -> Gene
|
|
|
565
601
|
del strategies["integer"]
|
|
566
602
|
if "integer" in types:
|
|
567
603
|
strategies["number"] = FLOAT_STRATEGY.filter(lambda x: x != int(x))
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
604
|
+
for strat in strategies.values():
|
|
605
|
+
value = ctx.generate_from(strat, cached=True)
|
|
606
|
+
hashed = _to_hashable_key(value)
|
|
607
|
+
if hashed in seen:
|
|
608
|
+
continue
|
|
609
|
+
yield NegativeValue(value)
|
|
610
|
+
seen.add(hashed)
|
|
611
|
+
|
|
612
|
+
|
|
613
|
+
def push_examples_to_properties(schema: dict[str, Any]) -> None:
|
|
614
|
+
"""Push examples from the top-level 'examples' field to the corresponding properties."""
|
|
615
|
+
if "examples" in schema and "properties" in schema:
|
|
616
|
+
properties = schema["properties"]
|
|
617
|
+
for example in schema["examples"]:
|
|
618
|
+
if isinstance(example, dict):
|
|
619
|
+
for prop, value in example.items():
|
|
620
|
+
if prop in properties:
|
|
621
|
+
if "examples" not in properties[prop]:
|
|
622
|
+
properties[prop]["examples"] = []
|
|
623
|
+
if value not in schema["properties"][prop]["examples"]:
|
|
624
|
+
properties[prop]["examples"].append(value)
|
|
@@ -6,9 +6,11 @@ from dataclasses import dataclass
|
|
|
6
6
|
from typing import TYPE_CHECKING, Callable, Optional
|
|
7
7
|
|
|
8
8
|
if TYPE_CHECKING:
|
|
9
|
+
from requests.structures import CaseInsensitiveDict
|
|
10
|
+
|
|
9
11
|
from ..models import Case
|
|
10
12
|
from ..transports.responses import GenericResponse
|
|
11
|
-
from
|
|
13
|
+
from ..types import RawAuth
|
|
12
14
|
|
|
13
15
|
|
|
14
16
|
CheckFunction = Callable[["CheckContext", "GenericResponse", "Case"], Optional[bool]]
|
|
@@ -21,6 +23,7 @@ class CheckContext:
|
|
|
21
23
|
Provides access to broader test execution data beyond individual test cases.
|
|
22
24
|
"""
|
|
23
25
|
|
|
26
|
+
auth: RawAuth | None = None
|
|
24
27
|
headers: CaseInsensitiveDict | None = None
|
|
25
28
|
|
|
26
29
|
|
|
@@ -136,8 +136,7 @@ def prepare_request_data(kwargs: dict[str, Any]) -> PreparedRequestData:
|
|
|
136
136
|
)
|
|
137
137
|
|
|
138
138
|
|
|
139
|
-
|
|
140
|
-
class TestPhase(Enum):
|
|
139
|
+
class TestPhase(str, Enum):
|
|
141
140
|
__test__ = False
|
|
142
141
|
|
|
143
142
|
EXPLICIT = "explicit"
|
|
@@ -184,6 +183,7 @@ class Case:
|
|
|
184
183
|
# The way the case was generated (None for manually crafted ones)
|
|
185
184
|
data_generation_method: DataGenerationMethod | None = None
|
|
186
185
|
_auth: requests.auth.AuthBase | None = None
|
|
186
|
+
_has_explicit_auth: bool = False
|
|
187
187
|
|
|
188
188
|
def __repr__(self) -> str:
|
|
189
189
|
parts = [f"{self.__class__.__name__}("]
|
|
@@ -562,6 +562,8 @@ class Case:
|
|
|
562
562
|
body=fast_deepcopy(self.body),
|
|
563
563
|
generation_time=self.generation_time,
|
|
564
564
|
id=self.id,
|
|
565
|
+
_auth=self._auth,
|
|
566
|
+
_has_explicit_auth=self._has_explicit_auth,
|
|
565
567
|
)
|
|
566
568
|
|
|
567
569
|
|
|
@@ -11,7 +11,7 @@ if TYPE_CHECKING:
|
|
|
11
11
|
|
|
12
12
|
from ...exceptions import OperationSchemaError
|
|
13
13
|
from ...models import Case
|
|
14
|
-
from ...types import NotSet
|
|
14
|
+
from ...types import NotSet, RawAuth
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
@dataclass
|
|
@@ -19,15 +19,19 @@ class RunnerContext:
|
|
|
19
19
|
"""Holds context shared for a test run."""
|
|
20
20
|
|
|
21
21
|
data: TestResultSet
|
|
22
|
+
auth: RawAuth | None
|
|
22
23
|
seed: int | None
|
|
23
24
|
stop_event: threading.Event
|
|
24
25
|
unique_data: bool
|
|
25
26
|
outcome_cache: dict[int, BaseException | None]
|
|
26
27
|
|
|
27
|
-
__slots__ = ("data", "seed", "stop_event", "unique_data", "outcome_cache")
|
|
28
|
+
__slots__ = ("data", "auth", "seed", "stop_event", "unique_data", "outcome_cache")
|
|
28
29
|
|
|
29
|
-
def __init__(
|
|
30
|
+
def __init__(
|
|
31
|
+
self, *, seed: int | None, auth: RawAuth | None, stop_event: threading.Event, unique_data: bool
|
|
32
|
+
) -> None:
|
|
30
33
|
self.data = TestResultSet(seed=seed)
|
|
34
|
+
self.auth = auth
|
|
31
35
|
self.seed = seed
|
|
32
36
|
self.stop_event = stop_event
|
|
33
37
|
self.outcome_cache = {}
|
|
@@ -131,7 +131,7 @@ class BaseRunner:
|
|
|
131
131
|
# If auth is explicitly provided, then the global provider is ignored
|
|
132
132
|
if self.auth is not None:
|
|
133
133
|
unregister_auth()
|
|
134
|
-
ctx = RunnerContext(seed=self.seed, stop_event=stop_event, unique_data=self.unique_data)
|
|
134
|
+
ctx = RunnerContext(auth=self.auth, seed=self.seed, stop_event=stop_event, unique_data=self.unique_data)
|
|
135
135
|
start_time = time.monotonic()
|
|
136
136
|
initialized = None
|
|
137
137
|
__probes = None
|
|
@@ -955,6 +955,7 @@ def network_test(
|
|
|
955
955
|
headers["User-Agent"] = USER_AGENT
|
|
956
956
|
if not dry_run:
|
|
957
957
|
args = (
|
|
958
|
+
ctx,
|
|
958
959
|
checks,
|
|
959
960
|
targets,
|
|
960
961
|
result,
|
|
@@ -973,6 +974,7 @@ def network_test(
|
|
|
973
974
|
|
|
974
975
|
def _network_test(
|
|
975
976
|
case: Case,
|
|
977
|
+
ctx: RunnerContext,
|
|
976
978
|
checks: Iterable[CheckFunction],
|
|
977
979
|
targets: Iterable[Target],
|
|
978
980
|
result: TestResult,
|
|
@@ -1015,11 +1017,11 @@ def _network_test(
|
|
|
1015
1017
|
run_targets(targets, context)
|
|
1016
1018
|
status = Status.success
|
|
1017
1019
|
|
|
1018
|
-
|
|
1020
|
+
check_ctx = CheckContext(auth=ctx.auth, headers=CaseInsensitiveDict(headers) if headers else None)
|
|
1019
1021
|
try:
|
|
1020
1022
|
run_checks(
|
|
1021
1023
|
case=case,
|
|
1022
|
-
ctx=
|
|
1024
|
+
ctx=check_ctx,
|
|
1023
1025
|
checks=checks,
|
|
1024
1026
|
check_results=check_results,
|
|
1025
1027
|
result=result,
|
|
@@ -1069,6 +1071,7 @@ def wsgi_test(
|
|
|
1069
1071
|
headers = prepare_wsgi_headers(headers, auth, auth_type)
|
|
1070
1072
|
if not dry_run:
|
|
1071
1073
|
args = (
|
|
1074
|
+
ctx,
|
|
1072
1075
|
checks,
|
|
1073
1076
|
targets,
|
|
1074
1077
|
result,
|
|
@@ -1085,6 +1088,7 @@ def wsgi_test(
|
|
|
1085
1088
|
|
|
1086
1089
|
def _wsgi_test(
|
|
1087
1090
|
case: Case,
|
|
1091
|
+
ctx: RunnerContext,
|
|
1088
1092
|
checks: Iterable[CheckFunction],
|
|
1089
1093
|
targets: Iterable[Target],
|
|
1090
1094
|
result: TestResult,
|
|
@@ -1105,11 +1109,11 @@ def _wsgi_test(
|
|
|
1105
1109
|
result.logs.extend(recorded.records)
|
|
1106
1110
|
status = Status.success
|
|
1107
1111
|
check_results: list[Check] = []
|
|
1108
|
-
|
|
1112
|
+
check_ctx = CheckContext(auth=ctx.auth, headers=CaseInsensitiveDict(headers) if headers else None)
|
|
1109
1113
|
try:
|
|
1110
1114
|
run_checks(
|
|
1111
1115
|
case=case,
|
|
1112
|
-
ctx=
|
|
1116
|
+
ctx=check_ctx,
|
|
1113
1117
|
checks=checks,
|
|
1114
1118
|
check_results=check_results,
|
|
1115
1119
|
result=result,
|
|
@@ -1151,6 +1155,7 @@ def asgi_test(
|
|
|
1151
1155
|
|
|
1152
1156
|
if not dry_run:
|
|
1153
1157
|
args = (
|
|
1158
|
+
ctx,
|
|
1154
1159
|
checks,
|
|
1155
1160
|
targets,
|
|
1156
1161
|
result,
|
|
@@ -1167,6 +1172,7 @@ def asgi_test(
|
|
|
1167
1172
|
|
|
1168
1173
|
def _asgi_test(
|
|
1169
1174
|
case: Case,
|
|
1175
|
+
ctx: RunnerContext,
|
|
1170
1176
|
checks: Iterable[CheckFunction],
|
|
1171
1177
|
targets: Iterable[Target],
|
|
1172
1178
|
result: TestResult,
|
|
@@ -1183,11 +1189,11 @@ def _asgi_test(
|
|
|
1183
1189
|
run_targets(targets, context)
|
|
1184
1190
|
status = Status.success
|
|
1185
1191
|
check_results: list[Check] = []
|
|
1186
|
-
|
|
1192
|
+
check_ctx = CheckContext(auth=ctx.auth, headers=CaseInsensitiveDict(headers) if headers else None)
|
|
1187
1193
|
try:
|
|
1188
1194
|
run_checks(
|
|
1189
1195
|
case=case,
|
|
1190
|
-
ctx=
|
|
1196
|
+
ctx=check_ctx,
|
|
1191
1197
|
checks=checks,
|
|
1192
1198
|
check_results=check_results,
|
|
1193
1199
|
result=result,
|
|
@@ -527,7 +527,12 @@ def is_valid_path(parameters: dict[str, Any]) -> bool:
|
|
|
527
527
|
disallowed_values = (SLASH, "")
|
|
528
528
|
|
|
529
529
|
return not any(
|
|
530
|
-
(
|
|
530
|
+
(
|
|
531
|
+
value in disallowed_values
|
|
532
|
+
or is_illegal_surrogate(value)
|
|
533
|
+
or isinstance(value, str)
|
|
534
|
+
and (SLASH in value or "}" in value or "{" in value)
|
|
535
|
+
)
|
|
531
536
|
for value in parameters.values()
|
|
532
537
|
)
|
|
533
538
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from dataclasses import dataclass
|
|
4
3
|
import enum
|
|
4
|
+
from dataclasses import dataclass
|
|
5
5
|
from http.cookies import SimpleCookie
|
|
6
6
|
from typing import TYPE_CHECKING, Any, Dict, Generator, NoReturn, cast
|
|
7
7
|
from urllib.parse import parse_qs, urlparse
|
|
@@ -348,7 +348,7 @@ def ignored_auth(ctx: CheckContext, response: GenericResponse, case: Case) -> bo
|
|
|
348
348
|
security_parameters = _get_security_parameters(case.operation)
|
|
349
349
|
# Authentication is required for this API operation and response is successful
|
|
350
350
|
if security_parameters and 200 <= response.status_code < 300:
|
|
351
|
-
auth = _contains_auth(ctx, response.request, security_parameters)
|
|
351
|
+
auth = _contains_auth(ctx, case, response.request, security_parameters)
|
|
352
352
|
if auth == AuthKind.EXPLICIT:
|
|
353
353
|
# Auth is explicitly set, it is expected to be valid
|
|
354
354
|
# Check if invalid auth will give an error
|
|
@@ -412,11 +412,14 @@ def _get_security_parameters(operation: APIOperation) -> list[SecurityParameter]
|
|
|
412
412
|
|
|
413
413
|
|
|
414
414
|
def _contains_auth(
|
|
415
|
-
ctx: CheckContext, request: PreparedRequest, security_parameters: list[SecurityParameter]
|
|
415
|
+
ctx: CheckContext, case: Case, request: PreparedRequest, security_parameters: list[SecurityParameter]
|
|
416
416
|
) -> AuthKind | None:
|
|
417
417
|
"""Whether a request has authentication declared in the schema."""
|
|
418
418
|
from requests.cookies import RequestsCookieJar
|
|
419
419
|
|
|
420
|
+
# If auth comes from explicit `auth` option or a custom auth, it is always explicit
|
|
421
|
+
if ctx.auth is not None or case._has_explicit_auth:
|
|
422
|
+
return AuthKind.EXPLICIT
|
|
420
423
|
parsed = urlparse(request.url)
|
|
421
424
|
query = parse_qs(parsed.query) # type: ignore
|
|
422
425
|
# Load the `Cookie` header separately, because it is possible that `request._cookies` and the header are out of sync
|
|
@@ -5,6 +5,7 @@ from typing import Any, Callable
|
|
|
5
5
|
|
|
6
6
|
from ...internal.copy import fast_deepcopy
|
|
7
7
|
from ...internal.jsonschema import traverse_schema
|
|
8
|
+
from .patterns import update_quantifier
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
def to_json_schema(
|
|
@@ -24,6 +25,15 @@ def to_json_schema(
|
|
|
24
25
|
if schema_type == "file":
|
|
25
26
|
schema["type"] = "string"
|
|
26
27
|
schema["format"] = "binary"
|
|
28
|
+
pattern = schema.get("pattern")
|
|
29
|
+
min_length = schema.get("minLength")
|
|
30
|
+
max_length = schema.get("maxLength")
|
|
31
|
+
if pattern and (min_length or max_length):
|
|
32
|
+
new_pattern = update_quantifier(pattern, min_length, max_length)
|
|
33
|
+
if new_pattern != pattern:
|
|
34
|
+
schema.pop("minLength", None)
|
|
35
|
+
schema.pop("maxLength", None)
|
|
36
|
+
schema["pattern"] = new_pattern
|
|
27
37
|
if schema_type == "object":
|
|
28
38
|
if is_response_schema:
|
|
29
39
|
# Write-only properties should not occur in responses
|