schemathesis 3.34.3__tar.gz → 3.35.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.pre-commit-config.yaml +2 -2
- {schemathesis-3.34.3 → schemathesis-3.35.0}/PKG-INFO +1 -1
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/changelog.rst +11 -1
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/experimental.rst +25 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/extending.rst +28 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/pyproject.toml +1 -1
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_hypothesis.py +55 -26
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/__init__.py +25 -4
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/context.py +4 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/handlers.py +4 -1
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/output/default.py +4 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/contrib/openapi/fill_missing_examples.py +1 -1
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/experimental/__init__.py +7 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/generation/__init__.py +4 -37
- schemathesis-3.35.0/src/schemathesis/generation/_hypothesis.py +51 -0
- schemathesis-3.35.0/src/schemathesis/generation/_methods.py +40 -0
- schemathesis-3.35.0/src/schemathesis/generation/coverage.py +433 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/schemas.py +2 -1
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/extensions.py +1 -1
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/examples.py +1 -1
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/schemas.py +2 -1
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/stateful/__init__.py +1 -2
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/utils.py +0 -10
- schemathesis-3.35.0/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +26 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +1 -1
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_commands.py +38 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/conftest.py +3 -1
- schemathesis-3.35.0/test/coverage/test_combinations.py +590 -0
- schemathesis-3.35.0/test/coverage/test_phase.py +185 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_examples.py +1 -2
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test-corpus/test_corpus.py +8 -1
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.dockerignore +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/FUNDING.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/dependabot.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/build.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/codeql-analysis.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/codspeed.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/commit.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/example-build.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/example-no-build.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/master_update.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/release.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/test-corpus.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/test-hypothesis.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/update-pre-commit.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.gitignore +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.readthedocs.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.relint.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.rstcheck.cfg +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/.yamllint +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/CITATION.cff +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/CONTRIBUTING.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/Dockerfile +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/Dockerfile.bookworm +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/LICENSE +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/README.md +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/benches/cli.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/benches/references.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/benches/schema.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/changelog.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/codecov.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/corpus/data/graphql.tar.gz +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/corpus/data/openapi-3.0.tar.gz +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/corpus/data/openapi-3.1.tar.gz +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/corpus/data/swagger-2.0.tar.gz +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/corpus/tools.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/Makefile +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/additional-content.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/api.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/auth.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/cli.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/compatibility.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/conf.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/continuous_integration.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/contrib.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/data-generation.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/examples.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/faq.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/getting-started.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/graphql.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/index.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/python.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/recipes.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/requirements.txt +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/sanitizing.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/service.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/stateful.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/targeted.rst +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/example/Dockerfile +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/example/README.md +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/example/app.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/example/compose.yml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/example/openapi.json +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/example/requirements-app.in +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/example/requirements-app.txt +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/example/requirements-pytest.in +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/example/requirements-pytest.txt +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/example/tests/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/example/tests/conftest.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/example/tests/extensions.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/example/tests/test_app.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/img/demo.gif +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/img/service_github_report.png +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/mypy.ini +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_compat.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_dependency_versions.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_lazy_import.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_override.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_rate_limiter.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_xml.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/auths.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/checks.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/__main__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/callbacks.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/cassettes.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/debug.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/junitxml.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/options.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/output/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/output/short.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/reporting.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/sanitization.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/code_samples.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/constants.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/contrib/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/contrib/openapi/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/contrib/unique_data.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/exceptions.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/extra/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/extra/_aiohttp.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/extra/_flask.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/extra/_server.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/extra/pytest_plugin.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/failures.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/filters.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/fixups/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/fixups/fast_api.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/fixups/utf8_bom.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/graphql.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/hooks.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/copy.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/datetime.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/deprecation.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/extensions.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/jsonschema.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/output.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/result.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/transformation.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/validation.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/lazy.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/loaders.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/models.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/parameters.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/py.typed +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/events.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/impl/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/impl/core.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/impl/solo.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/impl/threadpool.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/probes.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/serialization.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/sanitization.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/serializers.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/auth.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/ci.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/client.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/constants.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/events.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/hosts.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/metadata.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/models.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/report.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/serialization.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/usage.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/_cache.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/loaders.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/schemas.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/_cache.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/checks.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/converter.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/formats.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/links.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/loaders.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/media_types.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/security.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/serialization.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/stateful/statistic.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/stateful/types.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/utils.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/validation.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/config.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/context.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/events.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/runner.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/sink.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/state_machine.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/statistic.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/validation.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/targets.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/throttling.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/transports/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/transports/auth.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/transports/content_types.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/transports/headers.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/transports/responses.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/types.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/cp1252_app.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/hooks.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_aiohttp/handlers.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/schema.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/conftest.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/test_cli.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/test_provider.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/test_pytest.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_checks/test_deduplication_on_sanitized_header.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_deprecated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_filtered_out[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_generation_config[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_keyboard_interrupt[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_max_failures[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only_with_error[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args37].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_stateful_explicit_examples_with_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unresolvable_links[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/cert.pem +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/conftest.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/output/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/output/test_default.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_asgi.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_callbacks.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_cassettes.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_checks.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_crashes.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_hooks.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_junitxml.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_options.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_reporting.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_targeted.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/code_samples/conftest.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/code_samples/test_curl.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/code_samples/test_python.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/openapi/formats/test_uuid.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/test_install.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/test_unique_data.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/relative_files/components/parameters.yaml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/relative_files/components/responses.yaml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/relative_files/components/schemas.yaml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/relative_files/main.yaml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/relative_files/paths/user-account.yaml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/experimental/conftest.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/experimental/test_experiments.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/experimental/test_openapi_3_1.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/extra/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/extra/test_aiohttp.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/filters/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/filters/test_expressions.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/filters/test_matching.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/hooks/test_filter_operations.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/hooks/test_filters.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/hooks/test_hooks.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/loaders/conftest.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/loaders/test_app.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/loaders/test_common.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/loaders/test_graphql.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/loaders/test_openapi.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/loaders/test_yaml.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/runner/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/runner/test_checks.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/runner/test_events.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/runner/test_probes.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/runner/test_runner.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_client_error_on_project_details[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_unauthorized[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_custom_format.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/conftest.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_auth.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_ci.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_cli.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_extensions.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_report.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_serialization.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_usage.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/test_basic.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/test_pytest.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/blank.pdf +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/parameters/test_forms.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/parameters/test_non_payload.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/stateful/conftest.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/stateful/test_config.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/stateful/test_runner.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/stateful/test_stateful.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_checks.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_hypothesis.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_ignored_auth.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_links.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_media_types.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_negative.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_randomized.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_security.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_serializing.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_validation.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_app.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_asgi.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_async.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_common_parameters.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_converter.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_dereferencing.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_direct_access.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_examples.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_filters.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_fixups.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_hypothesis.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_internal.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_lazy.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_models.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_output.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_package.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_parameters.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_parametrization.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_petstore.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_pytest.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_rate_limit.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_recoverable_errors.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_required.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_sanitizing_output.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_schemas.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_serialization.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_stateful.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_unittest.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_utils.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_wsgi.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/transports/test_content_types.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test/utils.py +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/test_server.sh +0 -0
- {schemathesis-3.34.3 → schemathesis-3.35.0}/tox.ini +0 -0
|
@@ -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.2
|
|
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.2
|
|
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.35.0
|
|
4
4
|
Summary: Property-based testing framework for Open API and GraphQL based apps
|
|
5
5
|
Project-URL: Documentation, https://schemathesis.readthedocs.io/en/stable/
|
|
6
6
|
Project-URL: Changelog, https://schemathesis.readthedocs.io/en/stable/changelog.html
|
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
-
:version:`Unreleased <v3.
|
|
4
|
+
:version:`Unreleased <v3.35.0...HEAD>` - TBD
|
|
5
5
|
--------------------------------------------
|
|
6
6
|
|
|
7
|
+
.. _v3.35.0:
|
|
8
|
+
|
|
9
|
+
:version:`3.35.0 <v3.34.3...v3.35.0>` - 2024-08-25
|
|
10
|
+
--------------------------------------------------
|
|
11
|
+
|
|
12
|
+
**Added**
|
|
13
|
+
|
|
14
|
+
- **EXPERIMENTAL**: New "coverage" phase in the test runner. It aims to explicitly cover common test scenarios like missing required properties, incorrect types, etc. Enable it with ``--experimental=coverage-phase``
|
|
15
|
+
- Extending CLI with custom options and CLI handlers via hooks.
|
|
16
|
+
|
|
7
17
|
.. _v3.34.3:
|
|
8
18
|
|
|
9
19
|
:version:`3.34.3 <v3.34.2...v3.34.3>` - 2024-08-24
|
|
@@ -112,6 +112,31 @@ To enable OpenAPI 3.1 support via environment variables, you can set:
|
|
|
112
112
|
|
|
113
113
|
For more details, join the `GitHub Discussion #1822 <https://github.com/schemathesis/schemathesis/discussions/1822>`_.
|
|
114
114
|
|
|
115
|
+
.. _coverage-phase:
|
|
116
|
+
|
|
117
|
+
Coverage phase
|
|
118
|
+
~~~~~~~~~~~~~~
|
|
119
|
+
|
|
120
|
+
Schemathesis primarily generates randomized tests; therefore, the outcomes can vary between test runs.
|
|
121
|
+
This feature enables a new test phase that aims to generate a set of examples that cover common testing patterns for each parameter or property.
|
|
122
|
+
Such tests include checking boundary values, omitting required properties, etc.
|
|
123
|
+
|
|
124
|
+
In CLI
|
|
125
|
+
~~~~~~
|
|
126
|
+
|
|
127
|
+
.. code-block:: bash
|
|
128
|
+
|
|
129
|
+
st run https://example.schemathesis.io/openapi.json --experimental=coverage-phase
|
|
130
|
+
|
|
131
|
+
Using Environment Variables
|
|
132
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
133
|
+
|
|
134
|
+
.. code-block:: bash
|
|
135
|
+
|
|
136
|
+
export SCHEMATHESIS_EXPERIMENTAL_COVERAGE_PHASE=true
|
|
137
|
+
|
|
138
|
+
For more details, join the `GitHub Discussion #2418 <https://github.com/schemathesis/schemathesis/discussions/2418>`_.
|
|
139
|
+
|
|
115
140
|
.. _stateful-test-runner:
|
|
116
141
|
|
|
117
142
|
New Stateful Test Runner
|
|
@@ -374,6 +374,34 @@ Here's a GraphQL example that includes all queries:
|
|
|
374
374
|
In these examples, the ``filter_operations`` hook skips all ``POST`` methods in Open API and all mutations in GraphQL.
|
|
375
375
|
You can implement any custom logic within the ``filter_operations`` function to include or exclude specific API operations.
|
|
376
376
|
|
|
377
|
+
Extending CLI
|
|
378
|
+
~~~~~~~~~~~~~
|
|
379
|
+
|
|
380
|
+
This example demonstrates how to add a custom CLI option and an event handler that uses it:
|
|
381
|
+
|
|
382
|
+
.. code:: python
|
|
383
|
+
|
|
384
|
+
from schemathesis import cli, runner
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
cli.add_option("--custom-counter", type=int)
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
@cli.handler()
|
|
391
|
+
class EventCounter(cli.EventHandler):
|
|
392
|
+
def __init__(self, *args, **params):
|
|
393
|
+
self.counter = params["custom_counter"] or 0
|
|
394
|
+
|
|
395
|
+
def handle_event(self, context, event) -> None:
|
|
396
|
+
self.counter += 1
|
|
397
|
+
if isinstance(event, runner.events.Finished):
|
|
398
|
+
context.add_summary_line(
|
|
399
|
+
f"Counter: {self.counter}",
|
|
400
|
+
)
|
|
401
|
+
|
|
402
|
+
The ``--custom-counter`` CLI option sets the initial value for the ``EventCounter`` handler.
|
|
403
|
+
The handler increments the counter for each event and adds a summary line with the final count when the test run finishes.
|
|
404
|
+
|
|
377
405
|
``before_process_path``
|
|
378
406
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
379
407
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "schemathesis"
|
|
7
|
-
version = "3.
|
|
7
|
+
version = "3.35.0"
|
|
8
8
|
description = "Property-based testing framework for Open API and GraphQL based apps"
|
|
9
9
|
keywords = ["pytest", "hypothesis", "openapi", "graphql", "testing"]
|
|
10
10
|
authors = [{ name = "Dmitry Dygalo", email = "dmitry@dygalo.dev" }]
|
|
@@ -8,21 +8,21 @@ from typing import Any, Callable, Generator, Mapping, Optional, Tuple
|
|
|
8
8
|
|
|
9
9
|
import hypothesis
|
|
10
10
|
from hypothesis import Phase
|
|
11
|
-
from hypothesis import strategies as st
|
|
12
11
|
from hypothesis.errors import HypothesisWarning, Unsatisfiable
|
|
13
12
|
from hypothesis.internal.entropy import deterministic_PRNG
|
|
14
13
|
from hypothesis.internal.reflection import proxies
|
|
15
14
|
from jsonschema.exceptions import SchemaError
|
|
16
15
|
|
|
17
16
|
from .auths import get_auth_storage_from_test
|
|
18
|
-
from .constants import DEFAULT_DEADLINE
|
|
17
|
+
from .constants import DEFAULT_DEADLINE, NOT_SET
|
|
19
18
|
from .exceptions import OperationSchemaError, SerializationNotPossible
|
|
20
|
-
from .
|
|
19
|
+
from .experimental import COVERAGE_PHASE
|
|
20
|
+
from .generation import DataGenerationMethod, GenerationConfig, combine_strategies, coverage, get_single_example
|
|
21
21
|
from .hooks import GLOBAL_HOOK_DISPATCHER, HookContext, HookDispatcher
|
|
22
22
|
from .models import APIOperation, Case
|
|
23
23
|
from .transports.content_types import parse_content_type
|
|
24
24
|
from .transports.headers import has_invalid_characters, is_latin_1_encodable
|
|
25
|
-
from .utils import GivenInput
|
|
25
|
+
from .utils import GivenInput
|
|
26
26
|
|
|
27
27
|
# Forcefully initializes Hypothesis' global PRNG to avoid races that initilize it
|
|
28
28
|
# if e.g. Schemathesis CLI is used with multiple workers
|
|
@@ -101,6 +101,8 @@ def create_test(
|
|
|
101
101
|
wrapped_test = add_examples(
|
|
102
102
|
wrapped_test, operation, hook_dispatcher=hook_dispatcher, as_strategy_kwargs=as_strategy_kwargs
|
|
103
103
|
)
|
|
104
|
+
if COVERAGE_PHASE.is_enabled:
|
|
105
|
+
wrapped_test = add_coverage(wrapped_test, operation, data_generation_methods)
|
|
104
106
|
return wrapped_test
|
|
105
107
|
|
|
106
108
|
|
|
@@ -199,6 +201,55 @@ def add_examples(
|
|
|
199
201
|
return test
|
|
200
202
|
|
|
201
203
|
|
|
204
|
+
def add_coverage(
|
|
205
|
+
test: Callable, operation: APIOperation, data_generation_methods: list[DataGenerationMethod]
|
|
206
|
+
) -> Callable:
|
|
207
|
+
for example in _iter_coverage_cases(operation, data_generation_methods):
|
|
208
|
+
test = hypothesis.example(case=example)(test)
|
|
209
|
+
return test
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
def _iter_coverage_cases(
|
|
213
|
+
operation: APIOperation, data_generation_methods: list[DataGenerationMethod]
|
|
214
|
+
) -> Generator[Case, None, None]:
|
|
215
|
+
from .specs.openapi.constants import LOCATION_TO_CONTAINER
|
|
216
|
+
|
|
217
|
+
ctx = coverage.CoverageContext(data_generation_methods=data_generation_methods)
|
|
218
|
+
generators: dict[tuple[str, str], Generator] = {}
|
|
219
|
+
template: dict[str, Any] = {}
|
|
220
|
+
for parameter in operation.iter_parameters():
|
|
221
|
+
schema = parameter.as_json_schema(operation)
|
|
222
|
+
gen = coverage.cover_schema_iter(ctx, schema)
|
|
223
|
+
value = next(gen, NOT_SET)
|
|
224
|
+
if value is NOT_SET:
|
|
225
|
+
continue
|
|
226
|
+
location = parameter.location
|
|
227
|
+
name = parameter.name
|
|
228
|
+
container = template.setdefault(LOCATION_TO_CONTAINER[location], {})
|
|
229
|
+
container[name] = value
|
|
230
|
+
generators[(location, name)] = gen
|
|
231
|
+
if operation.body:
|
|
232
|
+
for body in operation.body:
|
|
233
|
+
schema = body.as_json_schema(operation)
|
|
234
|
+
gen = coverage.cover_schema_iter(ctx, schema)
|
|
235
|
+
value = next(gen, NOT_SET)
|
|
236
|
+
if value is NOT_SET:
|
|
237
|
+
continue
|
|
238
|
+
if "body" not in template:
|
|
239
|
+
template["body"] = value
|
|
240
|
+
template["media_type"] = body.media_type
|
|
241
|
+
yield operation.make_case(**{**template, "body": value, "media_type": body.media_type})
|
|
242
|
+
for next_value in gen:
|
|
243
|
+
yield operation.make_case(**{**template, "body": next_value, "media_type": body.media_type})
|
|
244
|
+
else:
|
|
245
|
+
yield operation.make_case(**template)
|
|
246
|
+
for (location, name), gen in generators.items():
|
|
247
|
+
container_name = LOCATION_TO_CONTAINER[location]
|
|
248
|
+
container = template[container_name]
|
|
249
|
+
for value in gen:
|
|
250
|
+
yield operation.make_case(**{**template, container_name: {**container, name: value}})
|
|
251
|
+
|
|
252
|
+
|
|
202
253
|
def find_invalid_headers(headers: Mapping) -> Generator[Tuple[str, str], None, None]:
|
|
203
254
|
for name, value in headers.items():
|
|
204
255
|
if not is_latin_1_encodable(value) or has_invalid_characters(name, value):
|
|
@@ -248,25 +299,3 @@ def get_invalid_example_headers_mark(test: Callable) -> Optional[dict[str, str]]
|
|
|
248
299
|
|
|
249
300
|
def add_invalid_example_header_mark(test: Callable, headers: dict[str, str]) -> None:
|
|
250
301
|
test._schemathesis_invalid_example_headers = headers # type: ignore
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
def get_single_example(strategy: st.SearchStrategy[Case]) -> Case:
|
|
254
|
-
examples: list[Case] = []
|
|
255
|
-
add_single_example(strategy, examples)
|
|
256
|
-
return examples[0]
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
def add_single_example(strategy: st.SearchStrategy[Case], examples: list[Case]) -> None:
|
|
260
|
-
@hypothesis.given(strategy) # type: ignore
|
|
261
|
-
@hypothesis.settings( # type: ignore
|
|
262
|
-
database=None,
|
|
263
|
-
max_examples=1,
|
|
264
|
-
deadline=None,
|
|
265
|
-
verbosity=hypothesis.Verbosity.quiet,
|
|
266
|
-
phases=(hypothesis.Phase.generate,),
|
|
267
|
-
suppress_health_check=list(hypothesis.HealthCheck),
|
|
268
|
-
)
|
|
269
|
-
def example_generating_inner_function(ex: Case) -> None:
|
|
270
|
-
examples.append(ex)
|
|
271
|
-
|
|
272
|
-
example_generating_inner_function()
|
|
@@ -11,7 +11,7 @@ from collections import defaultdict
|
|
|
11
11
|
from dataclasses import dataclass
|
|
12
12
|
from enum import Enum
|
|
13
13
|
from queue import Queue
|
|
14
|
-
from typing import TYPE_CHECKING, Any, Callable, Generator, Iterable, Literal, NoReturn, Sequence, cast
|
|
14
|
+
from typing import TYPE_CHECKING, Any, Callable, Generator, Iterable, Literal, NoReturn, Sequence, Type, cast
|
|
15
15
|
from urllib.parse import urlparse
|
|
16
16
|
|
|
17
17
|
import click
|
|
@@ -42,7 +42,7 @@ from ..internal.datetime import current_datetime
|
|
|
42
42
|
from ..internal.output import OutputConfig
|
|
43
43
|
from ..internal.validation import file_exists
|
|
44
44
|
from ..loaders import load_app, load_yaml
|
|
45
|
-
from ..models import
|
|
45
|
+
from ..models import Case, CheckFunction
|
|
46
46
|
from ..runner import events, prepare_hypothesis_settings, probes
|
|
47
47
|
from ..specs.graphql import loaders as gql_loaders
|
|
48
48
|
from ..specs.openapi import loaders as oas_loaders
|
|
@@ -50,11 +50,12 @@ from ..stateful import Stateful
|
|
|
50
50
|
from ..targets import Target
|
|
51
51
|
from ..transports import RequestConfig
|
|
52
52
|
from ..transports.auth import get_requests_auth
|
|
53
|
-
from ..types import
|
|
53
|
+
from ..types import PathLike, RequestCert
|
|
54
54
|
from . import callbacks, cassettes, output
|
|
55
55
|
from .constants import DEFAULT_WORKERS, MAX_WORKERS, MIN_WORKERS, HealthCheck, Phase, Verbosity
|
|
56
56
|
from .context import ExecutionContext, FileReportContext, ServiceReportContext
|
|
57
57
|
from .debug import DebugOutputHandler
|
|
58
|
+
from .handlers import EventHandler
|
|
58
59
|
from .junitxml import JunitXMLHandler
|
|
59
60
|
from .options import CsvChoice, CsvEnumChoice, CustomHelpMessageChoice, NotSet, OptionalInt
|
|
60
61
|
from .sanitization import SanitizationHandler
|
|
@@ -66,13 +67,13 @@ if TYPE_CHECKING:
|
|
|
66
67
|
from ..schemas import BaseSchema
|
|
67
68
|
from ..service.client import ServiceClient
|
|
68
69
|
from ..specs.graphql.schemas import GraphQLSchema
|
|
69
|
-
from .handlers import EventHandler
|
|
70
70
|
|
|
71
71
|
|
|
72
72
|
def _get_callable_names(items: tuple[Callable, ...]) -> tuple[str, ...]:
|
|
73
73
|
return tuple(item.__name__ for item in items)
|
|
74
74
|
|
|
75
75
|
|
|
76
|
+
CUSTOM_HANDLERS: list[Type[EventHandler]] = []
|
|
76
77
|
CONTEXT_SETTINGS = {"help_option_names": ["-h", "--help"]}
|
|
77
78
|
|
|
78
79
|
DEFAULT_CHECKS_NAMES = _get_callable_names(checks_module.DEFAULT_CHECKS)
|
|
@@ -759,6 +760,7 @@ The report data, consisting of a tar gz file with multiple JSON files, is subjec
|
|
|
759
760
|
experimental.SCHEMA_ANALYSIS.name,
|
|
760
761
|
experimental.STATEFUL_TEST_RUNNER.name,
|
|
761
762
|
experimental.STATEFUL_ONLY.name,
|
|
763
|
+
experimental.COVERAGE_PHASE.name,
|
|
762
764
|
]
|
|
763
765
|
),
|
|
764
766
|
callback=callbacks.convert_experimental,
|
|
@@ -927,6 +929,7 @@ def run(
|
|
|
927
929
|
schemathesis_io_telemetry: bool = True,
|
|
928
930
|
hosts_file: PathLike = service.DEFAULT_HOSTS_PATH,
|
|
929
931
|
force_color: bool = False,
|
|
932
|
+
**__kwargs,
|
|
930
933
|
) -> None:
|
|
931
934
|
"""Run tests against an API using a specified SCHEMA.
|
|
932
935
|
|
|
@@ -1212,6 +1215,7 @@ def run(
|
|
|
1212
1215
|
)
|
|
1213
1216
|
execute(
|
|
1214
1217
|
event_stream,
|
|
1218
|
+
ctx=ctx,
|
|
1215
1219
|
hypothesis_settings=hypothesis_settings,
|
|
1216
1220
|
workers_num=workers_num,
|
|
1217
1221
|
rate_limit=rate_limit,
|
|
@@ -1595,6 +1599,7 @@ class OutputStyle(Enum):
|
|
|
1595
1599
|
def execute(
|
|
1596
1600
|
event_stream: Generator[events.ExecutionEvent, None, None],
|
|
1597
1601
|
*,
|
|
1602
|
+
ctx: click.Context,
|
|
1598
1603
|
hypothesis_settings: hypothesis.settings,
|
|
1599
1604
|
workers_num: int,
|
|
1600
1605
|
rate_limit: str | None,
|
|
@@ -1669,6 +1674,8 @@ def execute(
|
|
|
1669
1674
|
cassette_path, format=cassette_format, preserve_exact_body_bytes=cassette_preserve_exact_body_bytes
|
|
1670
1675
|
)
|
|
1671
1676
|
)
|
|
1677
|
+
for custom_handler in CUSTOM_HANDLERS:
|
|
1678
|
+
handlers.append(custom_handler(*ctx.args, **ctx.params))
|
|
1672
1679
|
handlers.append(get_output_handler(workers_num))
|
|
1673
1680
|
if sanitize_output:
|
|
1674
1681
|
handlers.insert(0, SanitizationHandler())
|
|
@@ -2000,6 +2007,20 @@ def decide_color_output(ctx: click.Context, no_color: bool, force_color: bool) -
|
|
|
2000
2007
|
ctx.color = False
|
|
2001
2008
|
|
|
2002
2009
|
|
|
2010
|
+
def add_option(*args: Any, cls: Type = click.Option, **kwargs: Any) -> None:
|
|
2011
|
+
"""Add a new CLI option to `st run`."""
|
|
2012
|
+
run.params.append(cls(args, **kwargs))
|
|
2013
|
+
|
|
2014
|
+
|
|
2015
|
+
def handler() -> Callable[[Type], None]:
|
|
2016
|
+
"""Register a new CLI event handler."""
|
|
2017
|
+
|
|
2018
|
+
def _wrapper(cls: Type) -> None:
|
|
2019
|
+
CUSTOM_HANDLERS.append(cls)
|
|
2020
|
+
|
|
2021
|
+
return _wrapper
|
|
2022
|
+
|
|
2023
|
+
|
|
2003
2024
|
@HookDispatcher.register_spec([HookScope.GLOBAL])
|
|
2004
2025
|
def after_init_cli_run_handlers(
|
|
2005
2026
|
context: HookContext, handlers: list[EventHandler], execution_context: ExecutionContext
|
|
@@ -60,7 +60,11 @@ class ExecutionContext:
|
|
|
60
60
|
analysis: Result[AnalysisResult, Exception] | None = None
|
|
61
61
|
output_config: OutputConfig = field(default_factory=OutputConfig)
|
|
62
62
|
state_machine_sink: StateMachineSink | None = None
|
|
63
|
+
summary_lines: list[str] = field(default_factory=list)
|
|
63
64
|
|
|
64
65
|
@deprecated_property(removed_in="4.0", replacement="show_trace")
|
|
65
66
|
def show_errors_tracebacks(self) -> bool:
|
|
66
67
|
return self.show_trace
|
|
68
|
+
|
|
69
|
+
def add_summary_line(self, line: str) -> None:
|
|
70
|
+
self.summary_lines.append(line)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from typing import TYPE_CHECKING
|
|
3
|
+
from typing import TYPE_CHECKING, Any
|
|
4
4
|
|
|
5
5
|
if TYPE_CHECKING:
|
|
6
6
|
from ..runner import events
|
|
@@ -8,6 +8,9 @@ if TYPE_CHECKING:
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class EventHandler:
|
|
11
|
+
def __init__(self, *args: Any, **params: Any) -> None:
|
|
12
|
+
pass
|
|
13
|
+
|
|
11
14
|
def handle_event(self, context: ExecutionContext, event: events.ExecutionEvent) -> None:
|
|
12
15
|
raise NotImplementedError
|
|
13
16
|
|
|
@@ -850,6 +850,10 @@ def handle_finished(context: ExecutionContext, event: events.Finished) -> None:
|
|
|
850
850
|
display_application_logs(context, event)
|
|
851
851
|
display_analysis(context)
|
|
852
852
|
display_statistic(context, event)
|
|
853
|
+
if context.summary_lines:
|
|
854
|
+
click.echo()
|
|
855
|
+
for line in context.summary_lines:
|
|
856
|
+
click.echo(line)
|
|
853
857
|
click.echo()
|
|
854
858
|
display_summary(event)
|
|
855
859
|
|
|
@@ -18,7 +18,7 @@ def uninstall() -> None:
|
|
|
18
18
|
|
|
19
19
|
def before_add_examples(context: HookContext, examples: list[Case]) -> None:
|
|
20
20
|
if not examples and context.operation is not None:
|
|
21
|
-
from ...
|
|
21
|
+
from ...generation import add_single_example
|
|
22
22
|
|
|
23
23
|
strategy = context.operation.as_strategy()
|
|
24
24
|
add_single_example(strategy, examples)
|
|
@@ -93,3 +93,10 @@ STATEFUL_ONLY = GLOBAL_EXPERIMENTS.create_experiment(
|
|
|
93
93
|
description="Run only stateful tests",
|
|
94
94
|
discussion_url="https://github.com/schemathesis/schemathesis/discussions/2262",
|
|
95
95
|
)
|
|
96
|
+
COVERAGE_PHASE = GLOBAL_EXPERIMENTS.create_experiment(
|
|
97
|
+
name="coverage-phase",
|
|
98
|
+
verbose_name="Coverage phase",
|
|
99
|
+
env_var="COVERAGE_PHASE",
|
|
100
|
+
description="Generate covering test cases",
|
|
101
|
+
discussion_url="https://github.com/schemathesis/schemathesis/discussions/2418",
|
|
102
|
+
)
|
|
@@ -2,48 +2,15 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import random
|
|
4
4
|
from dataclasses import dataclass, field
|
|
5
|
-
from
|
|
6
|
-
|
|
5
|
+
from typing import TYPE_CHECKING
|
|
6
|
+
|
|
7
|
+
from ._hypothesis import add_single_example, combine_strategies, get_single_example # noqa: E402
|
|
8
|
+
from ._methods import DataGenerationMethod, DataGenerationMethodInput # noqa: E402
|
|
7
9
|
|
|
8
10
|
if TYPE_CHECKING:
|
|
9
11
|
from hypothesis.strategies import SearchStrategy
|
|
10
12
|
|
|
11
13
|
|
|
12
|
-
class DataGenerationMethod(str, Enum):
|
|
13
|
-
"""Defines what data Schemathesis generates for tests."""
|
|
14
|
-
|
|
15
|
-
# Generate data, that fits the API schema
|
|
16
|
-
positive = "positive"
|
|
17
|
-
# Doesn't fit the API schema
|
|
18
|
-
negative = "negative"
|
|
19
|
-
|
|
20
|
-
@classmethod
|
|
21
|
-
def default(cls) -> DataGenerationMethod:
|
|
22
|
-
return cls.positive
|
|
23
|
-
|
|
24
|
-
@classmethod
|
|
25
|
-
def all(cls) -> list[DataGenerationMethod]:
|
|
26
|
-
return list(DataGenerationMethod)
|
|
27
|
-
|
|
28
|
-
def as_short_name(self) -> str:
|
|
29
|
-
return {
|
|
30
|
-
DataGenerationMethod.positive: "P",
|
|
31
|
-
DataGenerationMethod.negative: "N",
|
|
32
|
-
}[self]
|
|
33
|
-
|
|
34
|
-
@property
|
|
35
|
-
def is_negative(self) -> bool:
|
|
36
|
-
return self == DataGenerationMethod.negative
|
|
37
|
-
|
|
38
|
-
@classmethod
|
|
39
|
-
def ensure_list(cls, value: DataGenerationMethodInput) -> list[DataGenerationMethod]:
|
|
40
|
-
if isinstance(value, DataGenerationMethod):
|
|
41
|
-
return [value]
|
|
42
|
-
return list(value)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
DataGenerationMethodInput = Union[DataGenerationMethod, Iterable[DataGenerationMethod]]
|
|
46
|
-
|
|
47
14
|
DEFAULT_DATA_GENERATION_METHODS = (DataGenerationMethod.default(),)
|
|
48
15
|
|
|
49
16
|
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from functools import lru_cache, reduce
|
|
4
|
+
from operator import or_
|
|
5
|
+
from typing import TYPE_CHECKING, TypeVar
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
from hypothesis import settings
|
|
9
|
+
from hypothesis import strategies as st
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@lru_cache()
|
|
13
|
+
def default_settings() -> settings:
|
|
14
|
+
from hypothesis import HealthCheck, Phase, Verbosity, settings
|
|
15
|
+
|
|
16
|
+
return settings(
|
|
17
|
+
database=None,
|
|
18
|
+
max_examples=1,
|
|
19
|
+
deadline=None,
|
|
20
|
+
verbosity=Verbosity.quiet,
|
|
21
|
+
phases=(Phase.generate,),
|
|
22
|
+
suppress_health_check=list(HealthCheck),
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
T = TypeVar("T")
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def get_single_example(strategy: st.SearchStrategy[T]) -> T: # type: ignore[type-var]
|
|
30
|
+
examples: list[T] = []
|
|
31
|
+
add_single_example(strategy, examples)
|
|
32
|
+
return examples[0]
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def add_single_example(strategy: st.SearchStrategy[T], examples: list[T]) -> None:
|
|
36
|
+
from hypothesis import given
|
|
37
|
+
|
|
38
|
+
@given(strategy) # type: ignore
|
|
39
|
+
@default_settings() # type: ignore
|
|
40
|
+
def example_generating_inner_function(ex: T) -> None:
|
|
41
|
+
examples.append(ex)
|
|
42
|
+
|
|
43
|
+
example_generating_inner_function()
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def combine_strategies(strategies: list[st.SearchStrategy] | tuple[st.SearchStrategy]) -> st.SearchStrategy:
|
|
47
|
+
"""Combine a list of strategies into a single one.
|
|
48
|
+
|
|
49
|
+
If the input is `[a, b, c]`, then the result is equivalent to `a | b | c`.
|
|
50
|
+
"""
|
|
51
|
+
return reduce(or_, strategies[1:], strategies[0])
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from enum import Enum
|
|
4
|
+
from typing import Iterable, Union
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class DataGenerationMethod(str, Enum):
|
|
8
|
+
"""Defines what data Schemathesis generates for tests."""
|
|
9
|
+
|
|
10
|
+
# Generate data, that fits the API schema
|
|
11
|
+
positive = "positive"
|
|
12
|
+
# Doesn't fit the API schema
|
|
13
|
+
negative = "negative"
|
|
14
|
+
|
|
15
|
+
@classmethod
|
|
16
|
+
def default(cls) -> DataGenerationMethod:
|
|
17
|
+
return cls.positive
|
|
18
|
+
|
|
19
|
+
@classmethod
|
|
20
|
+
def all(cls) -> list[DataGenerationMethod]:
|
|
21
|
+
return list(DataGenerationMethod)
|
|
22
|
+
|
|
23
|
+
def as_short_name(self) -> str:
|
|
24
|
+
return {
|
|
25
|
+
DataGenerationMethod.positive: "P",
|
|
26
|
+
DataGenerationMethod.negative: "N",
|
|
27
|
+
}[self]
|
|
28
|
+
|
|
29
|
+
@property
|
|
30
|
+
def is_negative(self) -> bool:
|
|
31
|
+
return self == DataGenerationMethod.negative
|
|
32
|
+
|
|
33
|
+
@classmethod
|
|
34
|
+
def ensure_list(cls, value: DataGenerationMethodInput) -> list[DataGenerationMethod]:
|
|
35
|
+
if isinstance(value, DataGenerationMethod):
|
|
36
|
+
return [value]
|
|
37
|
+
return list(value)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
DataGenerationMethodInput = Union[DataGenerationMethod, Iterable[DataGenerationMethod]]
|