schemathesis 4.0.26__tar.gz → 4.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.pre-commit-config.yaml +2 -2
- {schemathesis-4.0.26 → schemathesis-4.1.0}/CHANGELOG.md +19 -1
- {schemathesis-4.0.26 → schemathesis-4.1.0}/MIGRATION.md +1 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/PKG-INFO +3 -2
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/explanations/stateful.md +37 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/extending.md +1 -1
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/reference/cli.md +13 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/reference/configuration.md +75 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/reference/hooks.md +2 -3
- {schemathesis-4.0.26 → schemathesis-4.1.0}/pyproject.toml +3 -2
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/__init__.py +8 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/handlers/cassettes.py +1 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/handlers/output.py +27 -17
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_operations.py +5 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_phases.py +43 -5
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_projects.py +18 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/schema.json +31 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/context.py +39 -4
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/core.py +30 -9
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/events.py +12 -2
- schemathesis-4.1.0/src/schemathesis/engine/observations.py +42 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/__init__.py +5 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/probes.py +9 -3
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/unit/__init__.py +1 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/case.py +1 -1
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/coverage.py +16 -2
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/hooks.py +16 -4
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/openapi/loaders.py +1 -1
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/_hypothesis.py +16 -3
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/formats.py +15 -2
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/schemas.py +2 -4
- schemathesis-4.1.0/src/schemathesis/specs/openapi/stateful/inference.py +250 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/transport/requests.py +3 -0
- schemathesis-4.1.0/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +48 -0
- schemathesis-4.1.0/test/cli/__snapshots__/test_commands/test_empty_schema_file.pypy.raw +0 -0
- schemathesis-4.1.0/test/cli/__snapshots__/test_commands/test_max_redirects[args0-config0].raw +52 -0
- schemathesis-4.1.0/test/cli/__snapshots__/test_commands/test_max_redirects[args1-config1].raw +52 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +2 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_commands.py +64 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_hooks.py +14 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[unknown_property].raw +1 -1
- schemathesis-4.1.0/test/config/__snapshots__/test_doc_examples/test_configs[checks_enabled_false_response].raw +1 -0
- schemathesis-4.1.0/test/config/__snapshots__/test_doc_examples/test_configs[disable_all_inference_phases].raw +1 -0
- schemathesis-4.1.0/test/config/__snapshots__/test_doc_examples/test_configs[max_redirects_0].raw +1 -0
- schemathesis-4.1.0/test/config/__snapshots__/test_doc_examples/test_configs[max_redirects_5].raw +1 -0
- schemathesis-4.1.0/test/config/__snapshots__/test_doc_examples/test_configs[phases_enabled_false_coverage].raw +1 -0
- schemathesis-4.1.0/test/config/__snapshots__/test_phase_config/test_disable_all_and_enable_one[Open API 3.0].raw +57 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_phase_config.py +15 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/conftest.py +10 -0
- schemathesis-4.1.0/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +44 -0
- schemathesis-4.1.0/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +44 -0
- schemathesis-4.1.0/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +44 -0
- schemathesis-4.1.0/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +44 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/contrib/test_unique_data.py +1 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/engine/test_engine.py +14 -2
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/loaders/test_openapi.py +22 -1
- schemathesis-4.1.0/test/specs/openapi/stateful/__snapshots__/test_inference/test_inference_disabled_via_config.raw +40 -0
- schemathesis-4.1.0/test/specs/openapi/stateful/__snapshots__/test_inference/test_link_inference_accounts_for_filters.raw +40 -0
- schemathesis-4.1.0/test/specs/openapi/stateful/__snapshots__/test_inference/test_link_inference_discovers_corruption_bug.raw +76 -0
- schemathesis-4.1.0/test/specs/openapi/stateful/__snapshots__/test_inference/test_location_points_to_nonexistent_endpoint.raw +40 -0
- schemathesis-4.1.0/test/specs/openapi/stateful/__snapshots__/test_inference/test_stateful_disabled_skips_link_inference.raw +40 -0
- schemathesis-4.1.0/test/specs/openapi/stateful/test_inference.py +872 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_ignored_auth.py +1 -1
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_dereferencing.py +8 -1
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_parameters.py +28 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_schemas.py +3 -0
- schemathesis-4.0.26/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -66
- schemathesis-4.0.26/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -62
- schemathesis-4.0.26/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -62
- schemathesis-4.0.26/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -62
- schemathesis-4.0.26/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -62
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.dockerignore +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/FUNDING.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/dependabot.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/build.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/codeql-analysis.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/codspeed.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/commit.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/example-build.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/master_update.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/memory-benchmark.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/release.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/test-corpus.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/test-hypothesis.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/update-pre-commit.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.gitignore +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.readthedocs.yaml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/.yamllint +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/ARCHITECTURE.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/CITATION.cff +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/CONTRIBUTING.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/Dockerfile +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/Dockerfile.bookworm +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/LICENSE +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/README.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/SECURITY.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/cli.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/coverage_phase.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/memory/hooks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/memory/measure.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/memory/scenarios.json +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/memory/schemas/large_payload.yaml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/memory/schemas/stateful_users.yaml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/references.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/schema.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/changelog.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/codecov.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/corpus/data/graphql.tar.gz +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/corpus/data/openapi-3.0.tar.gz +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/corpus/data/openapi-3.1.tar.gz +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/corpus/data/swagger-2.0.tar.gz +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/corpus/tools.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/configuration.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/explanations/data-generation.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/explanations/examples.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/explanations/pytest.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/faq.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/auth.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/cicd.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/config-optimization.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/custom-media-types.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/custom-serializers.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/extending-cli.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/graphql-custom-scalars.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/hypothesis-strategies.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/index.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/python-apps.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/schema-conformance.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/stateful-testing.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/targeted.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/index.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/migration.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/quick-start.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/reference/checks.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/reference/python.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/reference/warnings.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/resources.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/stylesheets/extra.css +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/tutorials/cli.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/tutorials/pytest.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/examples/booking/Dockerfile +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/examples/booking/README.md +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/examples/booking/app.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/examples/booking/docker-compose.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/img/demo.gif +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/mkdocs.yml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/mypy.ini +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/auths.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/checks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/__main__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/data.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/context.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/events.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/executor.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/filters.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/handlers/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/handlers/base.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/handlers/junitxml.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/loaders.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/validation.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/core.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/ext/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/ext/fs.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/ext/groups.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/ext/options.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_auth.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_checks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_diff_base.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_env.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_error.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_generation.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_health_check.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_output.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_parameters.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_rate_limit.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_report.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_validator.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_warnings.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/compat.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/control.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/curl.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/deserialization.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/errors.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/failures.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/fs.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/hooks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/lazy_import.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/loaders.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/marks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/media_types.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/output/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/output/sanitization.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/rate_limit.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/registries.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/result.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/transforms.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/transport.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/validation.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/version.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/control.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/errors.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/stateful/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/stateful/_executor.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/stateful/context.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/unit/_executor.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/unit/_pool.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/recorder.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/errors.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/filters.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/hypothesis/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/hypothesis/builder.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/hypothesis/examples.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/hypothesis/given.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/hypothesis/reporting.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/hypothesis/strategies.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/meta.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/metrics.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/modes.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/overrides.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/stateful/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/stateful/state_machine.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/graphql/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/graphql/checks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/graphql/loaders.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/openapi/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/openapi/checks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/openapi/generation/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/openapi/generation/filters.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/py.typed +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/pytest/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/pytest/control_flow.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/pytest/lazy.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/pytest/loaders.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/pytest/plugin.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/python/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/python/asgi.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/python/wsgi.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/schemas.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/graphql/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/graphql/schemas.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/checks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/converter.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/examples.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/media_types.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/patterns.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/security.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/serialization.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/stateful/control.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/stateful/links.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/utils.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/transport/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/transport/asgi.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/transport/prepare.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/transport/serialization.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/transport/wsgi.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_all_not_found[default].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_all_not_found[disabled-all].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_all_not_found[disabled-operation].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_all_not_found[selected].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_many_operations.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_no_2xx.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_no_2xx_options_only.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_unauthorized.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/_pytest/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/_pytest/test_markers.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/cp1252_app.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/hooks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_aiohttp/handlers.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/schema.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/conftest.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/test_cli.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/test_provider.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/test_pytest.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_bytes_without_cassette_path[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 2.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_ensure_resource_availability_does_not_trigger_on_subsequent_error.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_format_parameter_csv_response.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_negative_data_rejection_displays_all_cases.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_not_a_server_error.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[None].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses10].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses3].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses4].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses5].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses6].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses7].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses8].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses9].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_app_crash.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_cli_run_changed_base_url[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 2.0-2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_dont_skip_when_generation_is_possible[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
- /schemathesis-4.0.26/test/cli/__snapshots__/test_commands/test_empty_schema_file.raw → /schemathesis-4.1.0/test/cli/__snapshots__/test_commands/test_empty_schema_file.cpython.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_exit_first[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_filter_case_sensitivity[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_response_definition.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_tls_verify[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_during_schema_loading.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 2.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_long_operation_output.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_partial_response.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_rediscover_the_same_failure_in_different_phases_and_store_junit[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_required_as_boolean[in-required-False].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_required_as_boolean[in-required-True].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_required_as_boolean[no-required-False].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_required_as_boolean[no-required-True].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_required_as_boolean[not-in-required-False].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_required_as_boolean[not-in-required-True].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_reserved_characters_in_operation_name.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 2.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[Open API 2.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_skip_not_negated_tests[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_skipped_on_no_explicit_examples.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_stateful_crash.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 2.0-2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_hooks/test_after_call[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/cert.pem +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_cassettes.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_checks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_crashes.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_junitxml.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_options.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_targeted.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_validation.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/code_samples/test_curl.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[null_byte].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[operation_duplicate_filter].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[operation_invalid_expression].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[operation_invalid_regex].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[operation_missing_includes].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[syntactic_error].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_non_existing_file.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.generation-mode-negative].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-auth-basic-non-latin1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-auth-basic].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-headers].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-health-check-close-match].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-health-check].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-placeholder].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-project].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-rate-limit].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-request-timeout-negative].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-request-timeout].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-tls-verify].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-workers].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.root].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.warnings-off].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.warnings-on].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.warnings-selection].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[operations.basic].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[operations.complex_many].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[operations.missing_config_options].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[operations.warnings-off].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[operations.warnings-on].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[parameters.basic].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[parameters.mixed].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[parameters.with_locations].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.all_enabled].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.incorrect_section_type].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.incorrect_types].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.incorrect_types_in_vcr].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.invalid_format_names].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.one_enabled].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.unknown_keyword_vcr].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.unknown_keywords].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.with_env_var].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.with_env_var_in_path].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.with_env_var_missing].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[auth_basic_username_username0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[auth_basic_username_username1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[base_url_https_api_host_v1_he].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[base_url_https_environment_ap].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[checks_disable_globally_conte].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[checks_enabled_false_only_che].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[checks_max_response_time_2_0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[checks_positive_data_acceptan].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[checks_response_schema_confor].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[client_certificate_with_bundl].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[color_false].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[continue_on_failure_true].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[default_auth_for_most_operati].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[default_fast_testing_generati].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[default_timeout_request_timeo].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[disable_all_warnings_warnings].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[enable_specific_warnings_only].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_allow_x00_false].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_codec_ascii].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_database_memory].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_database_schemathe].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_deterministic_true].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_exclude_header_cha].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_graphql_allow_null].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_max_examples_1000].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_max_examples_200].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_max_examples_50].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_maximize_response].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_mode_negative].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_no_shrink_true].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_unique_inputs_true].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_with_security_para].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[global_defaults_generation_ma].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[global_hooks_for_all_projects].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[global_parameters_parameters].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[headers_authorization_bearer].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[headers_x_api_key_api_key0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[headers_x_api_key_api_key1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[headers_x_api_key_api_key_acc].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[max_failures_42].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[operations_by_exact_path_incl].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[operations_include_name_post].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[operations_include_path_billi].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[operations_without_operationi].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[optionally_under_a_named_proj].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_sanitization_enabled_f].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_sanitization_keys_to_s].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_sanitization_replaceme].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_sanitization_sensitive].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_truncation_enabled_fal].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_truncation_max_lines_2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_truncation_max_payload].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_truncation_max_width_1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_coverage_checks_not_a].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_coverage_enabled_false].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_coverage_generate_dupl].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_coverage_unexpected_me].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_examples_fill_missing].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_skip_stateful_testing].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_stateful_max_steps_50].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[proxy_http_localhost_8080].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[proxy_https_username_password].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[rate_limit_1000_h].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[rate_limit_100_m].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[rate_limit_5_s].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[reports_directory_test_result].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[reports_junit_enabled_true].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[reports_junit_path_test_repor].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[reports_preserve_bytes_true].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[request_timeout_0_5].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[request_timeout_30_0_30_secon].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[request_timeout_5_0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[run_more_tests_for_better_cov].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[seed_42].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[set_certificate_and_separate].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[suppress_health_check_too_slo].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[tls_verify_false].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[tls_verify_path_to_ca_bundle].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[wait_for_schema_5_0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[workers_4_use_exactly_4_worke].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[workers_auto_allocate_workers].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_multi_project/test_disable_operations[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_multi_project/test_disable_phases[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_phase_config/test_phase_configuration[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/generation-mode-negative.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-auth-basic-non-latin1.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-auth-basic.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-headers.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-health-check-close-match.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-health-check.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-placeholder.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-project.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-rate-limit.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-request-timeout-negative.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-request-timeout.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-tls-verify.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-workers.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/root.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/warnings-off.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/warnings-on.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/warnings-selection.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/operations/basic.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/operations/complex_many.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/operations/missing_config_options.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/operations/warnings-off.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/operations/warnings-on.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/parameters/basic.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/parameters/mixed.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/parameters/with_locations.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/all_enabled.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/incorrect_section_type.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/incorrect_types.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/incorrect_types_in_vcr.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/invalid_format_names.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/one_enabled.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/unknown_keyword_vcr.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/unknown_keywords.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/with_env_var.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/with_env_var_in_path.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/with_env_var_missing.toml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/conftest.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/hooks/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/hooks/error.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/hooks/example.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/hooks/hello.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_cli.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_config.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_discovery.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_doc_examples.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_hierarchy.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_hooks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_merging.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_multi_project.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_status_code_validation.py +0 -0
- /schemathesis-4.0.26/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw → /schemathesis-4.1.0/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
- /schemathesis-4.0.26/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw → /schemathesis-4.1.0/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/core/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/core/test_deserialization.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/core/test_media_types.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__snapshots__/test_phase/test_missing_authorization.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__snapshots__/test_phase/test_negative_data_rejection.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__snapshots__/test_phase/test_underspecified_path_parameters[schema0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__snapshots__/test_phase/test_underspecified_path_parameters[schema1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__snapshots__/test_phase/test_unnecessary_auth_warning.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__snapshots__/test_phase/test_unspecified_http_methods.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/test_combinations.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/test_examples.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/test_phase.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/relative_files/components/parameters.yaml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/relative_files/components/responses.yaml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/relative_files/components/schemas.yaml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/relative_files/main.yaml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/relative_files/paths/user-account.yaml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/engine/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/engine/__snapshots__/test_probes/test_ctrl_c.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/engine/test_checks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/engine/test_errors.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/engine/test_probes.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/filters/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/filters/test_cli.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/filters/test_expressions.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/filters/test_matching.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/fixtures/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/fixtures/app_runner.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/fixtures/ctx.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/hooks/test_filters.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/hooks/test_hooks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/loaders/conftest.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/loaders/test_common.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/loaders/test_graphql.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/openapi/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/openapi/test_filters.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/python/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/python/test_case.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/python/test_models.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/test_basic.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/test_pytest.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[basic-post].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[success-get].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[basic-Authorization-406].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-Authorization-200].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-200].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-406].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_examples/test_config_override_with_examples.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_examples/test_path_parameters_example_escaping.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_ignored_auth/test_explicit_auth_cli[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-False].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-True].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_patterns/test_response_schema_is_not_mutated.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/blank.pdf +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/parameters/test_forms.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/parameters/test_non_payload.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_default[Open API 3.0-1].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_default[Open API 3.0-2].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_filtered_out[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_generation_config[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_invalid_parameter_reference.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_keyboard_interrupt[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_max_failures[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_missing_body_parameter.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_missing_link[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_non_json_response[User data as plain text].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_non_json_response[].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_not_enough_links[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_stateful_only[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_stateful_only_with_error[Open API 3.0].raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_unique_inputs.raw +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/conftest.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/test_cli.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/test_engine.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/test_stateful.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_checks.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_examples.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_hypothesis.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_media_types.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_negative.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_patterns.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_randomized.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_security.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_serializing.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_app.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_asgi.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_async.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_common_parameters.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_converter.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_direct_access.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_examples.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_filters.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_hypothesis.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_lazy.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_output.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_package.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_parametrization.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_petstore.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_pytest.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_rate_limit.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_recoverable_errors.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_required.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_sanitizing_output.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_serialization.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_stateful.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_unittest.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_warnings.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_wsgi.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test/utils.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test-corpus/conftest.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test-corpus/test_corpus.py +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/test_server.sh +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/tox.ini +0 -0
- {schemathesis-4.0.26 → schemathesis-4.1.0}/typos.toml +0 -0
@@ -33,11 +33,11 @@ repos:
|
|
33
33
|
additional_dependencies: [types-requests, types-PyYAML]
|
34
34
|
|
35
35
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
36
|
-
rev: v0.12.
|
36
|
+
rev: v0.12.9
|
37
37
|
hooks:
|
38
38
|
- id: ruff-format
|
39
39
|
|
40
40
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
41
|
-
rev: v0.12.
|
41
|
+
rev: v0.12.9
|
42
42
|
hooks:
|
43
43
|
- id: ruff-check
|
@@ -1,6 +1,24 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## [Unreleased](https://github.com/schemathesis/schemathesis/compare/v4.0
|
3
|
+
## [Unreleased](https://github.com/schemathesis/schemathesis/compare/v4.1.0...HEAD) - TBD
|
4
|
+
|
5
|
+
## [4.1.0](https://github.com/schemathesis/schemathesis/compare/v4.0.26...v4.1.0) - 2025-08-17
|
6
|
+
|
7
|
+
### :rocket: Added
|
8
|
+
|
9
|
+
- **Automatic Link Inference**: Schemathesis now automatically generates OpenAPI links by analyzing `Location` headers from API responses. [#2953](https://github.com/schemathesis/schemathesis/issues/2953)
|
10
|
+
- `--max-redirects` CLI & config file option. [#712](https://github.com/schemathesis/schemathesis/issues/712)
|
11
|
+
- `enabled` config file option to disable all test phases. [#2951](https://github.com/schemathesis/schemathesis/issues/2951)
|
12
|
+
- Support PyPy3 on best effort basis without running tests in CI due to long running time. [#1079](https://github.com/schemathesis/schemathesis/issues/1079)
|
13
|
+
|
14
|
+
### :bug: Fixed
|
15
|
+
|
16
|
+
- Ignored `codec` for header generation.
|
17
|
+
- Properly try to load schema as YAML if the `Content-Type` header is unknown.
|
18
|
+
|
19
|
+
### :wrench: Changed
|
20
|
+
|
21
|
+
- `before_call` hooks now accept `kwargs` as a regular parameter instead of `**kwargs`. There is a backward compatibility shim for existing hooks with `**kwargs` signatures. The old calling convention will be removed in Schemathesis 5.0. [#3028](https://github.com/schemathesis/schemathesis/issues/3028)
|
4
22
|
|
5
23
|
## [4.0.26](https://github.com/schemathesis/schemathesis/compare/v4.0.25...v4.0.26) - 2025-08-12
|
6
24
|
|
@@ -111,6 +111,7 @@ schemathesis run --phases=examples,coverage <SCHEMA_URL>
|
|
111
111
|
- `schemathesis.HeaderConfig`. Use config file instead.
|
112
112
|
- `schemathesis.runner`. The Schemathesis engine is not a public API anymore.
|
113
113
|
- `add_case` hook.
|
114
|
+
- `process_call_kwargs` hook. Use `before_call` instead.
|
114
115
|
- `SCHEMA_ANALYSIS` experimental feature. Parts of this feature will be open sourced in the future.
|
115
116
|
- `as_requests_kwargs` / `as_werkzeug_kwargs`. Use `as_transport_kwargs` instead.
|
116
117
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: schemathesis
|
3
|
-
Version: 4.0
|
3
|
+
Version: 4.1.0
|
4
4
|
Summary: Property-based testing framework for Open API and GraphQL based apps
|
5
5
|
Project-URL: Documentation, https://schemathesis.readthedocs.io/en/stable/
|
6
6
|
Project-URL: Changelog, https://github.com/schemathesis/schemathesis/blob/master/CHANGELOG.md
|
@@ -26,12 +26,13 @@ Classifier: Programming Language :: Python :: 3.11
|
|
26
26
|
Classifier: Programming Language :: Python :: 3.12
|
27
27
|
Classifier: Programming Language :: Python :: 3.13
|
28
28
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
29
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
29
30
|
Classifier: Topic :: Software Development :: Testing
|
30
31
|
Requires-Python: >=3.9
|
31
32
|
Requires-Dist: backoff<3.0,>=2.1.2
|
32
33
|
Requires-Dist: click<9,>=8.0
|
33
34
|
Requires-Dist: colorama<1.0,>=0.4
|
34
|
-
Requires-Dist: harfile<1.0,>=0.3.
|
35
|
+
Requires-Dist: harfile<1.0,>=0.3.1
|
35
36
|
Requires-Dist: httpx<1.0,>=0.22.0
|
36
37
|
Requires-Dist: hypothesis-graphql<1,>=0.11.1
|
37
38
|
Requires-Dist: hypothesis-jsonschema<0.24,>=0.23.1
|
@@ -77,6 +77,43 @@ paths:
|
|
77
77
|
- Create user → Create user's orders → Get order details
|
78
78
|
- Create parent → Create children → Get parent with children
|
79
79
|
|
80
|
+
### Automatic Link Inference
|
81
|
+
|
82
|
+
Writing OpenAPI links manually for every operation relationship can be time-consuming and error-prone. Schemathesis can automatically infer many of these connections by analyzing `Location` headers from API responses during testing.
|
83
|
+
|
84
|
+
**How it works:**
|
85
|
+
|
86
|
+
1. **Data collection**: During earlier test phases, Schemathesis collects `Location` headers from API responses
|
87
|
+
2. **Pattern analysis**: It analyzes these headers to understand how your API structures resource locations
|
88
|
+
3. **Connection mapping**: Creates connections between operations - it learns how to extract parameters from `Location` headers and use them to call related operations
|
89
|
+
4. **Stateful testing**: Uses this knowledge to chain operations together with real parameter values
|
90
|
+
|
91
|
+
**Example:**
|
92
|
+
|
93
|
+
**Phase 1 - Learning**: During fuzzing, Schemathesis observes:
|
94
|
+
|
95
|
+
```http
|
96
|
+
POST /users → 201 Created
|
97
|
+
Location: /users/123
|
98
|
+
```
|
99
|
+
|
100
|
+
From this, it learns these connections:
|
101
|
+
|
102
|
+
- `GET /users/{userId}` - can be called using `userId` extracted from `Location`
|
103
|
+
- `PUT /users/{userId}` - can be called using `userId` extracted from `Location`
|
104
|
+
- `GET /users/{userId}/posts` - can be called using `userId` extracted from `Location`
|
105
|
+
|
106
|
+
**Phase 2 - Application**: During stateful testing, it uses this knowledge:
|
107
|
+
|
108
|
+
```http
|
109
|
+
POST /users → Location: /users/456 → automatically calls GET /users/456, PUT /users/456, etc.
|
110
|
+
```
|
111
|
+
|
112
|
+
This happens automatically when stateful testing is enabled - no additional configuration required.
|
113
|
+
|
114
|
+
!!! note "Location Headers Required"
|
115
|
+
This feature requires your API to return `Location` headers pointing to created or updated resources.
|
116
|
+
|
80
117
|
## How Schemathesis Extends OpenAPI Links
|
81
118
|
|
82
119
|
### Regex Extraction from Headers and Query Parameters
|
@@ -217,7 +217,7 @@ For complex scenarios, modify the entire request:
|
|
217
217
|
|
218
218
|
```python
|
219
219
|
@schemathesis.hook
|
220
|
-
def before_call(ctx, case,
|
220
|
+
def before_call(ctx, case, kwargs):
|
221
221
|
"""Modify the request just before it's sent"""
|
222
222
|
# Add correlation ID for tracing
|
223
223
|
case.headers["X-Correlation-ID"] = f"test-{uuid.uuid4()}"
|
@@ -318,6 +318,19 @@ The following options control how Schemathesis makes network requests to the API
|
|
318
318
|
$ st run openapi.yaml --rate-limit 5/s
|
319
319
|
```
|
320
320
|
|
321
|
+
#### `--max-redirects INTEGER`
|
322
|
+
|
323
|
+
!!! note ""
|
324
|
+
|
325
|
+
**Type**: `Integer`
|
326
|
+
**Range**: `>=0`
|
327
|
+
|
328
|
+
Maximum number of redirects to follow for each network request during tests. Set to `0` to disable redirect following entirely.
|
329
|
+
|
330
|
+
```console
|
331
|
+
$ st run openapi.yaml --max-redirects 5
|
332
|
+
```
|
333
|
+
|
321
334
|
#### `--request-timeout SECONDS`
|
322
335
|
|
323
336
|
!!! note ""
|
@@ -401,6 +401,23 @@ These settings can only be applied at the project level.
|
|
401
401
|
|
402
402
|
### Phases
|
403
403
|
|
404
|
+
#### `phases.enabled`
|
405
|
+
|
406
|
+
!!! note ""
|
407
|
+
|
408
|
+
**Type:** `Boolean`
|
409
|
+
**Default:** `true`
|
410
|
+
|
411
|
+
Enables or disables all testing phases globally. When set to `false`, no phases will be executed during testing. This is commonly used to disable all phases first, then selectively enable specific ones.
|
412
|
+
|
413
|
+
Run only the coverage phase:
|
414
|
+
|
415
|
+
```toml
|
416
|
+
[phases]
|
417
|
+
enabled = false
|
418
|
+
coverage.enabled = true
|
419
|
+
```
|
420
|
+
|
404
421
|
#### `phases.<phase>.enabled`
|
405
422
|
|
406
423
|
!!! note ""
|
@@ -473,6 +490,26 @@ These settings can only be applied at the project level.
|
|
473
490
|
max-steps = 50
|
474
491
|
```
|
475
492
|
|
493
|
+
#### `phases.stateful.inference.algorithms`
|
494
|
+
|
495
|
+
!!! note ""
|
496
|
+
|
497
|
+
**Type**: `Array[String]`
|
498
|
+
**Default**: `["location-headers"]`
|
499
|
+
|
500
|
+
Specifies which inference algorithms to use during the **stateful** phase. Schemathesis will use the specified algorithms to automatically analyze API responses and generate OpenAPI links for stateful testing.
|
501
|
+
|
502
|
+
Available algorithms:
|
503
|
+
- `location-headers` - Analyzes `Location` headers to infer parameter extraction rules between operations
|
504
|
+
|
505
|
+
Set to an empty array to disable automatic link inference entirely.
|
506
|
+
|
507
|
+
```toml
|
508
|
+
# Disable all inference
|
509
|
+
[phases.stateful.inference]
|
510
|
+
algorithms = []
|
511
|
+
```
|
512
|
+
|
476
513
|
#### `phases.<phase>.checks`
|
477
514
|
|
478
515
|
!!! note ""
|
@@ -505,6 +542,23 @@ These settings can only be applied at the project level.
|
|
505
542
|
|
506
543
|
### Checks
|
507
544
|
|
545
|
+
#### `checks.enabled`
|
546
|
+
|
547
|
+
!!! note ""
|
548
|
+
|
549
|
+
**Type:** `Boolean`
|
550
|
+
**Default:** `true`
|
551
|
+
|
552
|
+
Enables or disables all checks globally. When set to `false`, no checks will be executed during testing. This is commonly used to disable all checks first, then selectively enable specific ones.
|
553
|
+
|
554
|
+
Disable all checks except response schema validation:
|
555
|
+
|
556
|
+
```toml
|
557
|
+
[checks]
|
558
|
+
enabled = false
|
559
|
+
response_schema_conformance.enabled = true
|
560
|
+
```
|
561
|
+
|
508
562
|
#### `checks.<check>.enabled`
|
509
563
|
|
510
564
|
!!! note ""
|
@@ -662,6 +716,27 @@ The following settings control how Schemathesis makes network requests to the AP
|
|
662
716
|
rate-limit = "1000/h"
|
663
717
|
```
|
664
718
|
|
719
|
+
#### `max-redirects`
|
720
|
+
|
721
|
+
!!! note ""
|
722
|
+
|
723
|
+
**Type:** `Integer`
|
724
|
+
**Default:** `30`
|
725
|
+
|
726
|
+
Maximum number of redirects to follow for each network request during tests.
|
727
|
+
|
728
|
+
Allow up to 5 redirects:
|
729
|
+
|
730
|
+
```toml
|
731
|
+
max-redirects = 5
|
732
|
+
```
|
733
|
+
|
734
|
+
Disable redirect following entirely:
|
735
|
+
|
736
|
+
```toml
|
737
|
+
max-redirects = 0
|
738
|
+
```
|
739
|
+
|
665
740
|
#### `request-timeout`
|
666
741
|
|
667
742
|
!!! note ""
|
@@ -34,11 +34,10 @@ Hooks that execute during test case execution.
|
|
34
34
|
|
35
35
|
| Hook | Signature | Execution Stage | Purpose |
|
36
36
|
|------|-----------|-----------------|---------|
|
37
|
-
| **before_call** | `(ctx, case: Case,
|
38
|
-
| **process_call_kwargs** | `(ctx, case: Case, kwargs: dict) -> dict` | Before `case.call()` | Modify request library arguments (timeout, verify, etc.) |
|
37
|
+
| **before_call** | `(ctx, case: Case, kwargs) -> None` | Before HTTP request | Modify test case (headers, body, etc.) |
|
39
38
|
| **after_call** | `(ctx, case: Case, response: Response) -> None` | After HTTP response | Inspect/modify response before checks |
|
40
39
|
|
41
|
-
**Flow:** `before_call` →
|
40
|
+
**Flow:** `before_call` → HTTP Request → `after_call` → Checks
|
42
41
|
|
43
42
|
## Hook Registration
|
44
43
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "schemathesis"
|
7
|
-
version = "4.0
|
7
|
+
version = "4.1.0"
|
8
8
|
description = "Property-based testing framework for Open API and GraphQL based apps"
|
9
9
|
keywords = ["pytest", "hypothesis", "openapi", "graphql", "testing"]
|
10
10
|
authors = [{ name = "Dmitry Dygalo", email = "dmitry@dygalo.dev" }]
|
@@ -28,13 +28,14 @@ classifiers = [
|
|
28
28
|
"Programming Language :: Python :: 3.12",
|
29
29
|
"Programming Language :: Python :: 3.13",
|
30
30
|
"Programming Language :: Python :: Implementation :: CPython",
|
31
|
+
"Programming Language :: Python :: Implementation :: PyPy",
|
31
32
|
"Topic :: Software Development :: Testing",
|
32
33
|
]
|
33
34
|
dependencies = [
|
34
35
|
"backoff>=2.1.2,<3.0",
|
35
36
|
"click>=8.0,<9",
|
36
37
|
"colorama>=0.4,<1.0",
|
37
|
-
"harfile>=0.3.
|
38
|
+
"harfile>=0.3.1,<1.0",
|
38
39
|
"httpx>=0.22.0,<1.0",
|
39
40
|
"hypothesis>=6.108.0,<7",
|
40
41
|
"hypothesis_graphql>=0.11.1,<1",
|
@@ -217,6 +217,12 @@ DEFAULT_PHASES = ["examples", "coverage", "fuzzing", "stateful"]
|
|
217
217
|
type=str,
|
218
218
|
callback=validation.validate_rate_limit,
|
219
219
|
)
|
220
|
+
@grouped_option(
|
221
|
+
"--max-redirects",
|
222
|
+
help="Maximum number of redirects to follow for each request",
|
223
|
+
type=click.IntRange(min=0),
|
224
|
+
show_default=True,
|
225
|
+
)
|
220
226
|
@grouped_option(
|
221
227
|
"--request-timeout",
|
222
228
|
help="Timeout limit, in seconds, for each network request during tests",
|
@@ -448,6 +454,7 @@ def run(
|
|
448
454
|
suppress_health_check: list[HealthCheck] | None,
|
449
455
|
warnings: bool | list[SchemathesisWarning] | None,
|
450
456
|
rate_limit: str | None = None,
|
457
|
+
max_redirects: int | None = None,
|
451
458
|
request_timeout: int | None = None,
|
452
459
|
request_tls_verify: bool | None = None,
|
453
460
|
request_cert: str | None = None,
|
@@ -528,6 +535,7 @@ def run(
|
|
528
535
|
workers=workers,
|
529
536
|
continue_on_failure=continue_on_failure,
|
530
537
|
rate_limit=rate_limit,
|
538
|
+
max_redirects=max_redirects,
|
531
539
|
request_timeout=request_timeout,
|
532
540
|
tls_verify=request_tls_verify,
|
533
541
|
request_cert=request_cert,
|
{schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/handlers/output.py
RENAMED
@@ -592,6 +592,7 @@ class StatefulProgressManager:
|
|
592
592
|
console: Console
|
593
593
|
title: str
|
594
594
|
links_selected: int
|
595
|
+
links_inferred: int
|
595
596
|
links_total: int
|
596
597
|
start_time: float
|
597
598
|
|
@@ -616,6 +617,7 @@ class StatefulProgressManager:
|
|
616
617
|
"console",
|
617
618
|
"title",
|
618
619
|
"links_selected",
|
620
|
+
"links_inferred",
|
619
621
|
"links_total",
|
620
622
|
"start_time",
|
621
623
|
"title_progress",
|
@@ -631,13 +633,16 @@ class StatefulProgressManager:
|
|
631
633
|
"is_interrupted",
|
632
634
|
)
|
633
635
|
|
634
|
-
def __init__(
|
636
|
+
def __init__(
|
637
|
+
self, *, console: Console, title: str, links_selected: int, links_inferred: int, links_total: int
|
638
|
+
) -> None:
|
635
639
|
from rich.progress import Progress, SpinnerColumn, TextColumn, TimeElapsedColumn
|
636
640
|
from rich.style import Style
|
637
641
|
|
638
642
|
self.console = console
|
639
643
|
self.title = title
|
640
644
|
self.links_selected = links_selected
|
645
|
+
self.links_inferred = links_inferred
|
641
646
|
self.links_total = links_total
|
642
647
|
self.start_time = time.monotonic()
|
643
648
|
|
@@ -686,9 +691,10 @@ class StatefulProgressManager:
|
|
686
691
|
|
687
692
|
# Initialize progress displays
|
688
693
|
self.title_task_id = self.title_progress.add_task("Stateful")
|
689
|
-
self.
|
690
|
-
|
691
|
-
|
694
|
+
links = f"0 covered / {self.links_selected} selected / {self.links_total} total"
|
695
|
+
if self.links_inferred:
|
696
|
+
links += f" ({self.links_inferred} inferred)"
|
697
|
+
self.progress_task_id = self.progress_bar.add_task("", scenarios=0, links=links)
|
692
698
|
|
693
699
|
# Create live display
|
694
700
|
group = Group(
|
@@ -720,11 +726,10 @@ class StatefulProgressManager:
|
|
720
726
|
def _update_progress_display(self) -> None:
|
721
727
|
"""Update the progress display."""
|
722
728
|
assert self.progress_task_id is not None
|
723
|
-
self.
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
)
|
729
|
+
links = f"{len(self.links_covered)} covered / {self.links_selected} selected / {self.links_total} total"
|
730
|
+
if self.links_inferred:
|
731
|
+
links += f" ({self.links_inferred} inferred)"
|
732
|
+
self.progress_bar.update(self.progress_task_id, scenarios=self.scenarios, links=links)
|
728
733
|
|
729
734
|
def _get_stats_message(self) -> str:
|
730
735
|
"""Get formatted stats message."""
|
@@ -888,7 +893,7 @@ class OutputHandler(EventHandler):
|
|
888
893
|
elif phase.name in [PhaseName.EXAMPLES, PhaseName.COVERAGE, PhaseName.FUZZING] and phase.is_enabled:
|
889
894
|
self._start_unit_tests(phase.name)
|
890
895
|
elif phase.name == PhaseName.STATEFUL_TESTING and phase.is_enabled and phase.skip_reason is None:
|
891
|
-
self._start_stateful_tests()
|
896
|
+
self._start_stateful_tests(event)
|
892
897
|
|
893
898
|
def _start_probing(self) -> None:
|
894
899
|
self.probing_manager = ProbingProgressManager(console=self.console)
|
@@ -904,13 +909,18 @@ class OutputHandler(EventHandler):
|
|
904
909
|
)
|
905
910
|
self.unit_tests_manager.start()
|
906
911
|
|
907
|
-
def _start_stateful_tests(self) -> None:
|
912
|
+
def _start_stateful_tests(self, event: events.PhaseStarted) -> None:
|
908
913
|
assert self.statistic is not None
|
914
|
+
assert event.payload is not None
|
915
|
+
# Total number of links - original ones + inferred during tests
|
916
|
+
links_selected = self.statistic.links.selected + event.payload.inferred_links
|
917
|
+
links_total = self.statistic.links.total + event.payload.inferred_links
|
909
918
|
self.stateful_tests_manager = StatefulProgressManager(
|
910
919
|
console=self.console,
|
911
920
|
title="Stateful",
|
912
|
-
links_selected=
|
913
|
-
|
921
|
+
links_selected=links_selected,
|
922
|
+
links_inferred=event.payload.inferred_links,
|
923
|
+
links_total=links_total,
|
914
924
|
)
|
915
925
|
self.stateful_tests_manager.start()
|
916
926
|
|
@@ -990,10 +1000,10 @@ class OutputHandler(EventHandler):
|
|
990
1000
|
table.add_column("Field", style=Style(color="bright_white", bold=True))
|
991
1001
|
table.add_column("Value", style="cyan")
|
992
1002
|
table.add_row("Scenarios:", f"{self.stateful_tests_manager.scenarios}")
|
993
|
-
|
994
|
-
|
995
|
-
f"
|
996
|
-
)
|
1003
|
+
message = f"{len(self.stateful_tests_manager.links_covered)} covered / {self.stateful_tests_manager.links_selected} selected / {self.stateful_tests_manager.links_total} total"
|
1004
|
+
if self.stateful_tests_manager.links_inferred:
|
1005
|
+
message += f" ({self.stateful_tests_manager.links_inferred} inferred)"
|
1006
|
+
table.add_row("API Links:", message)
|
997
1007
|
|
998
1008
|
self.console.print()
|
999
1009
|
self.console.print(Padding(table, BLOCK_PADDING))
|
@@ -199,6 +199,7 @@ class OperationConfig(DiffBase):
|
|
199
199
|
continue_on_failure: bool | None
|
200
200
|
tls_verify: bool | str | None
|
201
201
|
rate_limit: Limiter | None
|
202
|
+
max_redirects: int | None
|
202
203
|
request_timeout: float | int | None
|
203
204
|
request_cert: str | None
|
204
205
|
request_cert_key: str | None
|
@@ -218,6 +219,7 @@ class OperationConfig(DiffBase):
|
|
218
219
|
"tls_verify",
|
219
220
|
"rate_limit",
|
220
221
|
"_rate_limit",
|
222
|
+
"max_redirects",
|
221
223
|
"request_timeout",
|
222
224
|
"request_cert",
|
223
225
|
"request_cert_key",
|
@@ -239,6 +241,7 @@ class OperationConfig(DiffBase):
|
|
239
241
|
continue_on_failure: bool | None = None,
|
240
242
|
tls_verify: bool | str | None = None,
|
241
243
|
rate_limit: str | None = None,
|
244
|
+
max_redirects: int | None = None,
|
242
245
|
request_timeout: float | int | None = None,
|
243
246
|
request_cert: str | None = None,
|
244
247
|
request_cert_key: str | None = None,
|
@@ -260,6 +263,7 @@ class OperationConfig(DiffBase):
|
|
260
263
|
else:
|
261
264
|
self.rate_limit = rate_limit
|
262
265
|
self._rate_limit = rate_limit
|
266
|
+
self.max_redirects = max_redirects
|
263
267
|
self.request_timeout = request_timeout
|
264
268
|
self.request_cert = request_cert
|
265
269
|
self.request_cert_key = request_cert_key
|
@@ -308,6 +312,7 @@ class OperationConfig(DiffBase):
|
|
308
312
|
continue_on_failure=data.get("continue-on-failure", None),
|
309
313
|
tls_verify=resolve(data.get("tls-verify")),
|
310
314
|
rate_limit=resolve(data.get("rate-limit")),
|
315
|
+
max_redirects=data.get("max-redirects"),
|
311
316
|
request_timeout=data.get("request-timeout"),
|
312
317
|
request_cert=resolve(data.get("request-cert")),
|
313
318
|
request_cert_key=resolve(data.get("request-cert-key")),
|
@@ -109,14 +109,40 @@ class CoveragePhaseConfig(DiffBase):
|
|
109
109
|
)
|
110
110
|
|
111
111
|
|
112
|
+
@dataclass(repr=False)
|
113
|
+
class InferenceConfig(DiffBase):
|
114
|
+
algorithms: list[str]
|
115
|
+
|
116
|
+
__slots__ = ("algorithms",)
|
117
|
+
|
118
|
+
def __init__(
|
119
|
+
self,
|
120
|
+
*,
|
121
|
+
algorithms: list[str] | None = None,
|
122
|
+
) -> None:
|
123
|
+
self.algorithms = algorithms if algorithms is not None else ["location-headers"]
|
124
|
+
|
125
|
+
@classmethod
|
126
|
+
def from_dict(cls, data: dict[str, Any]) -> InferenceConfig:
|
127
|
+
return cls(
|
128
|
+
algorithms=data.get("algorithms", ["location-headers"]),
|
129
|
+
)
|
130
|
+
|
131
|
+
@property
|
132
|
+
def is_enabled(self) -> bool:
|
133
|
+
"""Inference is enabled if any algorithms are configured."""
|
134
|
+
return bool(self.algorithms)
|
135
|
+
|
136
|
+
|
112
137
|
@dataclass(repr=False)
|
113
138
|
class StatefulPhaseConfig(DiffBase):
|
114
139
|
enabled: bool
|
115
140
|
generation: GenerationConfig
|
116
141
|
checks: ChecksConfig
|
117
142
|
max_steps: int
|
143
|
+
inference: InferenceConfig
|
118
144
|
|
119
|
-
__slots__ = ("enabled", "generation", "checks", "max_steps")
|
145
|
+
__slots__ = ("enabled", "generation", "checks", "max_steps", "inference")
|
120
146
|
|
121
147
|
def __init__(
|
122
148
|
self,
|
@@ -125,11 +151,13 @@ class StatefulPhaseConfig(DiffBase):
|
|
125
151
|
generation: GenerationConfig | None = None,
|
126
152
|
checks: ChecksConfig | None = None,
|
127
153
|
max_steps: int | None = None,
|
154
|
+
inference: InferenceConfig | None = None,
|
128
155
|
) -> None:
|
129
156
|
self.enabled = enabled
|
130
157
|
self.max_steps = max_steps or DEFAULT_STATEFUL_STEP_COUNT
|
131
158
|
self.generation = generation or GenerationConfig()
|
132
159
|
self.checks = checks or ChecksConfig()
|
160
|
+
self.inference = inference or InferenceConfig()
|
133
161
|
|
134
162
|
@classmethod
|
135
163
|
def from_dict(cls, data: dict[str, Any]) -> StatefulPhaseConfig:
|
@@ -138,6 +166,7 @@ class StatefulPhaseConfig(DiffBase):
|
|
138
166
|
max_steps=data.get("max-steps"),
|
139
167
|
generation=GenerationConfig.from_dict(data.get("generation", {})),
|
140
168
|
checks=ChecksConfig.from_dict(data.get("checks", {})),
|
169
|
+
inference=InferenceConfig.from_dict(data.get("inference", {})),
|
141
170
|
)
|
142
171
|
|
143
172
|
|
@@ -173,11 +202,20 @@ class PhasesConfig(DiffBase):
|
|
173
202
|
|
174
203
|
@classmethod
|
175
204
|
def from_dict(cls, data: dict[str, Any]) -> PhasesConfig:
|
205
|
+
# Use the outer "enabled" value as default for all phases.
|
206
|
+
default_enabled = data.get("enabled", None)
|
207
|
+
|
208
|
+
def merge(sub: dict[str, Any]) -> dict[str, Any]:
|
209
|
+
# Merge the default enabled flag with the sub-dict; the sub-dict takes precedence.
|
210
|
+
if default_enabled is not None:
|
211
|
+
return {"enabled": default_enabled, **sub}
|
212
|
+
return sub
|
213
|
+
|
176
214
|
return cls(
|
177
|
-
examples=ExamplesPhaseConfig.from_dict(data.get("examples", {})),
|
178
|
-
coverage=CoveragePhaseConfig.from_dict(data.get("coverage", {})),
|
179
|
-
fuzzing=PhaseConfig.from_dict(data.get("fuzzing", {})),
|
180
|
-
stateful=StatefulPhaseConfig.from_dict(data.get("stateful", {})),
|
215
|
+
examples=ExamplesPhaseConfig.from_dict(merge(data.get("examples", {}))),
|
216
|
+
coverage=CoveragePhaseConfig.from_dict(merge(data.get("coverage", {}))),
|
217
|
+
fuzzing=PhaseConfig.from_dict(merge(data.get("fuzzing", {}))),
|
218
|
+
stateful=StatefulPhaseConfig.from_dict(merge(data.get("stateful", {}))),
|
181
219
|
)
|
182
220
|
|
183
221
|
def update(self, *, phases: list[str]) -> None:
|
@@ -54,6 +54,7 @@ class ProjectConfig(DiffBase):
|
|
54
54
|
continue_on_failure: bool | None
|
55
55
|
tls_verify: bool | str | None
|
56
56
|
rate_limit: Limiter | None
|
57
|
+
max_redirects: int | None
|
57
58
|
request_timeout: float | int | None
|
58
59
|
request_cert: str | None
|
59
60
|
request_cert_key: str | None
|
@@ -76,6 +77,7 @@ class ProjectConfig(DiffBase):
|
|
76
77
|
"tls_verify",
|
77
78
|
"rate_limit",
|
78
79
|
"_rate_limit",
|
80
|
+
"max_redirects",
|
79
81
|
"request_timeout",
|
80
82
|
"request_cert",
|
81
83
|
"request_cert_key",
|
@@ -100,6 +102,7 @@ class ProjectConfig(DiffBase):
|
|
100
102
|
continue_on_failure: bool | None = None,
|
101
103
|
tls_verify: bool | str = True,
|
102
104
|
rate_limit: str | None = None,
|
105
|
+
max_redirects: int | None = None,
|
103
106
|
request_timeout: float | int | None = None,
|
104
107
|
request_cert: str | None = None,
|
105
108
|
request_cert_key: str | None = None,
|
@@ -133,6 +136,7 @@ class ProjectConfig(DiffBase):
|
|
133
136
|
else:
|
134
137
|
self.rate_limit = rate_limit
|
135
138
|
self._rate_limit = rate_limit
|
139
|
+
self.max_redirects = max_redirects
|
136
140
|
self.request_timeout = request_timeout
|
137
141
|
self.request_cert = request_cert
|
138
142
|
self.request_cert_key = request_cert_key
|
@@ -157,6 +161,7 @@ class ProjectConfig(DiffBase):
|
|
157
161
|
continue_on_failure=data.get("continue-on-failure", None),
|
158
162
|
tls_verify=resolve(data.get("tls-verify", True)),
|
159
163
|
rate_limit=resolve(data.get("rate-limit")),
|
164
|
+
max_redirects=data.get("max-redirects"),
|
160
165
|
request_timeout=data.get("request-timeout"),
|
161
166
|
request_cert=resolve(data.get("request-cert")),
|
162
167
|
request_cert_key=resolve(data.get("request-cert-key")),
|
@@ -188,6 +193,7 @@ class ProjectConfig(DiffBase):
|
|
188
193
|
workers: int | Literal["auto"] | None = None,
|
189
194
|
continue_on_failure: bool | None = None,
|
190
195
|
rate_limit: str | None = None,
|
196
|
+
max_redirects: int | None = None,
|
191
197
|
request_timeout: float | int | None = None,
|
192
198
|
tls_verify: bool | str | None = None,
|
193
199
|
request_cert: str | None = None,
|
@@ -221,6 +227,9 @@ class ProjectConfig(DiffBase):
|
|
221
227
|
if rate_limit is not None:
|
222
228
|
self.rate_limit = build_limiter(rate_limit)
|
223
229
|
|
230
|
+
if max_redirects is not None:
|
231
|
+
self.max_redirects = max_redirects
|
232
|
+
|
224
233
|
if request_timeout is not None:
|
225
234
|
self.request_timeout = request_timeout
|
226
235
|
|
@@ -264,6 +273,15 @@ class ProjectConfig(DiffBase):
|
|
264
273
|
headers.update(config.headers)
|
265
274
|
return headers
|
266
275
|
|
276
|
+
def max_redirects_for(self, *, operation: APIOperation | None = None) -> int | None:
|
277
|
+
if operation is not None:
|
278
|
+
config = self.operations.get_for_operation(operation=operation)
|
279
|
+
if config.max_redirects is not None:
|
280
|
+
return config.max_redirects
|
281
|
+
if self.max_redirects is not None:
|
282
|
+
return self.max_redirects
|
283
|
+
return None
|
284
|
+
|
267
285
|
def request_timeout_for(self, *, operation: APIOperation | None = None) -> float | int | None:
|
268
286
|
if operation is not None:
|
269
287
|
config = self.operations.get_for_operation(operation=operation)
|