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.
Files changed (822) hide show
  1. {schemathesis-4.0.26 → schemathesis-4.1.0}/.pre-commit-config.yaml +2 -2
  2. {schemathesis-4.0.26 → schemathesis-4.1.0}/CHANGELOG.md +19 -1
  3. {schemathesis-4.0.26 → schemathesis-4.1.0}/MIGRATION.md +1 -0
  4. {schemathesis-4.0.26 → schemathesis-4.1.0}/PKG-INFO +3 -2
  5. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/explanations/stateful.md +37 -0
  6. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/extending.md +1 -1
  7. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/reference/cli.md +13 -0
  8. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/reference/configuration.md +75 -0
  9. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/reference/hooks.md +2 -3
  10. {schemathesis-4.0.26 → schemathesis-4.1.0}/pyproject.toml +3 -2
  11. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/__init__.py +8 -0
  12. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/handlers/cassettes.py +1 -0
  13. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/handlers/output.py +27 -17
  14. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_operations.py +5 -0
  15. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_phases.py +43 -5
  16. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_projects.py +18 -0
  17. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/schema.json +31 -0
  18. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/context.py +39 -4
  19. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/core.py +30 -9
  20. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/events.py +12 -2
  21. schemathesis-4.1.0/src/schemathesis/engine/observations.py +42 -0
  22. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/__init__.py +5 -0
  23. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/probes.py +9 -3
  24. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/unit/__init__.py +1 -0
  25. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/case.py +1 -1
  26. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/coverage.py +16 -2
  27. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/hooks.py +16 -4
  28. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/openapi/loaders.py +1 -1
  29. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/_hypothesis.py +16 -3
  30. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/formats.py +15 -2
  31. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/schemas.py +2 -4
  32. schemathesis-4.1.0/src/schemathesis/specs/openapi/stateful/inference.py +250 -0
  33. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/transport/requests.py +3 -0
  34. schemathesis-4.1.0/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +48 -0
  35. schemathesis-4.1.0/test/cli/__snapshots__/test_commands/test_empty_schema_file.pypy.raw +0 -0
  36. schemathesis-4.1.0/test/cli/__snapshots__/test_commands/test_max_redirects[args0-config0].raw +52 -0
  37. schemathesis-4.1.0/test/cli/__snapshots__/test_commands/test_max_redirects[args1-config1].raw +52 -0
  38. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +2 -0
  39. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_commands.py +64 -0
  40. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_hooks.py +14 -0
  41. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[unknown_property].raw +1 -1
  42. schemathesis-4.1.0/test/config/__snapshots__/test_doc_examples/test_configs[checks_enabled_false_response].raw +1 -0
  43. schemathesis-4.1.0/test/config/__snapshots__/test_doc_examples/test_configs[disable_all_inference_phases].raw +1 -0
  44. schemathesis-4.1.0/test/config/__snapshots__/test_doc_examples/test_configs[max_redirects_0].raw +1 -0
  45. schemathesis-4.1.0/test/config/__snapshots__/test_doc_examples/test_configs[max_redirects_5].raw +1 -0
  46. schemathesis-4.1.0/test/config/__snapshots__/test_doc_examples/test_configs[phases_enabled_false_coverage].raw +1 -0
  47. schemathesis-4.1.0/test/config/__snapshots__/test_phase_config/test_disable_all_and_enable_one[Open API 3.0].raw +57 -0
  48. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_phase_config.py +15 -0
  49. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/conftest.py +10 -0
  50. schemathesis-4.1.0/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +44 -0
  51. schemathesis-4.1.0/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +44 -0
  52. schemathesis-4.1.0/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +44 -0
  53. schemathesis-4.1.0/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +44 -0
  54. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/contrib/test_unique_data.py +1 -0
  55. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/engine/test_engine.py +14 -2
  56. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/loaders/test_openapi.py +22 -1
  57. schemathesis-4.1.0/test/specs/openapi/stateful/__snapshots__/test_inference/test_inference_disabled_via_config.raw +40 -0
  58. schemathesis-4.1.0/test/specs/openapi/stateful/__snapshots__/test_inference/test_link_inference_accounts_for_filters.raw +40 -0
  59. schemathesis-4.1.0/test/specs/openapi/stateful/__snapshots__/test_inference/test_link_inference_discovers_corruption_bug.raw +76 -0
  60. schemathesis-4.1.0/test/specs/openapi/stateful/__snapshots__/test_inference/test_location_points_to_nonexistent_endpoint.raw +40 -0
  61. schemathesis-4.1.0/test/specs/openapi/stateful/__snapshots__/test_inference/test_stateful_disabled_skips_link_inference.raw +40 -0
  62. schemathesis-4.1.0/test/specs/openapi/stateful/test_inference.py +872 -0
  63. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_ignored_auth.py +1 -1
  64. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_dereferencing.py +8 -1
  65. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_parameters.py +28 -0
  66. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_schemas.py +3 -0
  67. schemathesis-4.0.26/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -66
  68. schemathesis-4.0.26/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -62
  69. schemathesis-4.0.26/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -62
  70. schemathesis-4.0.26/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -62
  71. schemathesis-4.0.26/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -62
  72. {schemathesis-4.0.26 → schemathesis-4.1.0}/.dockerignore +0 -0
  73. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/FUNDING.yml +0 -0
  74. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  75. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  76. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  77. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/dependabot.yml +0 -0
  78. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/build.yml +0 -0
  79. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/codeql-analysis.yml +0 -0
  80. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/codspeed.yml +0 -0
  81. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/commit.yml +0 -0
  82. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/example-build.yml +0 -0
  83. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/master_update.yml +0 -0
  84. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/memory-benchmark.yml +0 -0
  85. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/release.yml +0 -0
  86. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/test-corpus.yml +0 -0
  87. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/test-hypothesis.yml +0 -0
  88. {schemathesis-4.0.26 → schemathesis-4.1.0}/.github/workflows/update-pre-commit.yml +0 -0
  89. {schemathesis-4.0.26 → schemathesis-4.1.0}/.gitignore +0 -0
  90. {schemathesis-4.0.26 → schemathesis-4.1.0}/.readthedocs.yaml +0 -0
  91. {schemathesis-4.0.26 → schemathesis-4.1.0}/.yamllint +0 -0
  92. {schemathesis-4.0.26 → schemathesis-4.1.0}/ARCHITECTURE.md +0 -0
  93. {schemathesis-4.0.26 → schemathesis-4.1.0}/CITATION.cff +0 -0
  94. {schemathesis-4.0.26 → schemathesis-4.1.0}/CODE_OF_CONDUCT.md +0 -0
  95. {schemathesis-4.0.26 → schemathesis-4.1.0}/CONTRIBUTING.md +0 -0
  96. {schemathesis-4.0.26 → schemathesis-4.1.0}/Dockerfile +0 -0
  97. {schemathesis-4.0.26 → schemathesis-4.1.0}/Dockerfile.bookworm +0 -0
  98. {schemathesis-4.0.26 → schemathesis-4.1.0}/LICENSE +0 -0
  99. {schemathesis-4.0.26 → schemathesis-4.1.0}/README.md +0 -0
  100. {schemathesis-4.0.26 → schemathesis-4.1.0}/SECURITY.md +0 -0
  101. {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/cli.py +0 -0
  102. {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/coverage_phase.py +0 -0
  103. {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/memory/hooks.py +0 -0
  104. {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/memory/measure.py +0 -0
  105. {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/memory/scenarios.json +0 -0
  106. {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/memory/schemas/large_payload.yaml +0 -0
  107. {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/memory/schemas/stateful_users.yaml +0 -0
  108. {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/references.py +0 -0
  109. {schemathesis-4.0.26 → schemathesis-4.1.0}/benches/schema.py +0 -0
  110. {schemathesis-4.0.26 → schemathesis-4.1.0}/changelog.py +0 -0
  111. {schemathesis-4.0.26 → schemathesis-4.1.0}/codecov.yml +0 -0
  112. {schemathesis-4.0.26 → schemathesis-4.1.0}/corpus/data/graphql.tar.gz +0 -0
  113. {schemathesis-4.0.26 → schemathesis-4.1.0}/corpus/data/openapi-3.0.tar.gz +0 -0
  114. {schemathesis-4.0.26 → schemathesis-4.1.0}/corpus/data/openapi-3.1.tar.gz +0 -0
  115. {schemathesis-4.0.26 → schemathesis-4.1.0}/corpus/data/swagger-2.0.tar.gz +0 -0
  116. {schemathesis-4.0.26 → schemathesis-4.1.0}/corpus/tools.py +0 -0
  117. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/configuration.md +0 -0
  118. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/explanations/data-generation.md +0 -0
  119. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/explanations/examples.md +0 -0
  120. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/explanations/pytest.md +0 -0
  121. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/faq.md +0 -0
  122. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/auth.md +0 -0
  123. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/cicd.md +0 -0
  124. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/config-optimization.md +0 -0
  125. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/custom-media-types.md +0 -0
  126. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/custom-serializers.md +0 -0
  127. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/extending-cli.md +0 -0
  128. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/graphql-custom-scalars.md +0 -0
  129. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/hypothesis-strategies.md +0 -0
  130. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/index.md +0 -0
  131. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/python-apps.md +0 -0
  132. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/schema-conformance.md +0 -0
  133. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/stateful-testing.md +0 -0
  134. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/guides/targeted.md +0 -0
  135. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/index.md +0 -0
  136. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/migration.md +0 -0
  137. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/quick-start.md +0 -0
  138. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/reference/checks.md +0 -0
  139. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/reference/python.md +0 -0
  140. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/reference/warnings.md +0 -0
  141. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/resources.md +0 -0
  142. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/stylesheets/extra.css +0 -0
  143. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/tutorials/cli.md +0 -0
  144. {schemathesis-4.0.26 → schemathesis-4.1.0}/docs/tutorials/pytest.md +0 -0
  145. {schemathesis-4.0.26 → schemathesis-4.1.0}/examples/booking/Dockerfile +0 -0
  146. {schemathesis-4.0.26 → schemathesis-4.1.0}/examples/booking/README.md +0 -0
  147. {schemathesis-4.0.26 → schemathesis-4.1.0}/examples/booking/app.py +0 -0
  148. {schemathesis-4.0.26 → schemathesis-4.1.0}/examples/booking/docker-compose.yml +0 -0
  149. {schemathesis-4.0.26 → schemathesis-4.1.0}/img/demo.gif +0 -0
  150. {schemathesis-4.0.26 → schemathesis-4.1.0}/mkdocs.yml +0 -0
  151. {schemathesis-4.0.26 → schemathesis-4.1.0}/mypy.ini +0 -0
  152. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/__init__.py +0 -0
  153. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/auths.py +0 -0
  154. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/checks.py +0 -0
  155. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/__init__.py +0 -0
  156. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/__main__.py +0 -0
  157. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/__init__.py +0 -0
  158. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/data.py +0 -0
  159. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/context.py +0 -0
  160. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/events.py +0 -0
  161. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/executor.py +0 -0
  162. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/filters.py +0 -0
  163. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/handlers/__init__.py +0 -0
  164. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/handlers/base.py +0 -0
  165. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/handlers/junitxml.py +0 -0
  166. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/loaders.py +0 -0
  167. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/commands/run/validation.py +0 -0
  168. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/constants.py +0 -0
  169. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/core.py +0 -0
  170. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/ext/__init__.py +0 -0
  171. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/ext/fs.py +0 -0
  172. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/ext/groups.py +0 -0
  173. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/cli/ext/options.py +0 -0
  174. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/__init__.py +0 -0
  175. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_auth.py +0 -0
  176. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_checks.py +0 -0
  177. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_diff_base.py +0 -0
  178. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_env.py +0 -0
  179. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_error.py +0 -0
  180. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_generation.py +0 -0
  181. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_health_check.py +0 -0
  182. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_output.py +0 -0
  183. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_parameters.py +0 -0
  184. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_rate_limit.py +0 -0
  185. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_report.py +0 -0
  186. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_validator.py +0 -0
  187. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/config/_warnings.py +0 -0
  188. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/__init__.py +0 -0
  189. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/compat.py +0 -0
  190. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/control.py +0 -0
  191. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/curl.py +0 -0
  192. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/deserialization.py +0 -0
  193. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/errors.py +0 -0
  194. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/failures.py +0 -0
  195. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/fs.py +0 -0
  196. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/hooks.py +0 -0
  197. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/lazy_import.py +0 -0
  198. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/loaders.py +0 -0
  199. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/marks.py +0 -0
  200. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/media_types.py +0 -0
  201. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/output/__init__.py +0 -0
  202. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/output/sanitization.py +0 -0
  203. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/rate_limit.py +0 -0
  204. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/registries.py +0 -0
  205. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/result.py +0 -0
  206. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/transforms.py +0 -0
  207. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/transport.py +0 -0
  208. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/validation.py +0 -0
  209. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/core/version.py +0 -0
  210. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/__init__.py +0 -0
  211. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/control.py +0 -0
  212. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/errors.py +0 -0
  213. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/stateful/__init__.py +0 -0
  214. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/stateful/_executor.py +0 -0
  215. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/stateful/context.py +0 -0
  216. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/unit/_executor.py +0 -0
  217. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/phases/unit/_pool.py +0 -0
  218. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/engine/recorder.py +0 -0
  219. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/errors.py +0 -0
  220. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/filters.py +0 -0
  221. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/__init__.py +0 -0
  222. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/hypothesis/__init__.py +0 -0
  223. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/hypothesis/builder.py +0 -0
  224. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/hypothesis/examples.py +0 -0
  225. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/hypothesis/given.py +0 -0
  226. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/hypothesis/reporting.py +0 -0
  227. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/hypothesis/strategies.py +0 -0
  228. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/meta.py +0 -0
  229. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/metrics.py +0 -0
  230. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/modes.py +0 -0
  231. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/overrides.py +0 -0
  232. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/stateful/__init__.py +0 -0
  233. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/generation/stateful/state_machine.py +0 -0
  234. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/graphql/__init__.py +0 -0
  235. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/graphql/checks.py +0 -0
  236. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/graphql/loaders.py +0 -0
  237. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/openapi/__init__.py +0 -0
  238. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/openapi/checks.py +0 -0
  239. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/openapi/generation/__init__.py +0 -0
  240. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/openapi/generation/filters.py +0 -0
  241. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/py.typed +0 -0
  242. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/pytest/__init__.py +0 -0
  243. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/pytest/control_flow.py +0 -0
  244. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/pytest/lazy.py +0 -0
  245. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/pytest/loaders.py +0 -0
  246. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/pytest/plugin.py +0 -0
  247. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/python/__init__.py +0 -0
  248. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/python/asgi.py +0 -0
  249. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/python/wsgi.py +0 -0
  250. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/schemas.py +0 -0
  251. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/__init__.py +0 -0
  252. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/graphql/__init__.py +0 -0
  253. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/graphql/nodes.py +0 -0
  254. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/graphql/scalars.py +0 -0
  255. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/graphql/schemas.py +0 -0
  256. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/graphql/validation.py +0 -0
  257. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/__init__.py +0 -0
  258. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/checks.py +0 -0
  259. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/constants.py +0 -0
  260. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/converter.py +0 -0
  261. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/definitions.py +0 -0
  262. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/examples.py +0 -0
  263. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
  264. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
  265. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
  266. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
  267. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
  268. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
  269. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/media_types.py +0 -0
  270. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
  271. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
  272. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/negative/types.py +0 -0
  273. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
  274. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/parameters.py +0 -0
  275. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/patterns.py +0 -0
  276. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/references.py +0 -0
  277. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/security.py +0 -0
  278. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/serialization.py +0 -0
  279. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
  280. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/stateful/control.py +0 -0
  281. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/stateful/links.py +0 -0
  282. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/specs/openapi/utils.py +0 -0
  283. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/transport/__init__.py +0 -0
  284. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/transport/asgi.py +0 -0
  285. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/transport/prepare.py +0 -0
  286. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/transport/serialization.py +0 -0
  287. {schemathesis-4.0.26 → schemathesis-4.1.0}/src/schemathesis/transport/wsgi.py +0 -0
  288. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__init__.py +0 -0
  289. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
  290. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
  291. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
  292. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
  293. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
  294. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_all_not_found[default].raw +0 -0
  295. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_all_not_found[disabled-all].raw +0 -0
  296. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_all_not_found[disabled-operation].raw +0 -0
  297. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_all_not_found[selected].raw +0 -0
  298. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_many_operations.raw +0 -0
  299. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_no_2xx.raw +0 -0
  300. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_no_2xx_options_only.raw +0 -0
  301. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/__snapshots__/test_warnings/test_warning_on_unauthorized.raw +0 -0
  302. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/_pytest/__init__.py +0 -0
  303. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/_pytest/test_markers.py +0 -0
  304. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/__init__.py +0 -0
  305. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/_graphql/__init__.py +0 -0
  306. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/_graphql/_fastapi/__init__.py +0 -0
  307. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/_graphql/_fastapi/app.py +0 -0
  308. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/_graphql/_flask/__init__.py +0 -0
  309. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/_graphql/_flask/app.py +0 -0
  310. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/_graphql/schema.py +0 -0
  311. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/cp1252_app.py +0 -0
  312. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/hooks.py +0 -0
  313. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/__init__.py +0 -0
  314. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_aiohttp/__init__.py +0 -0
  315. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_aiohttp/app.py +0 -0
  316. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_aiohttp/handlers.py +0 -0
  317. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_fastapi/__init__.py +0 -0
  318. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_fastapi/app.py +0 -0
  319. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_flask/__init__.py +0 -0
  320. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/_flask/app.py +0 -0
  321. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/apps/openapi/schema.py +0 -0
  322. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__init__.py +0 -0
  323. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
  324. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
  325. {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
  326. {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
  327. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
  328. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
  329. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
  330. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/conftest.py +0 -0
  331. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/test_cli.py +0 -0
  332. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/test_provider.py +0 -0
  333. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/auth/test_pytest.py +0 -0
  334. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__init__.py +0 -0
  335. {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
  336. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 2.0].raw +0 -0
  337. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 3.0].raw +0 -0
  338. {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
  339. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_format_parameter_csv_response.raw +0 -0
  340. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_negative_data_rejection_displays_all_cases.raw +0 -0
  341. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_not_a_server_error.raw +0 -0
  342. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[None].raw +0 -0
  343. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses10].raw +0 -0
  344. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses1].raw +0 -0
  345. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses2].raw +0 -0
  346. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses3].raw +0 -0
  347. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses4].raw +0 -0
  348. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses5].raw +0 -0
  349. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses6].raw +0 -0
  350. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses7].raw +0 -0
  351. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses8].raw +0 -0
  352. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[expected_statuses9].raw +0 -0
  353. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_app_crash.raw +0 -0
  354. {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
  355. {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
  356. {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
  357. {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
  358. {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
  359. {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
  360. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
  361. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
  362. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
  363. {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
  364. {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
  365. {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
  366. {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
  367. {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
  368. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
  369. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
  370. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
  371. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
  372. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
  373. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
  374. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
  375. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
  376. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
  377. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
  378. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +0 -0
  379. {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
  380. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
  381. /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
  382. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_exit_first[Open API 3.0].raw +0 -0
  383. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
  384. {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
  385. {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
  386. {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
  387. {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
  388. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_filter_case_sensitivity[Open API 3.0].raw +0 -0
  389. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
  390. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
  391. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
  392. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
  393. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
  394. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
  395. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
  396. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
  397. {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
  398. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
  399. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 2.0-1].raw +0 -0
  400. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 3.0-1].raw +0 -0
  401. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_response_definition.raw +0 -0
  402. {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
  403. {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
  404. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_tls_verify[Open API 3.0].raw +0 -0
  405. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
  406. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 2.0-1].raw +0 -0
  407. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 3.0-1].raw +0 -0
  408. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_during_schema_loading.raw +0 -0
  409. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 2.0].raw +0 -0
  410. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 3.0].raw +0 -0
  411. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_long_operation_output.raw +0 -0
  412. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
  413. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[Open API 3.0].raw +0 -0
  414. {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
  415. {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
  416. {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
  417. {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
  418. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie].raw +0 -0
  419. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header].raw +0 -0
  420. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path].raw +0 -0
  421. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query].raw +0 -0
  422. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
  423. {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
  424. {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
  425. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
  426. {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
  427. {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
  428. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
  429. {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
  430. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
  431. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
  432. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_partial_response.raw +0 -0
  433. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
  434. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
  435. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
  436. {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
  437. {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
  438. {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
  439. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
  440. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
  441. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
  442. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_required_as_boolean[in-required-False].raw +0 -0
  443. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_required_as_boolean[in-required-True].raw +0 -0
  444. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_required_as_boolean[no-required-False].raw +0 -0
  445. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_required_as_boolean[no-required-True].raw +0 -0
  446. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_required_as_boolean[not-in-required-False].raw +0 -0
  447. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_required_as_boolean[not-in-required-True].raw +0 -0
  448. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_reserved_characters_in_operation_name.raw +0 -0
  449. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 2.0].raw +0 -0
  450. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 3.0].raw +0 -0
  451. {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
  452. {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
  453. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
  454. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
  455. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
  456. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
  457. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
  458. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
  459. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
  460. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
  461. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
  462. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
  463. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
  464. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
  465. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
  466. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
  467. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
  468. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
  469. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
  470. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
  471. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
  472. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
  473. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
  474. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
  475. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
  476. {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
  477. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_skipped_on_no_explicit_examples.raw +0 -0
  478. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_stateful_crash.raw +0 -0
  479. {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
  480. {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
  481. {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
  482. {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
  483. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
  484. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
  485. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-1].raw +0 -0
  486. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-2].raw +0 -0
  487. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-1].raw +0 -0
  488. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-2].raw +0 -0
  489. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
  490. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
  491. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
  492. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/__snapshots__/test_hooks/test_after_call[Open API 3.0].raw +0 -0
  493. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/cert.pem +0 -0
  494. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_cassettes.py +0 -0
  495. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_checks.py +0 -0
  496. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_crashes.py +0 -0
  497. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_junitxml.py +0 -0
  498. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_options.py +0 -0
  499. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_targeted.py +0 -0
  500. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/cli/test_validation.py +0 -0
  501. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/code_samples/test_curl.py +0 -0
  502. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__init__.py +0 -0
  503. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[null_byte].raw +0 -0
  504. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[operation_duplicate_filter].raw +0 -0
  505. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[operation_invalid_expression].raw +0 -0
  506. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[operation_invalid_regex].raw +0 -0
  507. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[operation_missing_includes].raw +0 -0
  508. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_incorrect_config[syntactic_error].raw +0 -0
  509. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_cli/test_non_existing_file.raw +0 -0
  510. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.generation-mode-negative].raw +0 -0
  511. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-auth-basic-non-latin1].raw +0 -0
  512. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-auth-basic].raw +0 -0
  513. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-headers].raw +0 -0
  514. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-health-check-close-match].raw +0 -0
  515. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-health-check].raw +0 -0
  516. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-placeholder].raw +0 -0
  517. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-project].raw +0 -0
  518. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-rate-limit].raw +0 -0
  519. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-request-timeout-negative].raw +0 -0
  520. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-request-timeout].raw +0 -0
  521. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-tls-verify].raw +0 -0
  522. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.incorrect-workers].raw +0 -0
  523. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.root].raw +0 -0
  524. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.warnings-off].raw +0 -0
  525. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.warnings-on].raw +0 -0
  526. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[common.warnings-selection].raw +0 -0
  527. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[operations.basic].raw +0 -0
  528. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[operations.complex_many].raw +0 -0
  529. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[operations.missing_config_options].raw +0 -0
  530. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[operations.warnings-off].raw +0 -0
  531. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[operations.warnings-on].raw +0 -0
  532. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[parameters.basic].raw +0 -0
  533. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[parameters.mixed].raw +0 -0
  534. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[parameters.with_locations].raw +0 -0
  535. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.all_enabled].raw +0 -0
  536. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.incorrect_section_type].raw +0 -0
  537. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.incorrect_types].raw +0 -0
  538. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.incorrect_types_in_vcr].raw +0 -0
  539. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.invalid_format_names].raw +0 -0
  540. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.one_enabled].raw +0 -0
  541. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.unknown_keyword_vcr].raw +0 -0
  542. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.unknown_keywords].raw +0 -0
  543. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.with_env_var].raw +0 -0
  544. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.with_env_var_in_path].raw +0 -0
  545. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_config/test_configs[report.with_env_var_missing].raw +0 -0
  546. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[auth_basic_username_username0].raw +0 -0
  547. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[auth_basic_username_username1].raw +0 -0
  548. {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
  549. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[base_url_https_environment_ap].raw +0 -0
  550. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[checks_disable_globally_conte].raw +0 -0
  551. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[checks_enabled_false_only_che].raw +0 -0
  552. {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
  553. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[checks_positive_data_acceptan].raw +0 -0
  554. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[checks_response_schema_confor].raw +0 -0
  555. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[client_certificate_with_bundl].raw +0 -0
  556. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[color_false].raw +0 -0
  557. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[continue_on_failure_true].raw +0 -0
  558. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[default_auth_for_most_operati].raw +0 -0
  559. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[default_fast_testing_generati].raw +0 -0
  560. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[default_timeout_request_timeo].raw +0 -0
  561. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[disable_all_warnings_warnings].raw +0 -0
  562. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[enable_specific_warnings_only].raw +0 -0
  563. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_allow_x00_false].raw +0 -0
  564. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_codec_ascii].raw +0 -0
  565. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_database_memory].raw +0 -0
  566. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_database_schemathe].raw +0 -0
  567. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_deterministic_true].raw +0 -0
  568. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_exclude_header_cha].raw +0 -0
  569. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_graphql_allow_null].raw +0 -0
  570. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_max_examples_1000].raw +0 -0
  571. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_max_examples_200].raw +0 -0
  572. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_max_examples_50].raw +0 -0
  573. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_maximize_response].raw +0 -0
  574. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_mode_negative].raw +0 -0
  575. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_no_shrink_true].raw +0 -0
  576. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_unique_inputs_true].raw +0 -0
  577. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[generation_with_security_para].raw +0 -0
  578. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[global_defaults_generation_ma].raw +0 -0
  579. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[global_hooks_for_all_projects].raw +0 -0
  580. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[global_parameters_parameters].raw +0 -0
  581. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[headers_authorization_bearer].raw +0 -0
  582. {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
  583. {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
  584. {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
  585. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[max_failures_42].raw +0 -0
  586. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[operations_by_exact_path_incl].raw +0 -0
  587. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[operations_include_name_post].raw +0 -0
  588. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[operations_include_path_billi].raw +0 -0
  589. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[operations_without_operationi].raw +0 -0
  590. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[optionally_under_a_named_proj].raw +0 -0
  591. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_sanitization_enabled_f].raw +0 -0
  592. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_sanitization_keys_to_s].raw +0 -0
  593. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_sanitization_replaceme].raw +0 -0
  594. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_sanitization_sensitive].raw +0 -0
  595. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_truncation_enabled_fal].raw +0 -0
  596. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_truncation_max_lines_2].raw +0 -0
  597. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_truncation_max_payload].raw +0 -0
  598. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[output_truncation_max_width_1].raw +0 -0
  599. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_coverage_checks_not_a].raw +0 -0
  600. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_coverage_enabled_false].raw +0 -0
  601. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_coverage_generate_dupl].raw +0 -0
  602. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_coverage_unexpected_me].raw +0 -0
  603. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_examples_fill_missing].raw +0 -0
  604. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_skip_stateful_testing].raw +0 -0
  605. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[phases_stateful_max_steps_50].raw +0 -0
  606. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[proxy_http_localhost_8080].raw +0 -0
  607. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[proxy_https_username_password].raw +0 -0
  608. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[rate_limit_1000_h].raw +0 -0
  609. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[rate_limit_100_m].raw +0 -0
  610. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[rate_limit_5_s].raw +0 -0
  611. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[reports_directory_test_result].raw +0 -0
  612. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[reports_junit_enabled_true].raw +0 -0
  613. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[reports_junit_path_test_repor].raw +0 -0
  614. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[reports_preserve_bytes_true].raw +0 -0
  615. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[request_timeout_0_5].raw +0 -0
  616. {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
  617. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[request_timeout_5_0].raw +0 -0
  618. {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
  619. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[seed_42].raw +0 -0
  620. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[set_certificate_and_separate].raw +0 -0
  621. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[suppress_health_check_too_slo].raw +0 -0
  622. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[tls_verify_false].raw +0 -0
  623. {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
  624. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[wait_for_schema_5_0].raw +0 -0
  625. {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
  626. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_doc_examples/test_configs[workers_auto_allocate_workers].raw +0 -0
  627. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_multi_project/test_disable_operations[Open API 3.0].raw +0 -0
  628. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_multi_project/test_disable_phases[Open API 3.0].raw +0 -0
  629. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/__snapshots__/test_phase_config/test_phase_configuration[Open API 3.0].raw +0 -0
  630. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/generation-mode-negative.toml +0 -0
  631. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-auth-basic-non-latin1.toml +0 -0
  632. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-auth-basic.toml +0 -0
  633. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-headers.toml +0 -0
  634. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-health-check-close-match.toml +0 -0
  635. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-health-check.toml +0 -0
  636. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-placeholder.toml +0 -0
  637. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-project.toml +0 -0
  638. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-rate-limit.toml +0 -0
  639. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-request-timeout-negative.toml +0 -0
  640. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-request-timeout.toml +0 -0
  641. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-tls-verify.toml +0 -0
  642. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/incorrect-workers.toml +0 -0
  643. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/root.toml +0 -0
  644. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/warnings-off.toml +0 -0
  645. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/warnings-on.toml +0 -0
  646. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/common/warnings-selection.toml +0 -0
  647. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/operations/basic.toml +0 -0
  648. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/operations/complex_many.toml +0 -0
  649. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/operations/missing_config_options.toml +0 -0
  650. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/operations/warnings-off.toml +0 -0
  651. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/operations/warnings-on.toml +0 -0
  652. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/parameters/basic.toml +0 -0
  653. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/parameters/mixed.toml +0 -0
  654. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/parameters/with_locations.toml +0 -0
  655. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/all_enabled.toml +0 -0
  656. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/incorrect_section_type.toml +0 -0
  657. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/incorrect_types.toml +0 -0
  658. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/incorrect_types_in_vcr.toml +0 -0
  659. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/invalid_format_names.toml +0 -0
  660. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/one_enabled.toml +0 -0
  661. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/unknown_keyword_vcr.toml +0 -0
  662. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/unknown_keywords.toml +0 -0
  663. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/with_env_var.toml +0 -0
  664. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/with_env_var_in_path.toml +0 -0
  665. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/configs/report/with_env_var_missing.toml +0 -0
  666. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/conftest.py +0 -0
  667. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/hooks/__init__.py +0 -0
  668. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/hooks/error.py +0 -0
  669. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/hooks/example.py +0 -0
  670. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/hooks/hello.py +0 -0
  671. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_cli.py +0 -0
  672. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_config.py +0 -0
  673. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_discovery.py +0 -0
  674. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_doc_examples.py +0 -0
  675. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_hierarchy.py +0 -0
  676. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_hooks.py +0 -0
  677. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_merging.py +0 -0
  678. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_multi_project.py +0 -0
  679. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/config/test_status_code_validation.py +0 -0
  680. /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
  681. /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
  682. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +0 -0
  683. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +0 -0
  684. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
  685. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
  686. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/core/__init__.py +0 -0
  687. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/core/test_deserialization.py +0 -0
  688. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/core/test_media_types.py +0 -0
  689. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__init__.py +0 -0
  690. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__snapshots__/test_phase/test_missing_authorization.raw +0 -0
  691. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__snapshots__/test_phase/test_negative_data_rejection.raw +0 -0
  692. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__snapshots__/test_phase/test_underspecified_path_parameters[schema0].raw +0 -0
  693. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__snapshots__/test_phase/test_underspecified_path_parameters[schema1].raw +0 -0
  694. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__snapshots__/test_phase/test_unnecessary_auth_warning.raw +0 -0
  695. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/__snapshots__/test_phase/test_unspecified_http_methods.raw +0 -0
  696. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/test_combinations.py +0 -0
  697. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/test_examples.py +0 -0
  698. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/coverage/test_phase.py +0 -0
  699. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/petstore_v2.yaml +0 -0
  700. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/petstore_v3.yaml +0 -0
  701. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/relative_files/components/parameters.yaml +0 -0
  702. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/relative_files/components/responses.yaml +0 -0
  703. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/relative_files/components/schemas.yaml +0 -0
  704. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/relative_files/main.yaml +0 -0
  705. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/relative_files/paths/user-account.yaml +0 -0
  706. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/simple_openapi.yaml +0 -0
  707. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/data/simple_swagger.yaml +0 -0
  708. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/engine/__init__.py +0 -0
  709. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/engine/__snapshots__/test_probes/test_ctrl_c.raw +0 -0
  710. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/engine/test_checks.py +0 -0
  711. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/engine/test_errors.py +0 -0
  712. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/engine/test_probes.py +0 -0
  713. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/filters/__init__.py +0 -0
  714. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/filters/test_cli.py +0 -0
  715. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/filters/test_expressions.py +0 -0
  716. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/filters/test_matching.py +0 -0
  717. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/fixtures/__init__.py +0 -0
  718. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/fixtures/app_runner.py +0 -0
  719. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/fixtures/ctx.py +0 -0
  720. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/hooks/test_filters.py +0 -0
  721. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/hooks/test_hooks.py +0 -0
  722. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/loaders/conftest.py +0 -0
  723. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/loaders/test_common.py +0 -0
  724. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/loaders/test_graphql.py +0 -0
  725. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/openapi/__init__.py +0 -0
  726. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/openapi/test_filters.py +0 -0
  727. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/python/__init__.py +0 -0
  728. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/python/test_case.py +0 -0
  729. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/python/test_models.py +0 -0
  730. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
  731. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
  732. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
  733. {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
  734. {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
  735. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
  736. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/test_basic.py +0 -0
  737. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/test_custom_scalars.py +0 -0
  738. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/graphql/test_pytest.py +0 -0
  739. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[basic-post].raw +0 -0
  740. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[success-get].raw +0 -0
  741. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[basic-Authorization-406].raw +0 -0
  742. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-Authorization-200].raw +0 -0
  743. {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
  744. {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
  745. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_examples/test_config_override_with_examples.raw +0 -0
  746. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
  747. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
  748. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_examples/test_path_parameters_example_escaping.raw +0 -0
  749. {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
  750. {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
  751. {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
  752. {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
  753. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/__snapshots__/test_patterns/test_response_schema_is_not_mutated.raw +0 -0
  754. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/blank.pdf +0 -0
  755. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/conftest.py +0 -0
  756. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/parameters/test_forms.py +0 -0
  757. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/parameters/test_non_payload.py +0 -0
  758. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
  759. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__init__.py +0 -0
  760. {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
  761. {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
  762. {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
  763. {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
  764. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_invalid_parameter_reference.raw +0 -0
  765. {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
  766. {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
  767. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_missing_body_parameter.raw +0 -0
  768. {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
  769. {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
  770. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_non_json_response[].raw +0 -0
  771. {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
  772. {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
  773. {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
  774. {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
  775. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/__snapshots__/test_cli/test_unique_inputs.raw +0 -0
  776. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/conftest.py +0 -0
  777. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/test_cli.py +0 -0
  778. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/test_engine.py +0 -0
  779. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/stateful/test_stateful.py +0 -0
  780. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_checks.py +0 -0
  781. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_examples.py +0 -0
  782. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_expressions.py +0 -0
  783. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_hypothesis.py +0 -0
  784. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_media_types.py +0 -0
  785. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_negative.py +0 -0
  786. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_parameters.py +0 -0
  787. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_patterns.py +0 -0
  788. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_randomized.py +0 -0
  789. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_schemas.py +0 -0
  790. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_security.py +0 -0
  791. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_serializing.py +0 -0
  792. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/specs/openapi/test_utils.py +0 -0
  793. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_app.py +0 -0
  794. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_asgi.py +0 -0
  795. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_async.py +0 -0
  796. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_common_parameters.py +0 -0
  797. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_converter.py +0 -0
  798. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_direct_access.py +0 -0
  799. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_examples.py +0 -0
  800. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_filters.py +0 -0
  801. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_hypothesis.py +0 -0
  802. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_lazy.py +0 -0
  803. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_output.py +0 -0
  804. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_package.py +0 -0
  805. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_parametrization.py +0 -0
  806. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_petstore.py +0 -0
  807. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_pytest.py +0 -0
  808. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_rate_limit.py +0 -0
  809. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_recoverable_errors.py +0 -0
  810. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_required.py +0 -0
  811. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_sanitizing_output.py +0 -0
  812. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_serialization.py +0 -0
  813. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_stateful.py +0 -0
  814. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_unittest.py +0 -0
  815. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_warnings.py +0 -0
  816. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/test_wsgi.py +0 -0
  817. {schemathesis-4.0.26 → schemathesis-4.1.0}/test/utils.py +0 -0
  818. {schemathesis-4.0.26 → schemathesis-4.1.0}/test-corpus/conftest.py +0 -0
  819. {schemathesis-4.0.26 → schemathesis-4.1.0}/test-corpus/test_corpus.py +0 -0
  820. {schemathesis-4.0.26 → schemathesis-4.1.0}/test_server.sh +0 -0
  821. {schemathesis-4.0.26 → schemathesis-4.1.0}/tox.ini +0 -0
  822. {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.8
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.8
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.26...HEAD) - TBD
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.26
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.0
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, **kwargs):
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, **kwargs) -> None` | Before HTTP request | Modify test case (headers, body, etc.) |
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` → `process_call_kwargs` → HTTP Request → `after_call` → Checks
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.26"
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.0,<1.0",
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,
@@ -454,6 +454,7 @@ def har_writer(path: Path, config: SchemathesisConfig, queue: Queue) -> None:
454
454
  )
455
455
  elif isinstance(item, Finalize):
456
456
  break
457
+ har.flush()
457
458
 
458
459
 
459
460
  HARFILE_NO_RESPONSE = harfile.Response(
@@ -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__(self, *, console: Console, title: str, links_selected: int, links_total: int) -> None:
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.progress_task_id = self.progress_bar.add_task(
690
- "", scenarios=0, links=f"0 covered / {self.links_selected} selected / {self.links_total} total links"
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.progress_bar.update(
724
- self.progress_task_id,
725
- scenarios=self.scenarios,
726
- links=f"{len(self.links_covered)} covered / {self.links_selected} selected / {self.links_total} total links",
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=self.statistic.links.selected,
913
- links_total=self.statistic.links.total,
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
- table.add_row(
994
- "API Links:",
995
- f"{len(self.stateful_tests_manager.links_covered)} covered / {self.stateful_tests_manager.links_selected} selected / {self.stateful_tests_manager.links_total} total",
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)