schemathesis 3.35.5__tar.gz → 3.36.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/workflows/codeql-analysis.yml +3 -3
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/workflows/update-pre-commit.yml +1 -1
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.pre-commit-config.yaml +2 -2
- {schemathesis-3.35.5 → schemathesis-3.36.1}/PKG-INFO +2 -1
- {schemathesis-3.35.5 → schemathesis-3.36.1}/README.md +1 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/auth.rst +2 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/changelog.rst +45 -1
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/cli.rst +3 -3
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/contrib.rst +7 -7
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/extending.rst +4 -3
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/faq.rst +8 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/example/tests/extensions.py +4 -4
- {schemathesis-3.35.5 → schemathesis-3.36.1}/pyproject.toml +1 -1
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/_hypothesis.py +5 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/auths.py +1 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/checks.py +8 -5
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/__init__.py +4 -13
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/contrib/unique_data.py +1 -2
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/generation/coverage.py +81 -8
- schemathesis-3.36.1/src/schemathesis/internal/checks.py +55 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/models.py +24 -10
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/runner/__init__.py +7 -1
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/runner/impl/context.py +22 -4
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/runner/impl/core.py +63 -12
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/runner/impl/threadpool.py +3 -4
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/schemas.py +2 -2
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/graphql/loaders.py +2 -2
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/graphql/schemas.py +9 -5
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/checks.py +79 -27
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/loaders.py +2 -2
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/schemas.py +19 -3
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/stateful/config.py +1 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/stateful/context.py +10 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/stateful/runner.py +19 -2
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/stateful/state_machine.py +2 -1
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/stateful/validation.py +9 -4
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/hooks.py +1 -1
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/auth/test_cli.py +1 -1
- schemathesis-3.36.1/test/checks/test_checks.py +52 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-1].raw +1 -1
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-2].raw +1 -1
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +6 -2
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +1 -1
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/test_checks.py +1 -1
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/test_commands.py +18 -14
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/test_crashes.py +12 -10
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/test_junitxml.py +1 -1
- schemathesis-3.36.1/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +25 -0
- schemathesis-3.36.1/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +25 -0
- schemathesis-3.36.1/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +25 -0
- schemathesis-3.36.1/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +25 -0
- schemathesis-3.36.1/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +44 -0
- schemathesis-3.36.1/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +25 -0
- schemathesis-3.36.1/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +25 -0
- schemathesis-3.36.1/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +28 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/contrib/test_unique_data.py +39 -4
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/coverage/test_combinations.py +127 -0
- schemathesis-3.36.1/test/coverage/test_examples.py +133 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/coverage/test_phase.py +47 -54
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/runner/test_checks.py +27 -23
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/runner/test_runner.py +11 -11
- schemathesis-3.36.1/test/service/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/test_extensions.py +3 -3
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/graphql/test_basic.py +2 -2
- schemathesis-3.36.1/test/specs/openapi/__snapshots__/test_ignored_auth/test_explicit_auth_cli[Open API 3.0].raw +25 -0
- schemathesis-3.36.1/test/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/stateful/test_runner.py +28 -4
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_checks.py +1 -1
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_examples.py +1 -1
- schemathesis-3.36.1/test/specs/openapi/test_ignored_auth.py +293 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_pytest.py +2 -2
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test-corpus/test_corpus.py +2 -2
- schemathesis-3.35.5/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -28
- schemathesis-3.35.5/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -26
- schemathesis-3.35.5/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -26
- schemathesis-3.35.5/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -26
- schemathesis-3.35.5/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -26
- schemathesis-3.35.5/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -26
- schemathesis-3.35.5/test/specs/openapi/test_ignored_auth.py +0 -127
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.dockerignore +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/FUNDING.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/dependabot.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/workflows/build.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/workflows/codspeed.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/workflows/commit.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/workflows/example-build.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/workflows/example-no-build.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/workflows/master_update.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/workflows/release.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/workflows/test-corpus.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.github/workflows/test-hypothesis.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.gitignore +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.readthedocs.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.relint.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.rstcheck.cfg +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/.yamllint +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/CITATION.cff +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/CONTRIBUTING.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/Dockerfile +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/Dockerfile.bookworm +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/LICENSE +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/benches/cli.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/benches/references.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/benches/schema.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/changelog.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/codecov.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/corpus/data/graphql.tar.gz +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/corpus/data/openapi-3.0.tar.gz +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/corpus/data/openapi-3.1.tar.gz +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/corpus/data/swagger-2.0.tar.gz +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/corpus/tools.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/Makefile +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/additional-content.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/api.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/compatibility.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/conf.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/continuous_integration.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/data-generation.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/examples.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/experimental.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/getting-started.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/graphql.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/index.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/python.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/recipes.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/requirements.txt +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/sanitizing.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/service.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/stateful.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/docs/targeted.rst +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/example/Dockerfile +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/example/README.md +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/example/app.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/example/compose.yml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/example/openapi.json +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/example/requirements-app.in +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/example/requirements-app.txt +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/example/requirements-pytest.in +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/example/requirements-pytest.txt +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/example/tests/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/example/tests/conftest.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/example/tests/test_app.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/img/demo.gif +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/img/service_github_report.png +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/mypy.ini +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/_compat.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/_dependency_versions.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/_lazy_import.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/_override.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/_rate_limiter.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/_xml.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/__main__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/callbacks.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/cassettes.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/context.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/debug.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/handlers.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/junitxml.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/options.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/output/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/output/default.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/output/short.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/reporting.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/cli/sanitization.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/code_samples.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/constants.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/contrib/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/contrib/openapi/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/exceptions.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/experimental/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/extra/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/extra/_aiohttp.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/extra/_flask.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/extra/_server.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/extra/pytest_plugin.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/failures.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/filters.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/fixups/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/fixups/fast_api.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/fixups/utf8_bom.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/generation/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/generation/_hypothesis.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/generation/_methods.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/graphql.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/hooks.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/internal/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/internal/copy.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/internal/datetime.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/internal/deprecation.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/internal/extensions.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/internal/jsonschema.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/internal/output.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/internal/result.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/internal/transformation.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/internal/validation.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/lazy.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/loaders.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/parameters.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/py.typed +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/runner/events.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/runner/impl/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/runner/impl/solo.py +1 -1
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/runner/probes.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/runner/serialization.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/sanitization.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/serializers.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/service/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/service/auth.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/service/ci.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/service/client.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/service/constants.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/service/events.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/service/extensions.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/service/hosts.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/service/metadata.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/service/models.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/service/report.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/service/serialization.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/service/usage.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/graphql/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/graphql/_cache.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/_cache.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/converter.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/examples.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/formats.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/links.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/media_types.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/security.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/serialization.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/stateful/statistic.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/stateful/types.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/utils.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/specs/openapi/validation.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/stateful/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/stateful/events.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/stateful/sink.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/stateful/statistic.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/targets.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/throttling.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/transports/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/transports/asgi.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/transports/auth.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/transports/content_types.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/transports/headers.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/transports/responses.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/types.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/src/schemathesis/utils.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/cp1252_app.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/openapi/_aiohttp/handlers.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/apps/openapi/schema.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/auth/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/auth/conftest.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/auth/test_provider.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/auth/test_pytest.py +0 -0
- {schemathesis-3.35.5/test/cli → schemathesis-3.36.1/test/checks}/__init__.py +0 -0
- {schemathesis-3.35.5/test/cli/output → schemathesis-3.36.1/test/cli}/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_checks/test_deduplication_on_sanitized_header.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_deprecated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_filtered_out[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_generation_config[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_keyboard_interrupt[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_max_failures[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only_with_error[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args37].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_stateful_explicit_examples_with_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_unresolvable_links[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/cert.pem +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/conftest.py +0 -0
- {schemathesis-3.35.5/test/extra → schemathesis-3.36.1/test/cli/output}/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/output/test_default.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/test_asgi.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/test_callbacks.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/test_cassettes.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/test_hooks.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/test_options.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/test_reporting.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/cli/test_targeted.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/code_samples/conftest.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/code_samples/test_curl.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/code_samples/test_python.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/conftest.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/contrib/openapi/formats/test_uuid.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/contrib/test_install.py +0 -0
- {schemathesis-3.35.5/test/filters → schemathesis-3.36.1/test/coverage}/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/data/relative_files/components/parameters.yaml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/data/relative_files/components/responses.yaml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/data/relative_files/components/schemas.yaml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/data/relative_files/main.yaml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/data/relative_files/paths/user-account.yaml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/experimental/conftest.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/experimental/test_experiments.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/experimental/test_openapi_3_1.py +0 -0
- {schemathesis-3.35.5/test/runner → schemathesis-3.36.1/test/extra}/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/extra/test_aiohttp.py +0 -0
- {schemathesis-3.35.5/test/service → schemathesis-3.36.1/test/filters}/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/filters/test_expressions.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/filters/test_matching.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/hooks/test_filter_operations.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/hooks/test_filters.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/hooks/test_hooks.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/loaders/conftest.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/loaders/test_app.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/loaders/test_common.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/loaders/test_graphql.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/loaders/test_openapi.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/loaders/test_yaml.py +0 -0
- {schemathesis-3.35.5/test/specs/openapi/stateful → schemathesis-3.36.1/test/runner}/__init__.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/runner/test_events.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/runner/test_probes.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_cli/test_client_error_on_project_details[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_cli/test_unauthorized[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_custom_format.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/conftest.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/test_auth.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/test_ci.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/test_cli.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/test_report.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/test_serialization.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/service/test_usage.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/graphql/test_pytest.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/blank.pdf +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/parameters/test_forms.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/parameters/test_non_payload.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/stateful/conftest.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/stateful/test_config.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/stateful/test_stateful.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_hypothesis.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_links.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_media_types.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_negative.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_randomized.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_security.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_serializing.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/specs/openapi/test_validation.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_app.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_asgi.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_async.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_common_parameters.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_converter.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_dereferencing.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_direct_access.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_examples.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_filters.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_fixups.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_hypothesis.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_internal.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_lazy.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_models.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_output.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_package.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_parameters.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_parametrization.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_petstore.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_rate_limit.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_recoverable_errors.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_required.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_sanitizing_output.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_schemas.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_serialization.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_stateful.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_unittest.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_utils.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/test_wsgi.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/transports/test_content_types.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test/utils.py +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/test_server.sh +0 -0
- {schemathesis-3.35.5 → schemathesis-3.36.1}/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.7
|
|
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.7
|
|
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.7
|
|
@@ -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.
|
|
3
|
+
Version: 3.36.1
|
|
4
4
|
Summary: Property-based testing framework for Open API and GraphQL based apps
|
|
5
5
|
Project-URL: Documentation, https://schemathesis.readthedocs.io/en/stable/
|
|
6
6
|
Project-URL: Changelog, https://schemathesis.readthedocs.io/en/stable/changelog.html
|
|
@@ -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
|
|
@@ -443,6 +443,8 @@ For example, you can use refresh tokens for authentication.
|
|
|
443
443
|
case.headers = case.headers or {}
|
|
444
444
|
case.headers = {"Authorization": f"Bearer {data}"}
|
|
445
445
|
|
|
446
|
+
.. _third-party-auth:
|
|
447
|
+
|
|
446
448
|
Third-party implementation
|
|
447
449
|
--------------------------
|
|
448
450
|
|
|
@@ -1,9 +1,53 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
-
:version:`Unreleased <v3.
|
|
4
|
+
:version:`Unreleased <v3.36.1...HEAD>` - TBD
|
|
5
5
|
--------------------------------------------
|
|
6
6
|
|
|
7
|
+
.. _v3.36.1:
|
|
8
|
+
|
|
9
|
+
:version:`3.36.1 <v3.36.0...v3.36.1>` - 2024-09-23
|
|
10
|
+
--------------------------------------------------
|
|
11
|
+
|
|
12
|
+
**Changed**
|
|
13
|
+
|
|
14
|
+
- Use ``requestBody`` examples as the source of valid inputs during the coverage phase.
|
|
15
|
+
- Reuse top-level schema examples in more places during the coverage phase.
|
|
16
|
+
- Generate more combinations of optional parameters during the coverage phase.
|
|
17
|
+
|
|
18
|
+
**Fixed**
|
|
19
|
+
|
|
20
|
+
- ``ignored_auth`` false positives on custom auth and explicit ``--auth`` CLI option. :issue:`2462`
|
|
21
|
+
- Avoid skipping string generation if they have ``pattern`` during the coverage phase.
|
|
22
|
+
|
|
23
|
+
.. _v3.36.0:
|
|
24
|
+
|
|
25
|
+
:version:`3.36.0 <v3.35.5...v3.36.0>` - 2024-09-15
|
|
26
|
+
--------------------------------------------------
|
|
27
|
+
|
|
28
|
+
**Added**
|
|
29
|
+
|
|
30
|
+
- Reimplementation of test case deduplication in CLI. It effectively un-deprecates the ``--contrib-unique-data`` CLI option.
|
|
31
|
+
- Extend ``ignored_auth`` to check for incorrect auth.
|
|
32
|
+
- More ``properties`` combinations for the coverage phase.
|
|
33
|
+
- Use the `default` field as a source of valid inputs during the coverage phase.
|
|
34
|
+
|
|
35
|
+
**Changed**
|
|
36
|
+
|
|
37
|
+
- Add ``ctx`` as the first argument for all checks.
|
|
38
|
+
This is a step towards checks that cover multiple responses at once.
|
|
39
|
+
- Validate custom check function signatures.
|
|
40
|
+
|
|
41
|
+
**Deprecated**
|
|
42
|
+
|
|
43
|
+
- Custom checks that do not accept ``ctx`` as the first argument.
|
|
44
|
+
|
|
45
|
+
**Fixed**
|
|
46
|
+
|
|
47
|
+
- Avoid running checks twice in new-style stateful tests.
|
|
48
|
+
- Missing ``timeout`` in certain situations when loading the schema from the network.
|
|
49
|
+
- Ignoring ``with_security_parameters`` in runner in some cases.
|
|
50
|
+
|
|
7
51
|
.. _v3.35.5:
|
|
8
52
|
|
|
9
53
|
:version:`3.35.5 <v3.35.4...v3.35.5>` - 2024-09-08
|
|
@@ -677,11 +677,11 @@ To use your custom checks with Schemathesis CLI, you need to register them via t
|
|
|
677
677
|
|
|
678
678
|
|
|
679
679
|
@schemathesis.check
|
|
680
|
-
def new_check(response, case):
|
|
680
|
+
def new_check(ctx, response, case):
|
|
681
681
|
# some awesome assertions!
|
|
682
682
|
pass
|
|
683
683
|
|
|
684
|
-
The registered check should accept a ``response`` with ``requests.Response`` / ``schemathesis.utils.WSGIResponse`` type and
|
|
684
|
+
The registered check should accept ``ctx``, a ``response`` with ``requests.Response`` / ``schemathesis.utils.WSGIResponse`` type and
|
|
685
685
|
``case`` with ``schemathesis.models.Case`` type. This code should be placed in the module you pass to the ``SCHEMATHESIS_HOOKS`` environment variable.
|
|
686
686
|
|
|
687
687
|
Then your checks will be available in Schemathesis CLI, and you can use them via the ``-c`` command-line option.
|
|
@@ -700,7 +700,7 @@ response code is ``200``.
|
|
|
700
700
|
|
|
701
701
|
|
|
702
702
|
@schemathesis.check
|
|
703
|
-
def conditional_check(response, case):
|
|
703
|
+
def conditional_check(ctx, response, case):
|
|
704
704
|
if response.status_code == 200:
|
|
705
705
|
... # some awesome assertions!
|
|
706
706
|
else:
|
|
@@ -6,13 +6,6 @@ Schemathesis ships a set of optional features that could help to tune your tests
|
|
|
6
6
|
Unique data generation
|
|
7
7
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
8
8
|
|
|
9
|
-
.. important::
|
|
10
|
-
|
|
11
|
-
The ``--contrib-unique-data`` CLI option and the corresponding ``schemathesis.contrib.unique_data`` hook are **DEPRECATED**. The concept of this feature
|
|
12
|
-
does not fit the core principles of Hypothesis where strategies are configurable on a per-example basis but this feature implies
|
|
13
|
-
uniqueness across examples. This leads to cryptic error messages about external state and flaky test runs, therefore it will be removed in
|
|
14
|
-
Schemathesis 4.0
|
|
15
|
-
|
|
16
9
|
By default, Schemathesis may generate the same test cases as all data is randomized. If this behavior does not match your expectations, or
|
|
17
10
|
your test budges, you can force Schemathesis to generate unique test cases.
|
|
18
11
|
|
|
@@ -22,6 +15,13 @@ In CLI:
|
|
|
22
15
|
|
|
23
16
|
$ st run --contrib-unique-data https://example.schemathesis.io/openapi.json
|
|
24
17
|
|
|
18
|
+
.. important::
|
|
19
|
+
|
|
20
|
+
The ``schemathesis.contrib.unique_data`` hook is **DEPRECATED**. The concept of this feature
|
|
21
|
+
does not fit the core principles of Hypothesis where strategies are configurable on a per-example basis but this feature implies
|
|
22
|
+
uniqueness across examples. This leads to cryptic error messages about external state and flaky test runs, therefore it will be removed in
|
|
23
|
+
Schemathesis 4.0
|
|
24
|
+
|
|
25
25
|
In Python tests:
|
|
26
26
|
|
|
27
27
|
.. code:: python
|
|
@@ -667,7 +667,7 @@ Checks
|
|
|
667
667
|
Checks in Schemathesis allow you to validate responses from your API, ensuring they adhere to both general and application-specific expectations.
|
|
668
668
|
They can be particularly useful for checking behaviors that are specific to your application and go beyond the built-in checks provided by Schemathesis.
|
|
669
669
|
|
|
670
|
-
Define a check as a function taking
|
|
670
|
+
Define a check as a function taking three parameters: ``ctx``, ``response`` and ``case``, and register it using the ``@schemathesis.check`` decorator.
|
|
671
671
|
|
|
672
672
|
.. code-block:: python
|
|
673
673
|
|
|
@@ -675,9 +675,10 @@ Define a check as a function taking two parameters: ``response`` and ``case``, a
|
|
|
675
675
|
|
|
676
676
|
|
|
677
677
|
@schemathesis.check
|
|
678
|
-
def my_check(response, case) -> None:
|
|
678
|
+
def my_check(ctx, response, case) -> None:
|
|
679
679
|
...
|
|
680
680
|
|
|
681
|
+
- ``ctx`` holds a context relevant to the current check. Currently unused and is placed here for future-compatibility.
|
|
681
682
|
- ``response`` is the API response, an instance of ``requests.Response`` or ``schemathesis.utils.WSGIResponse``, based on your integration method.
|
|
682
683
|
- ``case`` is the ``schemathesis.Case`` instance used to send data to the application.
|
|
683
684
|
|
|
@@ -691,7 +692,7 @@ Here’s an example of a check that ensures that when an ``item_id`` of 42 is us
|
|
|
691
692
|
|
|
692
693
|
|
|
693
694
|
@schemathesis.check
|
|
694
|
-
def my_check(response, case) -> None:
|
|
695
|
+
def my_check(ctx, response, case) -> None:
|
|
695
696
|
if case.path_parameters.get("item_id") == 42 and ANSWER not in response.text:
|
|
696
697
|
raise AssertionError("The ultimate answer not found!")
|
|
697
698
|
|
|
@@ -322,6 +322,14 @@ Python:
|
|
|
322
322
|
|
|
323
323
|
This adjustment ensures that Schemathesis does not include NULL bytes in strings for all your tests, making them compatible with systems that reject such inputs.
|
|
324
324
|
|
|
325
|
+
How can I use custom authentication methods with Schemathesis?
|
|
326
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
327
|
+
|
|
328
|
+
Schemathesis supports custom authentication through its extensions system.
|
|
329
|
+
|
|
330
|
+
For detailed instructions on implementing custom authentication methods or using existing libraries for that,
|
|
331
|
+
refer to our :ref:`Custom Authentication <custom-auth>` and :ref:`Third-party Authentication <third-party-auth>` sections.
|
|
332
|
+
|
|
325
333
|
Working with API schemas
|
|
326
334
|
------------------------
|
|
327
335
|
|
|
@@ -17,18 +17,18 @@ schemathesis.openapi.format("fullname", fullname())
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
@schemathesis.hook
|
|
20
|
-
def filter_body(
|
|
20
|
+
def filter_body(ctx, body):
|
|
21
21
|
"""Modification over the default strategy for payload generation."""
|
|
22
22
|
return body.get("id", 10001) > 10000
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
@schemathesis.check
|
|
26
|
-
def not_so_slow(response, case):
|
|
26
|
+
def not_so_slow(ctx, response, case):
|
|
27
27
|
"""Custom response check."""
|
|
28
28
|
assert response.elapsed < timedelta(milliseconds=100), "Response is slow!"
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
@schemathesis.target
|
|
32
|
-
def big_response(
|
|
32
|
+
def big_response(ctx):
|
|
33
33
|
"""Custom data generation target."""
|
|
34
|
-
return float(len(
|
|
34
|
+
return float(len(ctx.response.content))
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "schemathesis"
|
|
7
|
-
version = "3.
|
|
7
|
+
version = "3.36.1"
|
|
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):
|
|
@@ -15,11 +15,12 @@ from .specs.openapi.checks import (
|
|
|
15
15
|
)
|
|
16
16
|
|
|
17
17
|
if TYPE_CHECKING:
|
|
18
|
-
from .
|
|
18
|
+
from .internal.checks import CheckContext, CheckFunction
|
|
19
|
+
from .models import Case
|
|
19
20
|
from .transports.responses import GenericResponse
|
|
20
21
|
|
|
21
22
|
|
|
22
|
-
def not_a_server_error(response: GenericResponse, case: Case) -> bool | None:
|
|
23
|
+
def not_a_server_error(ctx: CheckContext, response: GenericResponse, case: Case) -> bool | None:
|
|
23
24
|
"""A check to verify that the response is not a server-side error."""
|
|
24
25
|
from .specs.graphql.schemas import GraphQLCase
|
|
25
26
|
from .specs.graphql.validation import validate_graphql_response
|
|
@@ -64,14 +65,16 @@ def register(check: CheckFunction) -> CheckFunction:
|
|
|
64
65
|
.. code-block:: python
|
|
65
66
|
|
|
66
67
|
@schemathesis.check
|
|
67
|
-
def new_check(response, case):
|
|
68
|
+
def new_check(ctx, response, case):
|
|
68
69
|
# some awesome assertions!
|
|
69
70
|
...
|
|
70
71
|
"""
|
|
71
72
|
from . import cli
|
|
73
|
+
from .internal.checks import wrap_check
|
|
72
74
|
|
|
75
|
+
_check = wrap_check(check)
|
|
73
76
|
global ALL_CHECKS
|
|
74
77
|
|
|
75
|
-
ALL_CHECKS += (
|
|
76
|
-
cli.CHECKS_TYPE.choices += (
|
|
78
|
+
ALL_CHECKS += (_check,)
|
|
79
|
+
cli.CHECKS_TYPE.choices += (_check.__name__,) # type: ignore
|
|
77
80
|
return check
|
|
@@ -104,13 +104,6 @@ DEPRECATED_SHOW_ERROR_TRACEBACKS_OPTION_WARNING = (
|
|
|
104
104
|
"Warning: Option `--show-errors-tracebacks` is deprecated and will be removed in Schemathesis 4.0. "
|
|
105
105
|
"Use `--show-trace` instead"
|
|
106
106
|
)
|
|
107
|
-
DEPRECATED_CONTRIB_UNIQUE_DATA_OPTION_WARNING = (
|
|
108
|
-
"The `--contrib-unique-data` CLI option and the corresponding `schemathesis.contrib.unique_data` hook "
|
|
109
|
-
"are **DEPRECATED**. The concept of this feature does not fit the core principles of Hypothesis where "
|
|
110
|
-
"strategies are configurable on a per-example basis but this feature implies uniqueness across examples. "
|
|
111
|
-
"This leads to cryptic error messages about external state and flaky test runs, "
|
|
112
|
-
"therefore it will be removed in Schemathesis 4.0"
|
|
113
|
-
)
|
|
114
107
|
CASSETTES_PATH_INVALID_USAGE_MESSAGE = "Can't use `--store-network-log` and `--cassette-path` simultaneously"
|
|
115
108
|
COLOR_OPTIONS_INVALID_USAGE_MESSAGE = "Can't use `--no-color` and `--force-color` simultaneously"
|
|
116
109
|
PHASES_INVALID_USAGE_MESSAGE = "Can't use `--hypothesis-phases` and `--hypothesis-no-phases` simultaneously"
|
|
@@ -439,7 +432,7 @@ REPORT_TO_SERVICE = ReportToService()
|
|
|
439
432
|
"-A",
|
|
440
433
|
type=click.Choice(["basic", "digest"], case_sensitive=False),
|
|
441
434
|
default="basic",
|
|
442
|
-
help="Specify the authentication method",
|
|
435
|
+
help="Specify the authentication method. For custom authentication methods, see our Authentication documentation: https://schemathesis.readthedocs.io/en/stable/auth.html#custom-auth",
|
|
443
436
|
show_default=True,
|
|
444
437
|
metavar="",
|
|
445
438
|
)
|
|
@@ -949,9 +942,6 @@ def run(
|
|
|
949
942
|
entry for health_check in hypothesis_suppress_health_check for entry in health_check.as_hypothesis()
|
|
950
943
|
]
|
|
951
944
|
|
|
952
|
-
if contrib_unique_data:
|
|
953
|
-
click.secho(DEPRECATED_CONTRIB_UNIQUE_DATA_OPTION_WARNING, fg="yellow")
|
|
954
|
-
|
|
955
945
|
if show_errors_tracebacks:
|
|
956
946
|
click.secho(DEPRECATED_SHOW_ERROR_TRACEBACKS_OPTION_WARNING, fg="yellow")
|
|
957
947
|
show_trace = show_errors_tracebacks
|
|
@@ -1160,8 +1150,6 @@ def run(
|
|
|
1160
1150
|
else:
|
|
1161
1151
|
_fixups.install(fixups)
|
|
1162
1152
|
|
|
1163
|
-
if contrib_unique_data:
|
|
1164
|
-
contrib.unique_data.install()
|
|
1165
1153
|
if contrib_openapi_formats_uuid:
|
|
1166
1154
|
contrib.openapi.formats.uuid.install()
|
|
1167
1155
|
if contrib_openapi_fill_missing_examples:
|
|
@@ -1197,6 +1185,7 @@ def run(
|
|
|
1197
1185
|
seed=hypothesis_seed,
|
|
1198
1186
|
exit_first=exit_first,
|
|
1199
1187
|
max_failures=max_failures,
|
|
1188
|
+
unique_data=contrib_unique_data,
|
|
1200
1189
|
dry_run=dry_run,
|
|
1201
1190
|
store_interactions=cassette_path is not None,
|
|
1202
1191
|
checks=selected_checks,
|
|
@@ -1321,6 +1310,7 @@ def into_event_stream(
|
|
|
1321
1310
|
exit_first: bool,
|
|
1322
1311
|
max_failures: int | None,
|
|
1323
1312
|
rate_limit: str | None,
|
|
1313
|
+
unique_data: bool,
|
|
1324
1314
|
dry_run: bool,
|
|
1325
1315
|
store_interactions: bool,
|
|
1326
1316
|
stateful: Stateful | None,
|
|
@@ -1364,6 +1354,7 @@ def into_event_stream(
|
|
|
1364
1354
|
exit_first=exit_first,
|
|
1365
1355
|
max_failures=max_failures,
|
|
1366
1356
|
started_at=started_at,
|
|
1357
|
+
unique_data=unique_data,
|
|
1367
1358
|
dry_run=dry_run,
|
|
1368
1359
|
store_interactions=store_interactions,
|
|
1369
1360
|
checks=checks,
|
|
@@ -13,8 +13,7 @@ if TYPE_CHECKING:
|
|
|
13
13
|
|
|
14
14
|
def install() -> None:
|
|
15
15
|
warnings.warn(
|
|
16
|
-
"The
|
|
17
|
-
"are **DEPRECATED**. The concept of this feature does not fit the core principles of Hypothesis where "
|
|
16
|
+
"The `schemathesis.contrib.unique_data` hook is **DEPRECATED**. The concept of this feature does not fit the core principles of Hypothesis where "
|
|
18
17
|
"strategies are configurable on a per-example basis but this feature implies uniqueness across examples. "
|
|
19
18
|
"This leads to cryptic error messages about external state and flaky test runs, "
|
|
20
19
|
"therefore it will be removed in Schemathesis 4.0",
|
|
@@ -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
|
|
@@ -162,6 +163,7 @@ def cover_schema_iter(ctx: CoverageContext, schema: dict | bool) -> Generator[Ge
|
|
|
162
163
|
schema = {}
|
|
163
164
|
else:
|
|
164
165
|
types = schema.get("type", [])
|
|
166
|
+
push_examples_to_properties(schema)
|
|
165
167
|
if not isinstance(types, list):
|
|
166
168
|
types = [types] # type: ignore[unreachable]
|
|
167
169
|
if not types:
|
|
@@ -238,6 +240,8 @@ def _get_properties(schema: dict | bool) -> dict | bool:
|
|
|
238
240
|
if isinstance(schema, dict):
|
|
239
241
|
if "example" in schema:
|
|
240
242
|
return {"const": schema["example"]}
|
|
243
|
+
if "default" in schema:
|
|
244
|
+
return {"const": schema["default"]}
|
|
241
245
|
if schema.get("examples"):
|
|
242
246
|
return {"enum": schema["examples"]}
|
|
243
247
|
if schema.get("type") == "object":
|
|
@@ -262,18 +266,33 @@ def _positive_string(ctx: CoverageContext, schema: dict) -> Generator[GeneratedV
|
|
|
262
266
|
"""Generate positive string values."""
|
|
263
267
|
# Boundary and near boundary values
|
|
264
268
|
min_length = schema.get("minLength")
|
|
269
|
+
if min_length == 0:
|
|
270
|
+
min_length = None
|
|
265
271
|
max_length = schema.get("maxLength")
|
|
266
272
|
example = schema.get("example")
|
|
267
273
|
examples = schema.get("examples")
|
|
268
|
-
|
|
274
|
+
default = schema.get("default")
|
|
275
|
+
if example or examples or default:
|
|
269
276
|
if example:
|
|
270
277
|
yield PositiveValue(example)
|
|
271
278
|
if examples:
|
|
272
279
|
for example in examples:
|
|
273
280
|
yield PositiveValue(example)
|
|
281
|
+
if (
|
|
282
|
+
default
|
|
283
|
+
and not (example is not None and default == example)
|
|
284
|
+
and not (examples is not None and any(default == ex for ex in examples))
|
|
285
|
+
):
|
|
286
|
+
yield PositiveValue(default)
|
|
274
287
|
elif not min_length and not max_length:
|
|
275
288
|
# Default positive value
|
|
276
289
|
yield PositiveValue(ctx.generate_from_schema(schema))
|
|
290
|
+
elif "pattern" in schema:
|
|
291
|
+
# Without merging `maxLength` & `minLength` into a regex it is problematic
|
|
292
|
+
# to generate a valid value as the unredlying machinery will resort to filtering
|
|
293
|
+
# and it is unlikely that it will generate a string of that length
|
|
294
|
+
yield PositiveValue(ctx.generate_from_schema(schema))
|
|
295
|
+
return
|
|
277
296
|
|
|
278
297
|
seen = set()
|
|
279
298
|
|
|
@@ -327,13 +346,20 @@ def _positive_number(ctx: CoverageContext, schema: dict) -> Generator[GeneratedV
|
|
|
327
346
|
multiple_of = schema.get("multipleOf")
|
|
328
347
|
example = schema.get("example")
|
|
329
348
|
examples = schema.get("examples")
|
|
349
|
+
default = schema.get("default")
|
|
330
350
|
|
|
331
|
-
if example or examples:
|
|
351
|
+
if example or examples or default:
|
|
332
352
|
if example:
|
|
333
353
|
yield PositiveValue(example)
|
|
334
354
|
if examples:
|
|
335
355
|
for example in examples:
|
|
336
356
|
yield PositiveValue(example)
|
|
357
|
+
if (
|
|
358
|
+
default
|
|
359
|
+
and not (example is not None and default == example)
|
|
360
|
+
and not (examples is not None and any(default == ex for ex in examples))
|
|
361
|
+
):
|
|
362
|
+
yield PositiveValue(default)
|
|
337
363
|
elif not minimum and not maximum:
|
|
338
364
|
# Default positive value
|
|
339
365
|
yield PositiveValue(ctx.generate_from_schema(schema))
|
|
@@ -382,13 +408,20 @@ def _positive_array(ctx: CoverageContext, schema: dict, template: list) -> Gener
|
|
|
382
408
|
seen = set()
|
|
383
409
|
example = schema.get("example")
|
|
384
410
|
examples = schema.get("examples")
|
|
411
|
+
default = schema.get("default")
|
|
385
412
|
|
|
386
|
-
if example or examples:
|
|
413
|
+
if example or examples or default:
|
|
387
414
|
if example:
|
|
388
415
|
yield PositiveValue(example)
|
|
389
416
|
if examples:
|
|
390
417
|
for example in examples:
|
|
391
418
|
yield PositiveValue(example)
|
|
419
|
+
if (
|
|
420
|
+
default
|
|
421
|
+
and not (example is not None and default == example)
|
|
422
|
+
and not (examples is not None and any(default == ex for ex in examples))
|
|
423
|
+
):
|
|
424
|
+
yield PositiveValue(default)
|
|
392
425
|
else:
|
|
393
426
|
yield PositiveValue(template)
|
|
394
427
|
seen.add(len(template))
|
|
@@ -425,19 +458,41 @@ def _positive_array(ctx: CoverageContext, schema: dict, template: list) -> Gener
|
|
|
425
458
|
def _positive_object(ctx: CoverageContext, schema: dict, template: dict) -> Generator[GeneratedValue, None, None]:
|
|
426
459
|
example = schema.get("example")
|
|
427
460
|
examples = schema.get("examples")
|
|
461
|
+
default = schema.get("default")
|
|
428
462
|
|
|
429
|
-
if example or examples:
|
|
463
|
+
if example or examples or default:
|
|
430
464
|
if example:
|
|
431
465
|
yield PositiveValue(example)
|
|
432
466
|
if examples:
|
|
433
467
|
for example in examples:
|
|
434
468
|
yield PositiveValue(example)
|
|
469
|
+
if (
|
|
470
|
+
default
|
|
471
|
+
and not (example is not None and default == example)
|
|
472
|
+
and not (examples is not None and any(default == ex for ex in examples))
|
|
473
|
+
):
|
|
474
|
+
yield PositiveValue(default)
|
|
475
|
+
|
|
435
476
|
else:
|
|
436
477
|
yield PositiveValue(template)
|
|
437
|
-
|
|
478
|
+
|
|
438
479
|
properties = schema.get("properties", {})
|
|
439
|
-
|
|
440
|
-
|
|
480
|
+
required = set(schema.get("required", []))
|
|
481
|
+
optional = list(set(properties) - required)
|
|
482
|
+
optional.sort()
|
|
483
|
+
|
|
484
|
+
# Generate combinations with required properties and one optional property
|
|
485
|
+
for name in optional:
|
|
486
|
+
combo = {k: v for k, v in template.items() if k in required or k == name}
|
|
487
|
+
if combo != template:
|
|
488
|
+
yield PositiveValue(combo)
|
|
489
|
+
# Generate one combination for each size from 2 to N-1
|
|
490
|
+
for selection in select_combinations(optional):
|
|
491
|
+
combo = {k: v for k, v in template.items() if k in required or k in selection}
|
|
492
|
+
yield PositiveValue(combo)
|
|
493
|
+
# Generate only required properties
|
|
494
|
+
if set(properties) != required:
|
|
495
|
+
only_required = {k: v for k, v in template.items() if k in required}
|
|
441
496
|
yield PositiveValue(only_required)
|
|
442
497
|
seen = set()
|
|
443
498
|
for name, sub_schema in properties.items():
|
|
@@ -450,6 +505,11 @@ def _positive_object(ctx: CoverageContext, schema: dict, template: dict) -> Gene
|
|
|
450
505
|
seen.clear()
|
|
451
506
|
|
|
452
507
|
|
|
508
|
+
def select_combinations(optional: list[str]) -> Iterator[tuple[str, ...]]:
|
|
509
|
+
for size in range(2, len(optional)):
|
|
510
|
+
yield next(combinations(optional, size))
|
|
511
|
+
|
|
512
|
+
|
|
453
513
|
def _negative_enum(ctx: CoverageContext, value: list) -> Generator[GeneratedValue, None, None]:
|
|
454
514
|
strategy = JSON_STRATEGY.filter(lambda x: x not in value)
|
|
455
515
|
# The exact negative value is not important here
|
|
@@ -528,3 +588,16 @@ def _negative_type(ctx: CoverageContext, seen: set, ty: str | list[str]) -> Gene
|
|
|
528
588
|
value = ctx.generate_from(negative_strategy, cached=True)
|
|
529
589
|
yield NegativeValue(value)
|
|
530
590
|
seen.add(_to_hashable_key(value))
|
|
591
|
+
|
|
592
|
+
|
|
593
|
+
def push_examples_to_properties(schema: dict[str, Any]) -> None:
|
|
594
|
+
"""Push examples from the top-level 'examples' field to the corresponding properties."""
|
|
595
|
+
if "examples" in schema and "properties" in schema:
|
|
596
|
+
properties = schema["properties"]
|
|
597
|
+
for example in schema["examples"]:
|
|
598
|
+
for prop, value in example.items():
|
|
599
|
+
if prop in properties:
|
|
600
|
+
if "examples" not in properties[prop]:
|
|
601
|
+
properties[prop]["examples"] = []
|
|
602
|
+
if value not in schema["properties"][prop]["examples"]:
|
|
603
|
+
properties[prop]["examples"].append(value)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import inspect
|
|
4
|
+
import warnings
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
from typing import TYPE_CHECKING, Callable, Optional
|
|
7
|
+
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from ..types import RawAuth
|
|
10
|
+
from ..models import Case
|
|
11
|
+
from ..transports.responses import GenericResponse
|
|
12
|
+
from requests.structures import CaseInsensitiveDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
CheckFunction = Callable[["CheckContext", "GenericResponse", "Case"], Optional[bool]]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@dataclass
|
|
19
|
+
class CheckContext:
|
|
20
|
+
"""Context for Schemathesis checks.
|
|
21
|
+
|
|
22
|
+
Provides access to broader test execution data beyond individual test cases.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
auth: RawAuth | None = None
|
|
26
|
+
headers: CaseInsensitiveDict | None = None
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def wrap_check(check: Callable) -> CheckFunction:
|
|
30
|
+
"""Make older checks compatible with the new signature."""
|
|
31
|
+
signature = inspect.signature(check)
|
|
32
|
+
parameters = len(signature.parameters)
|
|
33
|
+
|
|
34
|
+
if parameters == 3:
|
|
35
|
+
# New style check, return as is
|
|
36
|
+
return check
|
|
37
|
+
|
|
38
|
+
if parameters == 2:
|
|
39
|
+
# Old style check, wrap it
|
|
40
|
+
warnings.warn(
|
|
41
|
+
f"The check function '{check.__name__}' uses an outdated signature. "
|
|
42
|
+
"Please update it to accept 'ctx' as the first argument: "
|
|
43
|
+
"(ctx: CheckContext, response: GenericResponse, case: Case) -> Optional[bool]",
|
|
44
|
+
DeprecationWarning,
|
|
45
|
+
stacklevel=2,
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
def wrapper(_: CheckContext, response: GenericResponse, case: Case) -> Optional[bool]:
|
|
49
|
+
return check(response, case)
|
|
50
|
+
|
|
51
|
+
wrapper.__name__ = check.__name__
|
|
52
|
+
|
|
53
|
+
return wrapper
|
|
54
|
+
|
|
55
|
+
raise ValueError(f"Invalid check function signature. Expected 2 or 3 parameters, got {parameters}")
|