schemathesis 3.30.0__tar.gz → 3.30.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/workflows/master_update.yml +1 -1
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/workflows/release.yml +1 -1
- {schemathesis-3.30.0 → schemathesis-3.30.2}/PKG-INFO +3 -3
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/changelog.rst +30 -1
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/cli.rst +15 -6
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/extending.rst +10 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/pyproject.toml +3 -3
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/__init__.py +20 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/context.py +2 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/junitxml.py +5 -4
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/output/default.py +7 -3
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/reporting.py +19 -14
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/exceptions.py +2 -35
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/failures.py +10 -5
- schemathesis-3.30.2/src/schemathesis/internal/output.py +68 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/lazy.py +8 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/models.py +2 -2
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/runner/events.py +1 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/runner/impl/core.py +13 -2
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/schemas.py +6 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/service/serialization.py +22 -14
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/graphql/loaders.py +16 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/checks.py +6 -1
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/loaders.py +18 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/schemas.py +1 -1
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/stateful/context.py +13 -3
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/stateful/events.py +7 -1
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/stateful/runner.py +8 -3
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/openapi/_aiohttp/handlers.py +1 -1
- schemathesis-3.30.2/test/cli/__snapshots__/test_checks/test_deduplication_on_sanitized_header.raw +63 -0
- schemathesis-3.30.2/test/cli/__snapshots__/test_commands/test_new_stateful_runner_filtered_out[Open API 3.0].raw +31 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +2 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/test_checks.py +34 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/test_commands.py +19 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/runner/test_checks.py +24 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/stateful/test_runner.py +14 -1
- schemathesis-3.30.2/test/test_output.py +76 -0
- schemathesis-3.30.0/test/test_errors.py +0 -26
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.dockerignore +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/FUNDING.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/dependabot.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/workflows/build.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/workflows/codeql-analysis.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/workflows/codspeed.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/workflows/commit.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/workflows/example-build.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/workflows/example-no-build.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/workflows/test-corpus.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/workflows/test-hypothesis.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/workflows/update-corpus.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.github/workflows/update-pre-commit.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.gitignore +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.gitmodules +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.pre-commit-config.yaml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.readthedocs.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.relint.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.rstcheck.cfg +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/.yamllint +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/CITATION.cff +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/CONTRIBUTING.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/Dockerfile +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/Dockerfile.bookworm +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/LICENSE +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/README.md +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/benches/cli.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/benches/references.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/benches/schema.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/changelog.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/codecov.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/corpus/data/graphql.tar.gz +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/corpus/data/openapi-3.0.tar.gz +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/corpus/data/openapi-3.1.tar.gz +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/corpus/data/swagger-2.0.tar.gz +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/corpus/tools.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/Makefile +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/additional-content.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/api.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/auth.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/compatibility.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/conf.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/continuous_integration.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/contrib.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/data-generation.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/examples.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/experimental.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/faq.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/getting-started.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/graphql.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/index.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/python.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/recipes.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/requirements.txt +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/sanitizing.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/service.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/stateful.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/docs/targeted.rst +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/example/Dockerfile +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/example/README.md +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/example/app.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/example/compose.yml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/example/openapi.json +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/example/requirements-app.in +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/example/requirements-app.txt +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/example/requirements-pytest.in +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/example/requirements-pytest.txt +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/example/tests/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/example/tests/conftest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/example/tests/extensions.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/example/tests/test_app.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/img/demo.gif +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/img/service_github_report.png +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/mypy.ini +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/_compat.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/_dependency_versions.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/_hypothesis.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/_lazy_import.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/_override.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/_rate_limiter.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/_xml.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/auths.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/checks.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/__main__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/callbacks.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/cassettes.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/debug.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/handlers.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/options.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/output/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/output/short.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/cli/sanitization.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/code_samples.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/constants.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/contrib/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/contrib/openapi/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/contrib/unique_data.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/experimental/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/extra/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/extra/_aiohttp.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/extra/_flask.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/extra/_server.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/extra/pytest_plugin.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/filters.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/fixups/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/fixups/fast_api.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/fixups/utf8_bom.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/generation/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/graphql.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/hooks.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/internal/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/internal/copy.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/internal/datetime.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/internal/deprecation.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/internal/jsonschema.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/internal/result.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/internal/transformation.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/internal/validation.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/loaders.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/parameters.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/py.typed +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/runner/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/runner/impl/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/runner/impl/solo.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/runner/impl/threadpool.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/runner/probes.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/runner/serialization.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/sanitization.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/serializers.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/service/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/service/auth.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/service/ci.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/service/client.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/service/constants.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/service/events.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/service/extensions.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/service/hosts.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/service/metadata.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/service/models.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/service/report.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/service/usage.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/graphql/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/graphql/_cache.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/graphql/schemas.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/_cache.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/converter.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/examples.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/filters.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/formats.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/links.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/media_types.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/security.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/serialization.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/stateful/statistic.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/stateful/types.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/utils.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/specs/openapi/validation.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/stateful/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/stateful/config.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/stateful/sink.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/stateful/state_machine.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/stateful/statistic.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/stateful/validation.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/targets.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/throttling.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/transports/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/transports/auth.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/transports/content_types.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/transports/headers.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/transports/responses.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/types.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/src/schemathesis/utils.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/apps/openapi/schema.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/auth/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/auth/conftest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/auth/test_cli.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/auth/test_provider.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/auth/test_pytest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_unresolvable_links[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/cert.pem +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/conftest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/output/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/output/test_default.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/test_asgi.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/test_callbacks.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/test_cassettes.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/test_crashes.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/test_hooks.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/test_junitxml.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/test_options.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/cli/test_targeted.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/code_samples/conftest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/code_samples/test_curl.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/code_samples/test_python.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/conftest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/contrib/openapi/formats/test_uuid.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/contrib/test_install.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/contrib/test_unique_data.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/data/relative_files/components/parameters.yaml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/data/relative_files/components/responses.yaml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/data/relative_files/components/schemas.yaml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/data/relative_files/main.yaml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/data/relative_files/paths/user-account.yaml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/experimental/conftest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/experimental/test_experiments.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/experimental/test_openapi_3_1.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/extra/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/extra/test_aiohttp.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/filters/test_matching.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/hooks/test_filter_operations.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/hooks/test_hooks.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/loaders/conftest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/loaders/test_app.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/loaders/test_common.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/loaders/test_graphql.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/loaders/test_openapi.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/loaders/test_yaml.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/runner/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/runner/test_events.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/runner/test_probes.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/runner/test_runner.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_cli/test_client_error_on_project_details[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_cli/test_unauthorized[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_custom_format.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/conftest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/test_auth.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/test_ci.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/test_cli.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/test_extensions.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/test_report.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/test_serialization.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/service/test_usage.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/graphql/test_basic.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/graphql/test_pytest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/blank.pdf +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/parameters/test_forms.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/parameters/test_non_payload.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/randomized/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/randomized/factory.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/randomized/test_randomized.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/randomized/types.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/randomized/v2.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/stateful/conftest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/stateful/test_config.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/stateful/test_stateful.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/test_checks.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/test_examples.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/test_hypothesis.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/test_links.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/test_media_types.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/test_negative.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/test_security.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/test_serializing.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/specs/openapi/test_validation.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_app.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_asgi.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_async.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_common_parameters.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_converter.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_dereferencing.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_direct_access.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_examples.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_filters.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_fixups.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_hypothesis.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_internal.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_lazy.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_models.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_package.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_parameters.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_parametrization.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_petstore.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_pytest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_rate_limit.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_recoverable_errors.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_required.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_sanitizing_output.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_schemas.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_serialization.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_stateful.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_unittest.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_utils.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/test_wsgi.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/transports/test_content_types.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test/utils.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test-corpus/test_corpus.py +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/test_server.sh +0 -0
- {schemathesis-3.30.0 → schemathesis-3.30.2}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: schemathesis
|
|
3
|
-
Version: 3.30.
|
|
3
|
+
Version: 3.30.2
|
|
4
4
|
Summary: Property-based testing framework for Open API and GraphQL based apps
|
|
5
5
|
Project-URL: Documentation, https://schemathesis.readthedocs.io/en/stable/
|
|
6
6
|
Project-URL: Changelog, https://schemathesis.readthedocs.io/en/stable/changelog.html
|
|
@@ -34,8 +34,8 @@ Requires-Dist: colorama<1.0,>=0.4
|
|
|
34
34
|
Requires-Dist: httpx<1.0,>=0.22.0
|
|
35
35
|
Requires-Dist: hypothesis-graphql<1,>=0.11.0
|
|
36
36
|
Requires-Dist: hypothesis-jsonschema<0.24,>=0.23.1
|
|
37
|
-
Requires-Dist: hypothesis<7,>=6.
|
|
38
|
-
Requires-Dist: hypothesis[zoneinfo]<7,>=6.
|
|
37
|
+
Requires-Dist: hypothesis<7,>=6.103.4; python_version > '3.8'
|
|
38
|
+
Requires-Dist: hypothesis[zoneinfo]<7,>=6.103.4; python_version == '3.8'
|
|
39
39
|
Requires-Dist: jsonschema<5.0,>=4.18.0
|
|
40
40
|
Requires-Dist: junit-xml<2.0,>=1.9
|
|
41
41
|
Requires-Dist: pyrate-limiter<4.0,>=2.10
|
|
@@ -1,9 +1,38 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
-
:version:`Unreleased <v3.30.
|
|
4
|
+
:version:`Unreleased <v3.30.2...HEAD>` - TBD
|
|
5
5
|
--------------------------------------------
|
|
6
6
|
|
|
7
|
+
.. _v3.30.2:
|
|
8
|
+
|
|
9
|
+
:version:`3.30.2 <v3.30.1...v3.30.2>` - 2024-06-27
|
|
10
|
+
--------------------------------------------------
|
|
11
|
+
|
|
12
|
+
**Fixed**
|
|
13
|
+
|
|
14
|
+
- Excessive ``urllib3`` warnings during testing ``localhost`` via ``https``.
|
|
15
|
+
- Misreporting of undocumented ``Content-Type`` when documented content types contain wildcards.
|
|
16
|
+
- Incorrect test case reporting when code samples contain a single sanitized parameter. :issue:`2294`
|
|
17
|
+
|
|
18
|
+
.. _v3.30.1:
|
|
19
|
+
|
|
20
|
+
:version:`3.30.1 <v3.30.0...v3.30.1>` - 2024-06-24
|
|
21
|
+
--------------------------------------------------
|
|
22
|
+
|
|
23
|
+
**Added**
|
|
24
|
+
|
|
25
|
+
- ``--output-truncate=false`` CLI option to disable schema and response payload truncation in error messages.
|
|
26
|
+
|
|
27
|
+
**Changed**
|
|
28
|
+
|
|
29
|
+
- More fine-grained events for stateful testing.
|
|
30
|
+
|
|
31
|
+
**Fixed**
|
|
32
|
+
|
|
33
|
+
- Internal error caused by an upstream race condition bug in Hypothesis. :issue:`2269`
|
|
34
|
+
- Do not output stateful tests sub-section in CLI if there are no stateful tests due to applied filters.
|
|
35
|
+
|
|
7
36
|
.. _v3.30.0:
|
|
8
37
|
|
|
9
38
|
:version:`3.30.0 <v3.29.2...v3.30.0>` - 2024-06-23
|
|
@@ -125,6 +125,7 @@ There are four built-in checks you can use via the `--checks / -c` CLI option:
|
|
|
125
125
|
- ``response_schema_conformance``. The response content does not conform to the schema defined for this specific response;
|
|
126
126
|
- ``negative_data_rejection``. The API accepts data that is invalid according to the schema;
|
|
127
127
|
- ``response_headers_conformance``. The response headers does not contain all defined headers.
|
|
128
|
+
- ``use_after_free``. The API returned a non-404 response a successful DELETE operation on a resource. **NOTE**: Only enabled for new-style stateful testing.
|
|
128
129
|
|
|
129
130
|
To make Schemathesis perform all built-in checks use ``--checks all`` CLI option:
|
|
130
131
|
|
|
@@ -234,17 +235,25 @@ Note that it is not guaranteed to improve performance because it depends on your
|
|
|
234
235
|
Code samples style
|
|
235
236
|
------------------
|
|
236
237
|
|
|
237
|
-
To reproduce test failures Schemathesis generates
|
|
238
|
+
To reproduce test failures Schemathesis generates cURL commands:
|
|
238
239
|
|
|
239
240
|
.. code:: python
|
|
240
241
|
|
|
241
|
-
|
|
242
|
+
curl -X GET http://127.0.0.1:8081/api/failure
|
|
242
243
|
|
|
243
|
-
You can control these samples via the ``--code-sample-style`` CLI option. For example, passing ``
|
|
244
|
+
You can control these samples via the ``--code-sample-style`` CLI option. For example, passing ``python`` will generate a Python snippet like this:
|
|
244
245
|
|
|
245
246
|
.. code:: bash
|
|
246
247
|
|
|
247
|
-
|
|
248
|
+
requests.get("http://127.0.0.1:8081/api/failure")
|
|
249
|
+
|
|
250
|
+
Output verbosity
|
|
251
|
+
----------------
|
|
252
|
+
|
|
253
|
+
Sometimes the output contains parts of your API schema or responses in order to provide more context.
|
|
254
|
+
By default, Schemathesis truncates these parts to make the output more readable. However, you can control this behavior with:
|
|
255
|
+
|
|
256
|
+
- ``--output-truncate=false``. Disables schema and response truncation in error messages.
|
|
248
257
|
|
|
249
258
|
ASGI / WSGI support
|
|
250
259
|
-------------------
|
|
@@ -648,8 +657,8 @@ If your API spec is stored in a file, you could use it too by specifying a Docke
|
|
|
648
657
|
|
|
649
658
|
.. code-block:: bash
|
|
650
659
|
|
|
651
|
-
docker run -v $(pwd):/
|
|
652
|
-
run /
|
|
660
|
+
docker run -v $(pwd):/app schemathesis/schemathesis:stable \
|
|
661
|
+
run /app/spec.json
|
|
653
662
|
|
|
654
663
|
In the example above, the ``spec.json`` file from the current working directory is shared with the Schemathesis container.
|
|
655
664
|
Note, that ``$(pwd)`` is shell-specific and works in ``sh`` / ``bash`` / ``zsh``, but could be different in e.g. ``PowerShell``.
|
|
@@ -123,6 +123,16 @@ Also, depending on your setup, you might need to run this command with a custom
|
|
|
123
123
|
In the example above, the module is located at ``myproject/tests/hooks.py`` and the environment variable contains
|
|
124
124
|
a path that could be used as an import in Python.
|
|
125
125
|
|
|
126
|
+
If you run Schemathesis in Docker, make sure you mount a volume to the ``/app`` directory, so Schemathesis can find it within the container.
|
|
127
|
+
|
|
128
|
+
.. code:: bash
|
|
129
|
+
|
|
130
|
+
docker run -v $(pwd):/app -e SCHEMATHESIS_HOOKS=hooks --network=host
|
|
131
|
+
schemathesis/schemathesis:stable run http://127.0.0.1:8081/schema.yaml
|
|
132
|
+
|
|
133
|
+
In this example, the hooks file is called ``hooks.py`` and is located in the current directory.
|
|
134
|
+
The current directory is mounted to the ``/app`` directory in the container.
|
|
135
|
+
|
|
126
136
|
.. note::
|
|
127
137
|
|
|
128
138
|
The name of the module is arbitrary but make sure it is a valid Python module name. Usually it is sufficient to put all your extensions in the ``hooks.py`` file in the current directory.
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "schemathesis"
|
|
7
|
-
version = "3.30.
|
|
7
|
+
version = "3.30.2"
|
|
8
8
|
description = "Property-based testing framework for Open API and GraphQL based apps"
|
|
9
9
|
keywords = ["pytest", "hypothesis", "openapi", "graphql", "testing"]
|
|
10
10
|
authors = [{ name = "Dmitry Dygalo", email = "dmitry@dygalo.dev" }]
|
|
@@ -35,8 +35,8 @@ dependencies = [
|
|
|
35
35
|
"click>=7.0,<9.0",
|
|
36
36
|
"colorama>=0.4,<1.0",
|
|
37
37
|
"httpx>=0.22.0,<1.0",
|
|
38
|
-
"hypothesis>=6.
|
|
39
|
-
"hypothesis[zoneinfo]>=6.
|
|
38
|
+
"hypothesis>=6.103.4,<7; python_version > '3.8'",
|
|
39
|
+
"hypothesis[zoneinfo]>=6.103.4,<7; python_version == '3.8'",
|
|
40
40
|
"hypothesis_graphql>=0.11.0,<1",
|
|
41
41
|
"hypothesis_jsonschema>=0.23.1,<0.24",
|
|
42
42
|
"jsonschema>=4.18.0,<5.0",
|
|
@@ -38,6 +38,7 @@ from ..fixups import ALL_FIXUPS
|
|
|
38
38
|
from ..generation import DEFAULT_DATA_GENERATION_METHODS, DataGenerationMethod
|
|
39
39
|
from ..hooks import GLOBAL_HOOK_DISPATCHER, HookContext, HookDispatcher, HookScope
|
|
40
40
|
from ..internal.datetime import current_datetime
|
|
41
|
+
from ..internal.output import OutputConfig
|
|
41
42
|
from ..internal.validation import file_exists
|
|
42
43
|
from ..loaders import load_app, load_yaml
|
|
43
44
|
from ..models import Case, CheckFunction
|
|
@@ -694,6 +695,14 @@ The report data, consisting of a tar gz file with multiple JSON files, is subjec
|
|
|
694
695
|
callback=callbacks.convert_experimental,
|
|
695
696
|
multiple=True,
|
|
696
697
|
)
|
|
698
|
+
@click.option(
|
|
699
|
+
"--output-truncate",
|
|
700
|
+
help="Specifies whether to truncate schemas and responses in error messages.",
|
|
701
|
+
type=str,
|
|
702
|
+
default="true",
|
|
703
|
+
show_default=True,
|
|
704
|
+
callback=callbacks.convert_boolean_string,
|
|
705
|
+
)
|
|
697
706
|
@click.option(
|
|
698
707
|
"--generation-allow-x00",
|
|
699
708
|
help="Determines whether to allow the generation of `\x00` bytes within strings.",
|
|
@@ -783,6 +792,7 @@ def run(
|
|
|
783
792
|
stateful_recursion_limit: int = DEFAULT_STATEFUL_RECURSION_LIMIT,
|
|
784
793
|
force_schema_version: str | None = None,
|
|
785
794
|
sanitize_output: bool = True,
|
|
795
|
+
output_truncate: bool = True,
|
|
786
796
|
contrib_unique_data: bool = False,
|
|
787
797
|
contrib_openapi_formats_uuid: bool = False,
|
|
788
798
|
contrib_openapi_fill_missing_examples: bool = False,
|
|
@@ -863,6 +873,8 @@ def run(
|
|
|
863
873
|
click.secho(DEPRECATED_CASSETTE_PATH_OPTION_WARNING, fg="yellow")
|
|
864
874
|
cassette_path = store_network_log
|
|
865
875
|
|
|
876
|
+
output_config = OutputConfig(truncate=output_truncate)
|
|
877
|
+
|
|
866
878
|
schemathesis_io_hostname = urlparse(schemathesis_io_url).netloc
|
|
867
879
|
token = schemathesis_io_token or service.hosts.get_token(hostname=schemathesis_io_hostname, hosts_file=hosts_file)
|
|
868
880
|
schema_kind = callbacks.parse_schema_kind(schema, app)
|
|
@@ -982,6 +994,7 @@ def run(
|
|
|
982
994
|
stateful_recursion_limit=stateful_recursion_limit,
|
|
983
995
|
hypothesis_settings=hypothesis_settings,
|
|
984
996
|
generation_config=generation_config,
|
|
997
|
+
output_config=output_config,
|
|
985
998
|
service_client=client,
|
|
986
999
|
)
|
|
987
1000
|
execute(
|
|
@@ -1008,6 +1021,7 @@ def run(
|
|
|
1008
1021
|
location=schema,
|
|
1009
1022
|
base_url=base_url,
|
|
1010
1023
|
started_at=started_at,
|
|
1024
|
+
output_config=output_config,
|
|
1011
1025
|
)
|
|
1012
1026
|
|
|
1013
1027
|
|
|
@@ -1036,6 +1050,7 @@ class LoaderConfig:
|
|
|
1036
1050
|
request_cert: RequestCert | None
|
|
1037
1051
|
wait_for_schema: float | None
|
|
1038
1052
|
rate_limit: str | None
|
|
1053
|
+
output_config: OutputConfig
|
|
1039
1054
|
# Network request parameters
|
|
1040
1055
|
auth: tuple[str, str] | None
|
|
1041
1056
|
auth_type: str | None
|
|
@@ -1079,6 +1094,7 @@ def into_event_stream(
|
|
|
1079
1094
|
workers_num: int,
|
|
1080
1095
|
hypothesis_settings: hypothesis.settings | None,
|
|
1081
1096
|
generation_config: generation.GenerationConfig,
|
|
1097
|
+
output_config: OutputConfig,
|
|
1082
1098
|
seed: int | None,
|
|
1083
1099
|
exit_first: bool,
|
|
1084
1100
|
max_failures: int | None,
|
|
@@ -1112,6 +1128,7 @@ def into_event_stream(
|
|
|
1112
1128
|
method=method or None,
|
|
1113
1129
|
tag=tag or None,
|
|
1114
1130
|
operation_id=operation_id or None,
|
|
1131
|
+
output_config=output_config,
|
|
1115
1132
|
)
|
|
1116
1133
|
schema = load_schema(config)
|
|
1117
1134
|
yield from runner.from_schema(
|
|
@@ -1257,6 +1274,7 @@ def get_loader_kwargs(loader: Callable, config: LoaderConfig) -> dict[str, Any]:
|
|
|
1257
1274
|
"force_schema_version": config.force_schema_version,
|
|
1258
1275
|
"data_generation_methods": config.data_generation_methods,
|
|
1259
1276
|
"rate_limit": config.rate_limit,
|
|
1277
|
+
"output_config": config.output_config,
|
|
1260
1278
|
}
|
|
1261
1279
|
if loader not in (oas_loaders.from_path, oas_loaders.from_dict):
|
|
1262
1280
|
kwargs["headers"] = config.headers
|
|
@@ -1384,6 +1402,7 @@ def execute(
|
|
|
1384
1402
|
location: str,
|
|
1385
1403
|
base_url: str | None,
|
|
1386
1404
|
started_at: str,
|
|
1405
|
+
output_config: OutputConfig,
|
|
1387
1406
|
) -> None:
|
|
1388
1407
|
"""Execute a prepared runner by drawing events from it and passing to a proper handler."""
|
|
1389
1408
|
handlers: list[EventHandler] = []
|
|
@@ -1447,6 +1466,7 @@ def execute(
|
|
|
1447
1466
|
verbosity=verbosity,
|
|
1448
1467
|
code_sample_style=code_sample_style,
|
|
1449
1468
|
report=report_context,
|
|
1469
|
+
output_config=output_config,
|
|
1450
1470
|
)
|
|
1451
1471
|
|
|
1452
1472
|
def shutdown() -> None:
|
|
@@ -8,6 +8,7 @@ from typing import TYPE_CHECKING
|
|
|
8
8
|
|
|
9
9
|
from ..code_samples import CodeSampleStyle
|
|
10
10
|
from ..internal.deprecation import deprecated_property
|
|
11
|
+
from ..internal.output import OutputConfig
|
|
11
12
|
from ..internal.result import Result
|
|
12
13
|
from ..runner.probes import ProbeRun
|
|
13
14
|
from ..runner.serialization import SerializedTestResult
|
|
@@ -57,6 +58,7 @@ class ExecutionContext:
|
|
|
57
58
|
report: ServiceReportContext | FileReportContext | None = None
|
|
58
59
|
probes: list[ProbeRun] | None = None
|
|
59
60
|
analysis: Result[AnalysisResult, Exception] | None = None
|
|
61
|
+
output_config: OutputConfig = field(default_factory=OutputConfig)
|
|
60
62
|
# Special flag to display a warning about Windows-specific encoding issue
|
|
61
63
|
encountered_windows_encoding_issue: bool = False
|
|
62
64
|
state_machine_sink: StateMachineSink | None = None
|
|
@@ -7,7 +7,8 @@ from typing import TYPE_CHECKING, cast
|
|
|
7
7
|
|
|
8
8
|
from junit_xml import TestCase, TestSuite, to_xml_report_file
|
|
9
9
|
|
|
10
|
-
from ..exceptions import RuntimeErrorType
|
|
10
|
+
from ..exceptions import RuntimeErrorType
|
|
11
|
+
from ..internal.output import prepare_response_payload
|
|
11
12
|
from ..models import Status
|
|
12
13
|
from ..runner import events
|
|
13
14
|
from ..runner.serialization import SerializedCheck, SerializedError
|
|
@@ -37,7 +38,7 @@ class JunitXMLHandler(EventHandler):
|
|
|
37
38
|
group_by_case(event.result.checks, context.code_sample_style), 1
|
|
38
39
|
):
|
|
39
40
|
checks = sorted(group, key=lambda c: c.name != "not_a_server_error")
|
|
40
|
-
test_case.add_failure_info(message=build_failure_message(idx, code_sample, checks))
|
|
41
|
+
test_case.add_failure_info(message=build_failure_message(context, idx, code_sample, checks))
|
|
41
42
|
elif event.status == Status.error:
|
|
42
43
|
test_case.add_error_info(message=build_error_message(context, event.result.errors[-1]))
|
|
43
44
|
elif event.status == Status.skip:
|
|
@@ -48,7 +49,7 @@ class JunitXMLHandler(EventHandler):
|
|
|
48
49
|
to_xml_report_file(file_descriptor=self.file_handle, test_suites=test_suites, prettyprint=True)
|
|
49
50
|
|
|
50
51
|
|
|
51
|
-
def build_failure_message(idx: int, code_sample: str, checks: list[SerializedCheck]) -> str:
|
|
52
|
+
def build_failure_message(context: ExecutionContext, idx: int, code_sample: str, checks: list[SerializedCheck]) -> str:
|
|
52
53
|
from ..transports.responses import get_reason
|
|
53
54
|
|
|
54
55
|
message = ""
|
|
@@ -73,7 +74,7 @@ def build_failure_message(idx: int, code_sample: str, checks: list[SerializedChe
|
|
|
73
74
|
# Checked that is not None
|
|
74
75
|
body = cast(bytes, check.response.deserialize_body())
|
|
75
76
|
payload = body.decode(encoding)
|
|
76
|
-
payload = prepare_response_payload(payload)
|
|
77
|
+
payload = prepare_response_payload(payload, config=context.output_config)
|
|
77
78
|
payload = textwrap.indent(f"\n`{payload}`\n", prefix=" ")
|
|
78
79
|
message += payload
|
|
79
80
|
except UnicodeDecodeError:
|
|
@@ -26,9 +26,9 @@ from ...exceptions import (
|
|
|
26
26
|
RuntimeErrorType,
|
|
27
27
|
extract_requests_exception_details,
|
|
28
28
|
format_exception,
|
|
29
|
-
prepare_response_payload,
|
|
30
29
|
)
|
|
31
30
|
from ...experimental import GLOBAL_EXPERIMENTS
|
|
31
|
+
from ...internal.output import prepare_response_payload
|
|
32
32
|
from ...internal.result import Ok
|
|
33
33
|
from ...models import Status
|
|
34
34
|
from ...runner import events
|
|
@@ -314,7 +314,7 @@ def display_failures_for_single_test(context: ExecutionContext, result: Serializ
|
|
|
314
314
|
# Checked that is not None
|
|
315
315
|
body = cast(bytes, check.response.deserialize_body())
|
|
316
316
|
payload = body.decode(encoding)
|
|
317
|
-
payload = prepare_response_payload(payload)
|
|
317
|
+
payload = prepare_response_payload(payload, config=context.output_config)
|
|
318
318
|
payload = textwrap.indent(f"\n`{payload}`", prefix=" ")
|
|
319
319
|
click.echo(payload)
|
|
320
320
|
except UnicodeDecodeError:
|
|
@@ -878,7 +878,11 @@ def handle_stateful_event(context: ExecutionContext, event: events.StatefulEvent
|
|
|
878
878
|
if not experimental.STATEFUL_ONLY.is_enabled:
|
|
879
879
|
click.echo()
|
|
880
880
|
click.secho("Stateful tests\n", bold=True)
|
|
881
|
-
elif
|
|
881
|
+
elif (
|
|
882
|
+
isinstance(event.data, stateful_events.ScenarioFinished)
|
|
883
|
+
and not event.data.is_final
|
|
884
|
+
and event.data.status != stateful_events.ScenarioStatus.REJECTED
|
|
885
|
+
):
|
|
882
886
|
display_execution_result(context, event.data.status.value)
|
|
883
887
|
elif isinstance(event.data, stateful_events.RunFinished):
|
|
884
888
|
click.echo()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
from itertools import groupby
|
|
4
|
-
from typing import Callable, Generator
|
|
4
|
+
from typing import Callable, Generator, Iterator
|
|
5
5
|
|
|
6
6
|
import click
|
|
7
7
|
|
|
@@ -14,20 +14,25 @@ TEST_CASE_ID_TITLE = "Test Case ID"
|
|
|
14
14
|
|
|
15
15
|
def group_by_case(
|
|
16
16
|
checks: list[SerializedCheck], code_sample_style: CodeSampleStyle
|
|
17
|
-
) -> Generator[tuple[str,
|
|
17
|
+
) -> Generator[tuple[str, Iterator[SerializedCheck]], None, None]:
|
|
18
18
|
checks = deduplicate_failures(checks)
|
|
19
|
-
checks = sorted(checks, key=lambda c:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
checks = sorted(checks, key=lambda c: _by_unique_key(c, code_sample_style))
|
|
20
|
+
for (sample, _, _), gen in groupby(checks, lambda c: _by_unique_key(c, code_sample_style)):
|
|
21
|
+
yield (sample, gen)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def _by_unique_key(check: SerializedCheck, code_sample_style: CodeSampleStyle) -> tuple[str, int | None, str | None]:
|
|
25
|
+
return (
|
|
26
|
+
code_sample_style.generate(
|
|
27
|
+
method=check.example.method,
|
|
28
|
+
url=check.example.url,
|
|
29
|
+
body=check.example.deserialize_body(),
|
|
30
|
+
headers=check.example.headers,
|
|
31
|
+
verify=check.example.verify,
|
|
32
|
+
extra_headers=check.example.extra_headers,
|
|
33
|
+
),
|
|
34
|
+
None if not check.response else check.response.status_code,
|
|
35
|
+
None if not check.response else check.response.body,
|
|
31
36
|
)
|
|
32
37
|
|
|
33
38
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import enum
|
|
4
|
-
import json
|
|
5
4
|
import re
|
|
6
5
|
import traceback
|
|
7
6
|
from dataclasses import dataclass, field
|
|
@@ -12,6 +11,7 @@ from typing import TYPE_CHECKING, Any, Callable, Generator, NoReturn
|
|
|
12
11
|
|
|
13
12
|
from .constants import SERIALIZERS_SUGGESTION_MESSAGE
|
|
14
13
|
from .failures import FailureContext
|
|
14
|
+
from .internal.output import truncate_json
|
|
15
15
|
|
|
16
16
|
if TYPE_CHECKING:
|
|
17
17
|
import hypothesis.errors
|
|
@@ -207,7 +207,7 @@ class OperationSchemaError(Exception):
|
|
|
207
207
|
message = "Invalid schema definition"
|
|
208
208
|
error_path = " -> ".join(str(entry) for entry in error.path) or "[root]"
|
|
209
209
|
message += f"\n\nLocation:\n {error_path}"
|
|
210
|
-
instance =
|
|
210
|
+
instance = truncate_json(error.instance)
|
|
211
211
|
message += f"\n\nProblematic definition:\n{instance}"
|
|
212
212
|
message += "\n\nError details:\n "
|
|
213
213
|
# This default message contains the instance which we already printed
|
|
@@ -300,39 +300,6 @@ class InvalidHeadersExample(OperationSchemaError):
|
|
|
300
300
|
return cls(message)
|
|
301
301
|
|
|
302
302
|
|
|
303
|
-
def truncated_json(data: Any, max_lines: int = 10, max_width: int = 80) -> str:
|
|
304
|
-
# Convert JSON to string with indentation
|
|
305
|
-
indent = 4
|
|
306
|
-
serialized = json.dumps(data, indent=indent)
|
|
307
|
-
|
|
308
|
-
# Split string by lines
|
|
309
|
-
|
|
310
|
-
lines = [line[: max_width - 3] + "..." if len(line) > max_width else line for line in serialized.split("\n")]
|
|
311
|
-
|
|
312
|
-
if len(lines) <= max_lines:
|
|
313
|
-
return "\n".join(lines)
|
|
314
|
-
|
|
315
|
-
truncated_lines = lines[: max_lines - 1]
|
|
316
|
-
indentation = " " * indent
|
|
317
|
-
truncated_lines.append(f"{indentation}// Output truncated...")
|
|
318
|
-
truncated_lines.append(lines[-1])
|
|
319
|
-
|
|
320
|
-
return "\n".join(truncated_lines)
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
MAX_PAYLOAD_SIZE = 512
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
def prepare_response_payload(payload: str, max_size: int = MAX_PAYLOAD_SIZE) -> str:
|
|
327
|
-
if payload.endswith("\r\n"):
|
|
328
|
-
payload = payload[:-2]
|
|
329
|
-
elif payload.endswith("\n"):
|
|
330
|
-
payload = payload[:-1]
|
|
331
|
-
if len(payload) > max_size:
|
|
332
|
-
payload = payload[:max_size] + " // Output truncated..."
|
|
333
|
-
return payload
|
|
334
|
-
|
|
335
|
-
|
|
336
303
|
class DeadlineExceeded(Exception):
|
|
337
304
|
"""Test took too long to run."""
|
|
338
305
|
|
|
@@ -5,6 +5,8 @@ from dataclasses import dataclass
|
|
|
5
5
|
from json import JSONDecodeError
|
|
6
6
|
from typing import TYPE_CHECKING, Any
|
|
7
7
|
|
|
8
|
+
from schemathesis.internal.output import OutputConfig
|
|
9
|
+
|
|
8
10
|
if TYPE_CHECKING:
|
|
9
11
|
from graphql.error import GraphQLFormattedError
|
|
10
12
|
from jsonschema import ValidationError
|
|
@@ -42,11 +44,14 @@ class ValidationErrorContext(FailureContext):
|
|
|
42
44
|
return ("/".join(map(str, self.schema_path)),)
|
|
43
45
|
|
|
44
46
|
@classmethod
|
|
45
|
-
def from_exception(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
def from_exception(
|
|
48
|
+
cls, exc: ValidationError, *, output_config: OutputConfig | None = None
|
|
49
|
+
) -> ValidationErrorContext:
|
|
50
|
+
from .internal.output import truncate_json
|
|
51
|
+
|
|
52
|
+
output_config = OutputConfig.from_parent(output_config, max_lines=20)
|
|
53
|
+
schema = textwrap.indent(truncate_json(exc.schema, config=output_config), prefix=" ")
|
|
54
|
+
value = textwrap.indent(truncate_json(exc.instance, config=output_config), prefix=" ")
|
|
50
55
|
schema_path = list(exc.absolute_schema_path)
|
|
51
56
|
if len(schema_path) > 1:
|
|
52
57
|
# Exclude the last segment, which is already in the schema
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
from dataclasses import dataclass, replace
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
TRUNCATED = "// Output truncated..."
|
|
8
|
+
MAX_PAYLOAD_SIZE = 512
|
|
9
|
+
MAX_LINES = 10
|
|
10
|
+
MAX_WIDTH = 80
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@dataclass
|
|
14
|
+
class OutputConfig:
|
|
15
|
+
"""Options for configuring various aspects of Schemathesis output."""
|
|
16
|
+
|
|
17
|
+
truncate: bool = True
|
|
18
|
+
max_payload_size: int = MAX_PAYLOAD_SIZE
|
|
19
|
+
max_lines: int = MAX_LINES
|
|
20
|
+
max_width: int = MAX_WIDTH
|
|
21
|
+
|
|
22
|
+
@classmethod
|
|
23
|
+
def from_parent(cls, parent: OutputConfig | None = None, **changes: Any) -> OutputConfig:
|
|
24
|
+
parent = parent or OutputConfig()
|
|
25
|
+
return parent.replace(**changes)
|
|
26
|
+
|
|
27
|
+
def replace(self, **changes: Any) -> OutputConfig:
|
|
28
|
+
"""Create a new instance with updated values."""
|
|
29
|
+
return replace(self, **changes)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def truncate_json(data: Any, *, config: OutputConfig | None = None) -> str:
|
|
33
|
+
config = config or OutputConfig()
|
|
34
|
+
# Convert JSON to string with indentation
|
|
35
|
+
indent = 4
|
|
36
|
+
serialized = json.dumps(data, indent=indent)
|
|
37
|
+
if not config.truncate:
|
|
38
|
+
return serialized
|
|
39
|
+
|
|
40
|
+
# Split string by lines
|
|
41
|
+
|
|
42
|
+
lines = [
|
|
43
|
+
line[: config.max_width - 3] + "..." if len(line) > config.max_width else line
|
|
44
|
+
for line in serialized.split("\n")
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
if len(lines) <= config.max_lines:
|
|
48
|
+
return "\n".join(lines)
|
|
49
|
+
|
|
50
|
+
truncated_lines = lines[: config.max_lines - 1]
|
|
51
|
+
indentation = " " * indent
|
|
52
|
+
truncated_lines.append(f"{indentation}{TRUNCATED}")
|
|
53
|
+
truncated_lines.append(lines[-1])
|
|
54
|
+
|
|
55
|
+
return "\n".join(truncated_lines)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def prepare_response_payload(payload: str, *, config: OutputConfig | None = None) -> str:
|
|
59
|
+
if payload.endswith("\r\n"):
|
|
60
|
+
payload = payload[:-2]
|
|
61
|
+
elif payload.endswith("\n"):
|
|
62
|
+
payload = payload[:-1]
|
|
63
|
+
config = config or OutputConfig()
|
|
64
|
+
if not config.truncate:
|
|
65
|
+
return payload
|
|
66
|
+
if len(payload) > config.max_payload_size:
|
|
67
|
+
payload = payload[: config.max_payload_size] + f" {TRUNCATED}"
|
|
68
|
+
return payload
|
|
@@ -21,6 +21,7 @@ from .constants import FLAKY_FAILURE_MESSAGE, NOT_SET
|
|
|
21
21
|
from .exceptions import CheckFailed, OperationSchemaError, SkipTest, get_grouped_exception
|
|
22
22
|
from .generation import DataGenerationMethodInput, GenerationConfig
|
|
23
23
|
from .hooks import HookDispatcher, HookScope
|
|
24
|
+
from .internal.output import OutputConfig
|
|
24
25
|
from .internal.result import Ok
|
|
25
26
|
from .models import APIOperation
|
|
26
27
|
from .schemas import BaseSchema
|
|
@@ -52,6 +53,7 @@ class LazySchema:
|
|
|
52
53
|
skip_deprecated_operations: bool = False
|
|
53
54
|
data_generation_methods: DataGenerationMethodInput | NotSet = NOT_SET
|
|
54
55
|
generation_config: GenerationConfig | NotSet = NOT_SET
|
|
56
|
+
output_config: OutputConfig | NotSet = NOT_SET
|
|
55
57
|
code_sample_style: CodeSampleStyle = CodeSampleStyle.default()
|
|
56
58
|
rate_limiter: Limiter | None = None
|
|
57
59
|
sanitize_output: bool = True
|
|
@@ -69,6 +71,7 @@ class LazySchema:
|
|
|
69
71
|
skip_deprecated_operations: bool | NotSet = NOT_SET,
|
|
70
72
|
data_generation_methods: DataGenerationMethodInput | NotSet = NOT_SET,
|
|
71
73
|
generation_config: GenerationConfig | NotSet = NOT_SET,
|
|
74
|
+
output_config: OutputConfig | NotSet = NOT_SET,
|
|
72
75
|
code_sample_style: str | NotSet = NOT_SET,
|
|
73
76
|
) -> Callable:
|
|
74
77
|
if method is NOT_SET:
|
|
@@ -83,6 +86,8 @@ class LazySchema:
|
|
|
83
86
|
data_generation_methods = self.data_generation_methods
|
|
84
87
|
if generation_config is NOT_SET:
|
|
85
88
|
generation_config = self.generation_config
|
|
89
|
+
if output_config is NOT_SET:
|
|
90
|
+
output_config = self.output_config
|
|
86
91
|
if isinstance(code_sample_style, str):
|
|
87
92
|
_code_sample_style = CodeSampleStyle.from_str(code_sample_style)
|
|
88
93
|
else:
|
|
@@ -122,6 +127,7 @@ class LazySchema:
|
|
|
122
127
|
skip_deprecated_operations=skip_deprecated_operations,
|
|
123
128
|
data_generation_methods=data_generation_methods,
|
|
124
129
|
generation_config=generation_config,
|
|
130
|
+
output_config=output_config,
|
|
125
131
|
code_sample_style=_code_sample_style,
|
|
126
132
|
app=self.app,
|
|
127
133
|
rate_limiter=self.rate_limiter,
|
|
@@ -326,6 +332,7 @@ def get_schema(
|
|
|
326
332
|
skip_deprecated_operations: bool | NotSet = NOT_SET,
|
|
327
333
|
data_generation_methods: DataGenerationMethodInput | NotSet = NOT_SET,
|
|
328
334
|
generation_config: GenerationConfig | NotSet = NOT_SET,
|
|
335
|
+
output_config: OutputConfig | NotSet = NOT_SET,
|
|
329
336
|
code_sample_style: CodeSampleStyle,
|
|
330
337
|
rate_limiter: Limiter | None,
|
|
331
338
|
sanitize_output: bool,
|
|
@@ -348,6 +355,7 @@ def get_schema(
|
|
|
348
355
|
skip_deprecated_operations=skip_deprecated_operations,
|
|
349
356
|
data_generation_methods=data_generation_methods,
|
|
350
357
|
generation_config=generation_config,
|
|
358
|
+
output_config=output_config,
|
|
351
359
|
code_sample_style=code_sample_style,
|
|
352
360
|
rate_limiter=rate_limiter,
|
|
353
361
|
sanitize_output=sanitize_output,
|
|
@@ -46,12 +46,12 @@ from .exceptions import (
|
|
|
46
46
|
deduplicate_failed_checks,
|
|
47
47
|
get_grouped_exception,
|
|
48
48
|
maybe_set_assertion_message,
|
|
49
|
-
prepare_response_payload,
|
|
50
49
|
)
|
|
51
50
|
from .generation import DataGenerationMethod, GenerationConfig, generate_random_case_id
|
|
52
51
|
from .hooks import GLOBAL_HOOK_DISPATCHER, HookContext, HookDispatcher, dispatch
|
|
53
52
|
from .internal.copy import fast_deepcopy
|
|
54
53
|
from .internal.deprecation import deprecated_function, deprecated_property
|
|
54
|
+
from .internal.output import prepare_response_payload
|
|
55
55
|
from .parameters import Parameter, ParameterSet, PayloadAlternatives
|
|
56
56
|
from .sanitization import sanitize_request, sanitize_response
|
|
57
57
|
from .serializers import Serializer
|
|
@@ -420,7 +420,7 @@ class Case:
|
|
|
420
420
|
if not payload:
|
|
421
421
|
formatted += "\n\n <EMPTY>"
|
|
422
422
|
else:
|
|
423
|
-
payload = prepare_response_payload(payload)
|
|
423
|
+
payload = prepare_response_payload(payload, config=self.operation.schema.output_config)
|
|
424
424
|
payload = textwrap.indent(f"\n`{payload}`", prefix=" ")
|
|
425
425
|
formatted += f"\n{payload}"
|
|
426
426
|
code_sample_style = (
|