schemathesis 4.0.0a8__tar.gz → 4.0.0a9__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 (605) hide show
  1. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/build.yml +1 -1
  2. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/codeql-analysis.yml +3 -3
  3. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.pre-commit-config.yaml +2 -2
  4. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/CHANGELOG.md +19 -1
  5. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/PKG-INFO +1 -1
  6. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/reference/configuration.md +137 -25
  7. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/using/configuration.md +13 -11
  8. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/pyproject.toml +1 -1
  9. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/coverage.py +110 -43
  10. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/hypothesis/builder.py +7 -2
  11. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/patterns.py +40 -9
  12. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/schemas.py +5 -1
  13. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/coverage/test_combinations.py +366 -3
  14. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/coverage/test_phase.py +99 -0
  15. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/fixtures/ctx.py +11 -5
  16. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/test_engine.py +3 -1
  17. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_patterns.py +13 -0
  18. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_petstore.py +3 -3
  19. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_serialization.py +30 -0
  20. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.dockerignore +0 -0
  21. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/FUNDING.yml +0 -0
  22. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  23. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  24. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  25. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/dependabot.yml +0 -0
  26. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/codspeed.yml +0 -0
  27. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/commit.yml +0 -0
  28. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/docs.yml +0 -0
  29. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/example-build.yml +0 -0
  30. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/example-no-build.yml +0 -0
  31. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/master_update.yml +0 -0
  32. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/release.yml +0 -0
  33. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/test-corpus.yml +0 -0
  34. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/test-hypothesis.yml +0 -0
  35. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.github/workflows/update-pre-commit.yml +0 -0
  36. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.gitignore +0 -0
  37. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.readthedocs.yml +0 -0
  38. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.rstcheck.cfg +0 -0
  39. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/.yamllint +0 -0
  40. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/ARCHITECTURE.md +0 -0
  41. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/CITATION.cff +0 -0
  42. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/CODE_OF_CONDUCT.md +0 -0
  43. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/CONTRIBUTING.rst +0 -0
  44. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/Dockerfile +0 -0
  45. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/Dockerfile.bookworm +0 -0
  46. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/LICENSE +0 -0
  47. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/README.md +0 -0
  48. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/SECURITY.md +0 -0
  49. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/benches/cli.py +0 -0
  50. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/benches/coverage_phase.py +0 -0
  51. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/benches/references.py +0 -0
  52. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/benches/schema.py +0 -0
  53. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/changelog.py +0 -0
  54. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/codecov.yml +0 -0
  55. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/corpus/data/graphql.tar.gz +0 -0
  56. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/corpus/data/openapi-3.0.tar.gz +0 -0
  57. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/corpus/data/openapi-3.1.tar.gz +0 -0
  58. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/corpus/data/swagger-2.0.tar.gz +0 -0
  59. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/corpus/tools.py +0 -0
  60. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/Makefile +0 -0
  61. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/advanced/targeted.md +0 -0
  62. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/api.rst +0 -0
  63. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/auth.rst +0 -0
  64. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/ci/github-actions.md +0 -0
  65. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/ci/gitlab-ci.md +0 -0
  66. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/ci/overview.md +0 -0
  67. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/conf.py +0 -0
  68. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/core-concepts.md +0 -0
  69. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/data-generation.rst +0 -0
  70. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending/auth.md +0 -0
  71. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending/checks.md +0 -0
  72. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending/data-generation.md +0 -0
  73. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending/hooks.md +0 -0
  74. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending/metrics.md +0 -0
  75. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending/overview.md +0 -0
  76. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/extending.rst +0 -0
  77. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/faq.md +0 -0
  78. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/faq.rst +0 -0
  79. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/getting-started.md +0 -0
  80. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/graphql.rst +0 -0
  81. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/index.md +0 -0
  82. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/openapi/examples.md +0 -0
  83. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/python.rst +0 -0
  84. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/recipes.rst +0 -0
  85. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/reference/checks.md +0 -0
  86. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/reference/cli.md +0 -0
  87. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/reference/python.md +0 -0
  88. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/reference/reporting.md +0 -0
  89. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/requirements.txt +0 -0
  90. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/resources.md +0 -0
  91. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/sanitizing.rst +0 -0
  92. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/stateful.rst +0 -0
  93. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/troubleshooting.md +0 -0
  94. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/using/cli.md +0 -0
  95. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/docs/using/python-integration.md +0 -0
  96. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/Dockerfile +0 -0
  97. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/README.md +0 -0
  98. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/app.py +0 -0
  99. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/compose.yml +0 -0
  100. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/openapi.json +0 -0
  101. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/requirements-app.in +0 -0
  102. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/requirements-app.txt +0 -0
  103. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/requirements-pytest.in +0 -0
  104. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/requirements-pytest.txt +0 -0
  105. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/tests/__init__.py +0 -0
  106. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/tests/conftest.py +0 -0
  107. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/tests/extensions.py +0 -0
  108. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/example/tests/test_app.py +0 -0
  109. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/img/demo.gif +0 -0
  110. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/mkdocs.yml +0 -0
  111. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/mypy.ini +0 -0
  112. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/__init__.py +0 -0
  113. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/auths.py +0 -0
  114. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/checks.py +0 -0
  115. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/__init__.py +0 -0
  116. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/__main__.py +0 -0
  117. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/__init__.py +0 -0
  118. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/__init__.py +0 -0
  119. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/checks.py +0 -0
  120. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/context.py +0 -0
  121. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/events.py +0 -0
  122. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/executor.py +0 -0
  123. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/filters.py +0 -0
  124. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/handlers/__init__.py +0 -0
  125. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/handlers/base.py +0 -0
  126. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/handlers/cassettes.py +0 -0
  127. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/handlers/junitxml.py +0 -0
  128. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/handlers/output.py +0 -0
  129. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/hypothesis.py +0 -0
  130. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/loaders.py +0 -0
  131. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/reports.py +0 -0
  132. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/commands/run/validation.py +0 -0
  133. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/constants.py +0 -0
  134. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/core.py +0 -0
  135. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/ext/__init__.py +0 -0
  136. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/ext/fs.py +0 -0
  137. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/ext/groups.py +0 -0
  138. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/ext/options.py +0 -0
  139. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/cli/hooks.py +0 -0
  140. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/contrib/__init__.py +0 -0
  141. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/contrib/openapi/__init__.py +0 -0
  142. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
  143. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/__init__.py +0 -0
  144. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/compat.py +0 -0
  145. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/control.py +0 -0
  146. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/curl.py +0 -0
  147. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/deserialization.py +0 -0
  148. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/errors.py +0 -0
  149. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/failures.py +0 -0
  150. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/fs.py +0 -0
  151. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/lazy_import.py +0 -0
  152. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/loaders.py +0 -0
  153. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/marks.py +0 -0
  154. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/media_types.py +0 -0
  155. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/output/__init__.py +0 -0
  156. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/output/sanitization.py +0 -0
  157. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/rate_limit.py +0 -0
  158. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/registries.py +0 -0
  159. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/result.py +0 -0
  160. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/transforms.py +0 -0
  161. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/transport.py +0 -0
  162. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/validation.py +0 -0
  163. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/core/version.py +0 -0
  164. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/__init__.py +0 -0
  165. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/config.py +0 -0
  166. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/context.py +0 -0
  167. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/control.py +0 -0
  168. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/core.py +0 -0
  169. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/errors.py +0 -0
  170. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/events.py +0 -0
  171. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/__init__.py +0 -0
  172. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/probes.py +0 -0
  173. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/stateful/__init__.py +0 -0
  174. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/stateful/_executor.py +0 -0
  175. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/stateful/context.py +0 -0
  176. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/unit/__init__.py +0 -0
  177. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/unit/_executor.py +0 -0
  178. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/phases/unit/_pool.py +0 -0
  179. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/engine/recorder.py +0 -0
  180. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/errors.py +0 -0
  181. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/experimental/__init__.py +0 -0
  182. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/filters.py +0 -0
  183. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/__init__.py +0 -0
  184. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/case.py +0 -0
  185. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/hypothesis/__init__.py +0 -0
  186. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/hypothesis/examples.py +0 -0
  187. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/hypothesis/given.py +0 -0
  188. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/hypothesis/reporting.py +0 -0
  189. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/hypothesis/strategies.py +0 -0
  190. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/meta.py +0 -0
  191. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/modes.py +0 -0
  192. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/overrides.py +0 -0
  193. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/stateful/__init__.py +0 -0
  194. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/stateful/state_machine.py +0 -0
  195. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/generation/targets.py +0 -0
  196. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/graphql/__init__.py +0 -0
  197. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/graphql/checks.py +0 -0
  198. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/graphql/loaders.py +0 -0
  199. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/hooks.py +0 -0
  200. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/openapi/__init__.py +0 -0
  201. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/openapi/checks.py +0 -0
  202. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/openapi/generation/__init__.py +0 -0
  203. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/openapi/generation/filters.py +0 -0
  204. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/openapi/loaders.py +0 -0
  205. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/py.typed +0 -0
  206. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/pytest/__init__.py +0 -0
  207. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/pytest/control_flow.py +0 -0
  208. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/pytest/lazy.py +0 -0
  209. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/pytest/loaders.py +0 -0
  210. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/pytest/plugin.py +0 -0
  211. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/python/__init__.py +0 -0
  212. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/python/asgi.py +0 -0
  213. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/python/wsgi.py +0 -0
  214. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/schemas.py +0 -0
  215. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/__init__.py +0 -0
  216. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/graphql/__init__.py +0 -0
  217. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/graphql/_cache.py +0 -0
  218. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/graphql/nodes.py +0 -0
  219. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/graphql/scalars.py +0 -0
  220. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/graphql/schemas.py +0 -0
  221. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/graphql/validation.py +0 -0
  222. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/__init__.py +0 -0
  223. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/_cache.py +0 -0
  224. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
  225. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/checks.py +0 -0
  226. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/constants.py +0 -0
  227. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/converter.py +0 -0
  228. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/definitions.py +0 -0
  229. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/examples.py +0 -0
  230. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
  231. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
  232. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
  233. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
  234. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
  235. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
  236. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/formats.py +0 -0
  237. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/media_types.py +0 -0
  238. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
  239. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
  240. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/negative/types.py +0 -0
  241. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
  242. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/parameters.py +0 -0
  243. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/references.py +0 -0
  244. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/security.py +0 -0
  245. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/serialization.py +0 -0
  246. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
  247. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/stateful/control.py +0 -0
  248. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/stateful/links.py +0 -0
  249. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/specs/openapi/utils.py +0 -0
  250. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/transport/__init__.py +0 -0
  251. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/transport/asgi.py +0 -0
  252. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/transport/prepare.py +0 -0
  253. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/transport/requests.py +0 -0
  254. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/transport/serialization.py +0 -0
  255. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/src/schemathesis/transport/wsgi.py +0 -0
  256. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__init__.py +0 -0
  257. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -0
  258. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
  259. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
  260. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
  261. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
  262. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
  263. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/_pytest/__init__.py +0 -0
  264. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/_pytest/test_markers.py +0 -0
  265. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/__init__.py +0 -0
  266. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/_graphql/__init__.py +0 -0
  267. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/_graphql/_fastapi/__init__.py +0 -0
  268. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/_graphql/_fastapi/app.py +0 -0
  269. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/_graphql/_flask/__init__.py +0 -0
  270. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/_graphql/_flask/app.py +0 -0
  271. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/_graphql/schema.py +0 -0
  272. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/cp1252_app.py +0 -0
  273. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/hooks.py +0 -0
  274. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/__init__.py +0 -0
  275. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_aiohttp/__init__.py +0 -0
  276. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_aiohttp/app.py +0 -0
  277. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_aiohttp/handlers.py +0 -0
  278. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_fastapi/__init__.py +0 -0
  279. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_fastapi/app.py +0 -0
  280. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_flask/__init__.py +0 -0
  281. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/_flask/app.py +0 -0
  282. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/apps/openapi/schema.py +0 -0
  283. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__init__.py +0 -0
  284. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
  285. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
  286. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
  287. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
  288. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
  289. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
  290. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
  291. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/conftest.py +0 -0
  292. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/test_cli.py +0 -0
  293. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/test_provider.py +0 -0
  294. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/auth/test_pytest.py +0 -0
  295. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__init__.py +0 -0
  296. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_bytes_without_cassette_path[Open API 3.0].raw +0 -0
  297. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 2.0].raw +0 -0
  298. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 3.0].raw +0 -0
  299. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_negative_data_rejection_displays_all_cases.raw +0 -0
  300. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args0].raw +0 -0
  301. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args10].raw +0 -0
  302. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args1].raw +0 -0
  303. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args2].raw +0 -0
  304. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args3].raw +0 -0
  305. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args4].raw +0 -0
  306. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args5].raw +0 -0
  307. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args6].raw +0 -0
  308. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args7].raw +0 -0
  309. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args8].raw +0 -0
  310. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args9].raw +0 -0
  311. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance_with_env_vars.raw +0 -0
  312. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
  313. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
  314. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
  315. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
  316. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
  317. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
  318. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
  319. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
  320. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
  321. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_cli_run_changed_base_url[Open API 3.0].raw +0 -0
  322. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 2.0-1].raw +0 -0
  323. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 2.0-2].raw +0 -0
  324. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 3.0-1].raw +0 -0
  325. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 3.0-2].raw +0 -0
  326. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
  327. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
  328. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
  329. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
  330. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
  331. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
  332. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
  333. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
  334. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
  335. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
  336. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +0 -0
  337. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_dont_skip_when_generation_is_possible[Open API 3.0].raw +0 -0
  338. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
  339. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_empty_schema_file.raw +0 -0
  340. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_exit_first[Open API 3.0].raw +0 -0
  341. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
  342. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
  343. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +0 -0
  344. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +0 -0
  345. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +0 -0
  346. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_filter_case_sensitivity[Open API 3.0].raw +0 -0
  347. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
  348. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
  349. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
  350. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
  351. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
  352. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
  353. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
  354. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
  355. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
  356. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
  357. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 2.0-1].raw +0 -0
  358. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 3.0-1].raw +0 -0
  359. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
  360. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
  361. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
  362. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 2.0-1].raw +0 -0
  363. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 3.0-1].raw +0 -0
  364. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_during_schema_loading.raw +0 -0
  365. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 2.0].raw +0 -0
  366. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 3.0].raw +0 -0
  367. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_long_operation_output.raw +0 -0
  368. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
  369. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[Open API 3.0].raw +0 -0
  370. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
  371. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
  372. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
  373. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
  374. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie].raw +0 -0
  375. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header].raw +0 -0
  376. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path].raw +0 -0
  377. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query].raw +0 -0
  378. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
  379. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
  380. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
  381. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
  382. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
  383. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
  384. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
  385. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
  386. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
  387. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
  388. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
  389. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
  390. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
  391. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
  392. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
  393. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
  394. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
  395. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
  396. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_reserved_characters_in_operation_name.raw +0 -0
  397. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 2.0].raw +0 -0
  398. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 3.0].raw +0 -0
  399. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[Open API 2.0].raw +0 -0
  400. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[Open API 3.0].raw +0 -0
  401. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
  402. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
  403. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
  404. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
  405. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
  406. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
  407. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
  408. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
  409. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
  410. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
  411. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
  412. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
  413. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
  414. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
  415. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
  416. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
  417. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +0 -0
  418. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
  419. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
  420. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
  421. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
  422. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
  423. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
  424. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
  425. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
  426. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
  427. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
  428. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
  429. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
  430. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
  431. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
  432. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
  433. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
  434. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_skip_not_negated_tests[Open API 3.0].raw +0 -0
  435. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_skipped_on_no_explicit_examples.raw +0 -0
  436. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 2.0-1].raw +0 -0
  437. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 2.0-2].raw +0 -0
  438. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 3.0-1].raw +0 -0
  439. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 3.0-2].raw +0 -0
  440. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
  441. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
  442. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-1].raw +0 -0
  443. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-2].raw +0 -0
  444. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-1].raw +0 -0
  445. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-2].raw +0 -0
  446. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
  447. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
  448. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
  449. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_warning_on_all_not_found.raw +0 -0
  450. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_warning_on_no_2xx.raw +0 -0
  451. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_warning_on_no_2xx_options_only.raw +0 -0
  452. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_commands/test_warning_on_unauthorized.raw +0 -0
  453. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/__snapshots__/test_hooks/test_after_call[Open API 3.0].raw +0 -0
  454. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/cert.pem +0 -0
  455. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_cassettes.py +0 -0
  456. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_checks.py +0 -0
  457. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_commands.py +0 -0
  458. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_crashes.py +0 -0
  459. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_hooks.py +0 -0
  460. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_junitxml.py +0 -0
  461. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_options.py +0 -0
  462. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_targeted.py +0 -0
  463. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/cli/test_validation.py +0 -0
  464. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/code_samples/test_curl.py +0 -0
  465. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/conftest.py +0 -0
  466. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
  467. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
  468. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
  469. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
  470. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +0 -0
  471. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
  472. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
  473. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +0 -0
  474. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
  475. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
  476. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/contrib/test_unique_data.py +0 -0
  477. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/core/__init__.py +0 -0
  478. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/core/test_deserialization.py +0 -0
  479. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/core/test_media_types.py +0 -0
  480. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/coverage/__init__.py +0 -0
  481. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/coverage/__snapshots__/test_phase/test_negative_data_rejection.raw +0 -0
  482. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/coverage/__snapshots__/test_phase/test_unspecified_http_methods.raw +0 -0
  483. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/coverage/test_examples.py +0 -0
  484. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/petstore_v2.yaml +0 -0
  485. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/petstore_v3.yaml +0 -0
  486. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/relative_files/components/parameters.yaml +0 -0
  487. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/relative_files/components/responses.yaml +0 -0
  488. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/relative_files/components/schemas.yaml +0 -0
  489. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/relative_files/main.yaml +0 -0
  490. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/relative_files/paths/user-account.yaml +0 -0
  491. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/simple_openapi.yaml +0 -0
  492. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/data/simple_swagger.yaml +0 -0
  493. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/engine/__init__.py +0 -0
  494. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/engine/test_checks.py +0 -0
  495. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/engine/test_engine.py +0 -0
  496. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/engine/test_errors.py +0 -0
  497. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/engine/test_probes.py +0 -0
  498. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/engine/test_simulation.py +0 -0
  499. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
  500. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/experimental/conftest.py +0 -0
  501. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/experimental/test_experiments.py +0 -0
  502. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/experimental/test_openapi_3_1.py +0 -0
  503. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/filters/__init__.py +0 -0
  504. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/filters/test_expressions.py +0 -0
  505. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/filters/test_matching.py +0 -0
  506. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/fixtures/__init__.py +0 -0
  507. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/fixtures/app_runner.py +0 -0
  508. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/hooks/test_filters.py +0 -0
  509. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/hooks/test_hooks.py +0 -0
  510. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/loaders/conftest.py +0 -0
  511. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/loaders/test_common.py +0 -0
  512. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/loaders/test_graphql.py +0 -0
  513. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/loaders/test_openapi.py +0 -0
  514. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/openapi/__init__.py +0 -0
  515. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/openapi/test_filters.py +0 -0
  516. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
  517. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
  518. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
  519. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
  520. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
  521. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
  522. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/test_basic.py +0 -0
  523. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/test_custom_scalars.py +0 -0
  524. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/graphql/test_pytest.py +0 -0
  525. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[basic-post].raw +0 -0
  526. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[success-get].raw +0 -0
  527. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[basic-Authorization-406].raw +0 -0
  528. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-Authorization-200].raw +0 -0
  529. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-200].raw +0 -0
  530. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-406].raw +0 -0
  531. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
  532. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
  533. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_ignored_auth/test_explicit_auth_cli[Open API 3.0].raw +0 -0
  534. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-False].raw +0 -0
  535. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-True].raw +0 -0
  536. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
  537. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/__snapshots__/test_patterns/test_response_schema_is_not_mutated.raw +0 -0
  538. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/blank.pdf +0 -0
  539. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/conftest.py +0 -0
  540. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/parameters/test_forms.py +0 -0
  541. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/parameters/test_non_payload.py +0 -0
  542. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
  543. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__init__.py +0 -0
  544. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_default[Open API 3.0-1].raw +0 -0
  545. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_default[Open API 3.0-2].raw +0 -0
  546. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_filtered_out[Open API 3.0].raw +0 -0
  547. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_generation_config[Open API 3.0].raw +0 -0
  548. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_invalid_parameter_reference.raw +0 -0
  549. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_keyboard_interrupt[Open API 3.0].raw +0 -0
  550. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_max_failures[Open API 3.0].raw +0 -0
  551. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_missing_body_parameter.raw +0 -0
  552. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_missing_link[Open API 3.0].raw +0 -0
  553. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_non_json_response[User data as plain text].raw +0 -0
  554. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_non_json_response[].raw +0 -0
  555. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_not_enough_links[Open API 3.0].raw +0 -0
  556. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_proxy_error[Open API 3.0].raw +0 -0
  557. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_stateful_only[Open API 3.0].raw +0 -0
  558. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/__snapshots__/test_cli/test_stateful_only_with_error[Open API 3.0].raw +0 -0
  559. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/conftest.py +0 -0
  560. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/test_cli.py +0 -0
  561. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/stateful/test_stateful.py +0 -0
  562. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_checks.py +0 -0
  563. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_examples.py +0 -0
  564. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_expressions.py +0 -0
  565. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_hypothesis.py +0 -0
  566. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_ignored_auth.py +0 -0
  567. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_media_types.py +0 -0
  568. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_negative.py +0 -0
  569. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_parameters.py +0 -0
  570. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_randomized.py +0 -0
  571. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_schemas.py +0 -0
  572. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_security.py +0 -0
  573. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_serializing.py +0 -0
  574. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/specs/openapi/test_utils.py +0 -0
  575. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_app.py +0 -0
  576. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_asgi.py +0 -0
  577. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_async.py +0 -0
  578. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_common_parameters.py +0 -0
  579. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_converter.py +0 -0
  580. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_dereferencing.py +0 -0
  581. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_direct_access.py +0 -0
  582. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_examples.py +0 -0
  583. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_filters.py +0 -0
  584. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_hypothesis.py +0 -0
  585. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_lazy.py +0 -0
  586. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_models.py +0 -0
  587. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_output.py +0 -0
  588. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_package.py +0 -0
  589. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_parameters.py +0 -0
  590. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_parametrization.py +0 -0
  591. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_pytest.py +0 -0
  592. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_rate_limit.py +0 -0
  593. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_recoverable_errors.py +0 -0
  594. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_required.py +0 -0
  595. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_sanitizing_output.py +0 -0
  596. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_schemas.py +0 -0
  597. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_stateful.py +0 -0
  598. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_unittest.py +0 -0
  599. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/test_wsgi.py +0 -0
  600. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test/utils.py +0 -0
  601. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test-corpus/conftest.py +0 -0
  602. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test-corpus/test_corpus.py +0 -0
  603. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/test_server.sh +0 -0
  604. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/tox.ini +0 -0
  605. {schemathesis-4.0.0a8 → schemathesis-4.0.0a9}/typos.toml +0 -0
@@ -64,7 +64,7 @@ jobs:
64
64
  run: uvx --with="tox" --with="tox-gh-actions" --with="tox-uv" tox
65
65
 
66
66
  - name: Upload coverage to Codecov
67
- uses: codecov/codecov-action@v5.4.0
67
+ uses: codecov/codecov-action@v5.4.2
68
68
  with:
69
69
  token: ${{ secrets.CODECOV_TOKEN }}
70
70
 
@@ -38,7 +38,7 @@ jobs:
38
38
 
39
39
  # Initializes the CodeQL tools for scanning.
40
40
  - name: Initialize CodeQL
41
- uses: github/codeql-action/init@v3.28.13
41
+ uses: github/codeql-action/init@v3.28.17
42
42
  with:
43
43
  languages: ${{ matrix.language }}
44
44
  # If you wish to specify custom queries, you can do so here or in a config file.
@@ -49,7 +49,7 @@ jobs:
49
49
  # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
50
50
  # If this step fails, then you should remove it and run the build manually (see below)
51
51
  - name: Autobuild
52
- uses: github/codeql-action/autobuild@v3.28.13
52
+ uses: github/codeql-action/autobuild@v3.28.17
53
53
 
54
54
  # ℹ️ Command-line programs to run using the OS shell.
55
55
  # 📚 https://git.io/JvXDl
@@ -63,4 +63,4 @@ jobs:
63
63
  # make release
64
64
 
65
65
  - name: Perform CodeQL Analysis
66
- uses: github/codeql-action/analyze@v3.28.13
66
+ uses: github/codeql-action/analyze@v3.28.17
@@ -32,12 +32,12 @@ repos:
32
32
  additional_dependencies: [types-requests, types-PyYAML]
33
33
 
34
34
  - repo: https://github.com/astral-sh/ruff-pre-commit
35
- rev: v0.11.2
35
+ rev: v0.11.8
36
36
  hooks:
37
37
  - id: ruff-format
38
38
 
39
39
  - repo: https://github.com/astral-sh/ruff-pre-commit
40
- rev: v0.11.2
40
+ rev: v0.11.8
41
41
  hooks:
42
42
  - id: ruff
43
43
 
@@ -1,6 +1,24 @@
1
1
  # Changelog
2
2
 
3
- ## [Unreleased](https://github.com/schemathesis/schemathesis/compare/v4.0.0-alpha.8...HEAD) - TBD
3
+ ## [Unreleased](https://github.com/schemathesis/schemathesis/compare/v4.0.0-alpha.9...HEAD) - TBD
4
+
5
+ ## [4.0.0-alpha.9](https://github.com/schemathesis/schemathesis/compare/v4.0.0-alpha.8...v4.0.0-alpha.9) - 2025-05-06
6
+
7
+
8
+ ### :wrench: Changed
9
+
10
+ - Support basic canonicalisation of regex patterns. For example, `[\\W\\w]` could be replaced with `.` in some scenarios.
11
+
12
+ ### :bug: Fixed
13
+
14
+ - Missing reference resolution scope when serializing `multipart` payloads. [#2776](https://github.com/schemathesis/schemathesis/issues/2776)
15
+ - Compatibility with hypothesis >= 6.131.4. [#2797](https://github.com/schemathesis/schemathesis/issues/2797)
16
+ - Cover more nested `enum` values during the coverage phase.
17
+ - Avoid extremely slow generation of large strings combined with `patterns` during the coverage phase.
18
+ - Generate objects during the coverage phase even if `"type": "object"` is not present.
19
+ - Generate empty strings in more cases during the coverage phase.
20
+ - Generate nested `items` during the coverage phase.
21
+ - Generate large arrays during the coverage phase.
4
22
 
5
23
  ## [4.0.0-alpha.8](https://github.com/schemathesis/schemathesis/compare/v4.0.0-alpha.7...v4.0.0-alpha.8) - 2025-04-05
6
24
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: schemathesis
3
- Version: 4.0.0a8
3
+ Version: 4.0.0a9
4
4
  Summary: Property-based testing framework for Open API and GraphQL based apps
5
5
  Project-URL: Documentation, https://schemathesis.readthedocs.io/en/stable/
6
6
  Project-URL: Changelog, https://schemathesis.readthedocs.io/en/stable/changelog.html
@@ -3,7 +3,7 @@
3
3
  This reference covers all the configuration options available in `schemathesis.toml`. The settings are organized into two main categories:
4
4
 
5
5
  - **Global**: These control CLI behavior, output formatting, and overall test execution. They are defined at the top level and affect the CLI invocation.
6
- - **Per-Project**: These let you customize configurations for individual API projects. If project-level settings are placed at the top level (without a `[project.<name>]` namespace), they are used as defaults for any tested project.
6
+ - **Per-Project**: These let you customize configurations for individual API projects. If project-level settings are placed at the top level (without a `[[project]]` namespace), they are used as defaults for any tested project.
7
7
 
8
8
  ## Configuration Resolution
9
9
 
@@ -13,7 +13,7 @@ Schemathesis applies settings in the following hierarchy (from highest to lowest
13
13
  2. Operation-specific phase settings
14
14
  3. Global phase settings (e.g., `[phases.fuzzing]`)
15
15
  4. Operation-level settings (e.g., `[[operations]]`)
16
- 5. Project-level settings (e.g., `[[projects]]`)
16
+ 5. Project-level settings (e.g., `[[project]]`)
17
17
  6. Global settings
18
18
 
19
19
  ## Environment Variable Substitution
@@ -93,6 +93,19 @@ parameters = { "path.user_id" = 42, "query.user_id" = 100 }
93
93
  suppress-health-check = ["too_slow", "data_too_large"]
94
94
  ```
95
95
 
96
+ #### `seed`
97
+
98
+ !!! note ""
99
+
100
+ **Type:** `Integer`
101
+ **Default:** `null`
102
+
103
+ Random seed for reproducible test runs. Setting the same seed value will result in the same sequence of generated test cases.
104
+
105
+ ```toml
106
+ seed = 42
107
+ ```
108
+
96
109
  #### `max-failures`
97
110
 
98
111
  !!! note ""
@@ -168,7 +181,7 @@ parameters = { "path.user_id" = 42, "query.user_id" = 100 }
168
181
 
169
182
  ### Output
170
183
 
171
- #### `output.sanitize`
184
+ #### `output.sanitization.enabled`
172
185
 
173
186
  !!! note ""
174
187
 
@@ -178,22 +191,106 @@ parameters = { "path.user_id" = 42, "query.user_id" = 100 }
178
191
  Controls automatic sanitization of output data to obscure sensitive information.
179
192
 
180
193
  ```toml
181
- [output]
182
- sanitize = false
194
+ [output.sanitization]
195
+ enabled = false
196
+ ```
197
+
198
+ #### `output.sanitization.keys-to-sanitize`
199
+
200
+ !!! note ""
201
+
202
+ **Type**: `List[String]`
203
+ **Default**: List of common sensitive keys (auth tokens, passwords, etc.)
204
+
205
+ Specific keys that will be automatically sanitized in output data.
206
+
207
+ ```toml
208
+ [output.sanitization]
209
+ keys-to-sanitize = ["password", "token", "auth"]
210
+ ```
211
+
212
+ #### `output.sanitization.sensitive-markers`
213
+
214
+ !!! note ""
215
+
216
+ **Type**: `List[String]`
217
+ **Default**: `["token", "key", "secret", "password", "auth", "session", "passwd", "credential"]`
218
+
219
+ Substrings that indicate a key might contain sensitive information requiring sanitization.
220
+
221
+ ```toml
222
+ [output.sanitization]
223
+ sensitive-markers = ["secret", "auth", "key"]
224
+ ```
225
+
226
+ #### `output.sanitization.replacement`
227
+
228
+ !!! note ""
229
+
230
+ **Type**: `String`
231
+ **Default**: `"[Filtered]"`
232
+
233
+ The text used to replace sensitive data in output.
234
+
235
+ ```toml
236
+ [output.sanitization]
237
+ replacement = "***REDACTED***"
183
238
  ```
184
239
 
185
- #### `output.truncate`
240
+ #### `output.truncation.enabled`
186
241
 
187
242
  !!! note ""
188
243
 
189
244
  **Type**: `Boolean`
190
245
  **Default**: `true`
191
246
 
192
- Truncates long output in error messages for improved readability.
247
+ Controls whether large output data should be truncated.
248
+
249
+ ```toml
250
+ [output.truncation]
251
+ enabled = false
252
+ ```
253
+
254
+ #### `output.truncation.max-payload-size`
255
+
256
+ !!! note ""
257
+
258
+ **Type**: `Integer`
259
+ **Default**: `512`
260
+
261
+ Maximum size in bytes for payloads before truncation occurs.
193
262
 
194
263
  ```toml
195
- [output]
196
- truncate = false
264
+ [output.truncation]
265
+ max-payload-size = 1024
266
+ ```
267
+
268
+ #### `output.truncation.max-lines`
269
+
270
+ !!! note ""
271
+
272
+ **Type**: `Integer`
273
+ **Default**: `10`
274
+
275
+ Maximum number of lines to display for multi-line output.
276
+
277
+ ```toml
278
+ [output.truncation]
279
+ max-lines = 20
280
+ ```
281
+
282
+ #### `output.truncation.max-width`
283
+
284
+ !!! note ""
285
+
286
+ **Type**: `Integer`
287
+ **Default**: `80`
288
+
289
+ Maximum width in characters for each line before horizontal truncation.
290
+
291
+ ```toml
292
+ [output.truncation]
293
+ max-width = 100
197
294
  ```
198
295
 
199
296
  ## Project Settings
@@ -211,7 +308,7 @@ These settings can only be applied at the project level.
211
308
 
212
309
  ```toml
213
310
  # Optionally under a named project
214
- # [[projects]]
311
+ # [[project]]
215
312
  base-url = "https://api.example.com"
216
313
  ```
217
314
 
@@ -229,7 +326,7 @@ These settings can only be applied at the project level.
229
326
  hooks = "myproject.tests.hooks"
230
327
 
231
328
  # Or project-specific hooks
232
- # [[projects]]
329
+ # [[project]]
233
330
  # hooks = "myproject.payments.hooks"
234
331
  ```
235
332
 
@@ -329,6 +426,20 @@ These settings can only be applied at the project level.
329
426
  unexpected-methods = ["PATCH"]
330
427
  ```
331
428
 
429
+ #### `phases.<phase>.checks`
430
+
431
+ !!! note ""
432
+
433
+ **Type**: `Object`
434
+ **Default**: `{}`
435
+
436
+ Phase-specific overrides for checks.
437
+
438
+ ```toml
439
+ [phases.coverage.checks]
440
+ not_a_server_error.enabled = false
441
+ ```
442
+
332
443
  ### Authentication
333
444
 
334
445
  #### `auth.basic`
@@ -625,20 +736,6 @@ The following settings control how Schemathesis generates test data for your API
625
736
  max-examples = 200
626
737
  ```
627
738
 
628
- #### `generation.seed`
629
-
630
- !!! note ""
631
-
632
- **Type:** `Integer`
633
- **Default:** `null`
634
-
635
- Random seed for reproducible test runs. Setting the same seed value will result in the same sequence of generated test cases.
636
-
637
- ```toml
638
- [generation]
639
- seed = 42
640
- ```
641
-
642
739
  #### `generation.no-shrink`
643
740
 
644
741
  !!! note ""
@@ -681,6 +778,21 @@ The following settings control how Schemathesis generates test data for your API
681
778
  allow-x00 = false
682
779
  ```
683
780
 
781
+
782
+ #### `generation.exclude-header-characters`
783
+
784
+ !!! note ""
785
+
786
+ **Type:** `String`
787
+ **Default:** `\r\n`
788
+
789
+ All characters from the given strings will be excluded from generated header values.
790
+
791
+ ```toml
792
+ [generation]
793
+ exclude-header-characters = "\r\nABC"
794
+ ```
795
+
684
796
  #### `generation.codec`
685
797
 
686
798
  !!! note ""
@@ -83,7 +83,7 @@ The basic setting corresponds to the `--auth` CLI option, while bearer tokens ca
83
83
 
84
84
  !!! tip "Operation-specific Authentication"
85
85
 
86
- You can also override auth on the [per-operation basic](#operation-specific-authentication).
86
+ You can also override auth on the [per-operation basis](#operation-specific-authentication).
87
87
 
88
88
  ### OpenAPI Security Schemes
89
89
 
@@ -443,6 +443,8 @@ request-timeout = 5.0
443
443
  phases.fuzzing.generation.max-examples = 200
444
444
  # Reduce examples for stateful tests
445
445
  phases.stateful.generation.max-examples = 30
446
+ # Disable a check for examples tests
447
+ phases.examples.checks.not_a_server_error.enabled = false
446
448
  ```
447
449
  ### Resolution Order for Phase-Operation Settings
448
450
 
@@ -540,10 +542,10 @@ Schemathesis lets you configure multiple API projects in one file—a handy feat
540
542
 
541
543
  ### Defining Projects
542
544
 
543
- Define projects in the `[[projects]]` section by matching the API's title:
545
+ Define projects in `[[project]]` tables by matching the API's title:
544
546
 
545
547
  ```toml
546
- [[projects]]
548
+ [[project]]
547
549
  # Projects are matched by the API schema's `info.title``
548
550
  title = "Payment Processing API"
549
551
  base-url = "https://payments.example.com"
@@ -556,14 +558,14 @@ Schemathesis checks the `info.title` field of the API schema to apply the corres
556
558
  Override global defaults with project-specific settings:
557
559
 
558
560
  ```toml
559
- [[projects]]
561
+ [[project]]
560
562
  title = "Payment Processing API"
561
563
  base-url = "https://payments.example.com"
562
564
  workers = 4
563
565
  generation.max-examples = 200
564
566
  hooks = "test.config.hooks.example"
565
567
 
566
- [[projects]]
568
+ [[project]]
567
569
  title = "User Management API"
568
570
  base-url = "https://users.example.com"
569
571
  workers = 2
@@ -574,15 +576,15 @@ workers = 2
574
576
  Customize operations within a project:
575
577
 
576
578
  ```toml
577
- [[projects]]
579
+ [[project]]
578
580
  title = "Payment Processing API"
579
581
 
580
- [[projects.operations]]
582
+ [[project.operations]]
581
583
  include-name = "POST /payments"
582
584
  generation.max-examples = 80
583
585
  headers = { "X-Idempotency-Key" = "${IDEMPOTENCY_KEY}" }
584
586
 
585
- [[projects.operations]]
587
+ [[project.operations]]
586
588
  include-tag = "slow"
587
589
  request-timeout = 10.0
588
590
  ```
@@ -603,20 +605,20 @@ When using projects, settings are applied in this order:
603
605
  generation.max-examples = 50
604
606
  workers = 2
605
607
 
606
- [[projects]]
608
+ [[project]]
607
609
  title = "Payment Processing API"
608
610
  base-url = "https://payments.example.com"
609
611
  generation.max-examples = 100
610
612
 
611
613
  # Operations for payments
612
- [[projects.operations]]
614
+ [[project.operations]]
613
615
  include-name = "POST /payments"
614
616
  generation.max-examples = 200
615
617
  parameters = { amount = [10, 100, 1000] }
616
618
  checks.positive_data_acceptance.expected-statuses = [200, 201]
617
619
 
618
620
  # Users project settings
619
- [[projects]]
621
+ [[project]]
620
622
  title = "User Management API"
621
623
  base-url = "https://users.example.com"
622
624
  ```
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "schemathesis"
7
- version = "4.0.0-alpha.8"
7
+ version = "4.0.0-alpha.9"
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" }]
@@ -37,6 +37,8 @@ def json_recursive_strategy(strategy: st.SearchStrategy) -> st.SearchStrategy:
37
37
 
38
38
 
39
39
  BUFFER_SIZE = 8 * 1024
40
+ NEGATIVE_MODE_MAX_LENGTH_WITH_PATTERN = 100
41
+ NEGATIVE_MODE_MAX_ITEMS = 15
40
42
  FLOAT_STRATEGY: st.SearchStrategy = st.floats(allow_nan=False, allow_infinity=False).map(_replace_zero_with_nonzero)
41
43
  NUMERIC_STRATEGY: st.SearchStrategy = st.integers() | FLOAT_STRATEGY
42
44
  JSON_STRATEGY: st.SearchStrategy = st.recursive(
@@ -257,6 +259,9 @@ def _cover_positive_for_type(
257
259
  if ty == "object" or ty == "array":
258
260
  template_schema = _get_template_schema(schema, ty)
259
261
  template = ctx.generate_from_schema(template_schema)
262
+ elif "properties" in schema or "required" in schema:
263
+ template_schema = _get_template_schema(schema, "object")
264
+ template = ctx.generate_from_schema(template_schema)
260
265
  else:
261
266
  template = None
262
267
  if GenerationMode.POSITIVE in ctx.generation_modes:
@@ -295,6 +300,8 @@ def _cover_positive_for_type(
295
300
  yield from _positive_array(ctx, schema, cast(list, template))
296
301
  elif ty == "object":
297
302
  yield from _positive_object(ctx, schema, cast(dict, template))
303
+ elif "properties" in schema or "required" in schema:
304
+ yield from _positive_object(ctx, schema, cast(dict, template))
298
305
 
299
306
 
300
307
  @contextmanager
@@ -387,41 +394,58 @@ def cover_schema_iter(
387
394
  yield value_
388
395
  seen.add(k)
389
396
  elif key == "minLength" and 0 < value < BUFFER_SIZE:
390
- with suppress(InvalidArgument):
391
- min_length = max_length = value - 1
392
- new_schema = {**schema, "minLength": min_length, "maxLength": max_length}
393
- new_schema.setdefault("type", "string")
394
- if "pattern" in new_schema:
395
- new_schema["pattern"] = update_quantifier(schema["pattern"], min_length, max_length)
396
- if new_schema["pattern"] == schema["pattern"]:
397
- # Pattern wasn't updated, try to generate a valid value then shrink the string to the required length
398
- del new_schema["minLength"]
399
- del new_schema["maxLength"]
400
- value = ctx.generate_from_schema(new_schema)[:max_length]
401
- else:
402
- value = ctx.generate_from_schema(new_schema)
403
- else:
404
- value = ctx.generate_from_schema(new_schema)
397
+ if value == 1:
398
+ # In this case, the only possible negative string is an empty one
399
+ # The `pattern` value may require an non-empty one and the generation will fail
400
+ # However, it is fine to violate `pattern` here as it is negative string generation anyway
401
+ value = ""
405
402
  k = _to_hashable_key(value)
406
403
  if k not in seen:
407
404
  yield NegativeValue(
408
405
  value, description="String smaller than minLength", location=ctx.current_path
409
406
  )
410
407
  seen.add(k)
408
+ else:
409
+ with suppress(InvalidArgument):
410
+ min_length = max_length = value - 1
411
+ new_schema = {**schema, "minLength": min_length, "maxLength": max_length}
412
+ new_schema.setdefault("type", "string")
413
+ if "pattern" in new_schema:
414
+ new_schema["pattern"] = update_quantifier(schema["pattern"], min_length, max_length)
415
+ if new_schema["pattern"] == schema["pattern"]:
416
+ # Pattern wasn't updated, try to generate a valid value then shrink the string to the required length
417
+ del new_schema["minLength"]
418
+ del new_schema["maxLength"]
419
+ value = ctx.generate_from_schema(new_schema)[:max_length]
420
+ else:
421
+ value = ctx.generate_from_schema(new_schema)
422
+ else:
423
+ value = ctx.generate_from_schema(new_schema)
424
+ k = _to_hashable_key(value)
425
+ if k not in seen:
426
+ yield NegativeValue(
427
+ value, description="String smaller than minLength", location=ctx.current_path
428
+ )
429
+ seen.add(k)
411
430
  elif key == "maxLength" and value < BUFFER_SIZE:
412
431
  try:
413
432
  min_length = max_length = value + 1
414
433
  new_schema = {**schema, "minLength": min_length, "maxLength": max_length}
415
434
  new_schema.setdefault("type", "string")
416
435
  if "pattern" in new_schema:
417
- new_schema["pattern"] = update_quantifier(schema["pattern"], min_length, max_length)
418
- if new_schema["pattern"] == schema["pattern"]:
419
- # Pattern wasn't updated, try to generate a valid value then extend the string to the required length
420
- del new_schema["minLength"]
421
- del new_schema["maxLength"]
422
- value = ctx.generate_from_schema(new_schema).ljust(max_length, "0")
423
- else:
436
+ if value > NEGATIVE_MODE_MAX_LENGTH_WITH_PATTERN:
437
+ # Large `maxLength` value can be extremely slow to generate when combined with `pattern`
438
+ del new_schema["pattern"]
424
439
  value = ctx.generate_from_schema(new_schema)
440
+ else:
441
+ new_schema["pattern"] = update_quantifier(schema["pattern"], min_length, max_length)
442
+ if new_schema["pattern"] == schema["pattern"]:
443
+ # Pattern wasn't updated, try to generate a valid value then extend the string to the required length
444
+ del new_schema["minLength"]
445
+ del new_schema["maxLength"]
446
+ value = ctx.generate_from_schema(new_schema).ljust(max_length, "0")
447
+ else:
448
+ value = ctx.generate_from_schema(new_schema)
425
449
  else:
426
450
  value = ctx.generate_from_schema(new_schema)
427
451
  k = _to_hashable_key(value)
@@ -438,10 +462,22 @@ def cover_schema_iter(
438
462
  template = template or ctx.generate_from_schema(_get_template_schema(schema, "object"))
439
463
  yield from _negative_required(ctx, template, value)
440
464
  elif key == "maxItems" and isinstance(value, int) and value < BUFFER_SIZE:
441
- try:
442
- # Force the array to have one more item than allowed
443
- new_schema = {**schema, "minItems": value + 1, "maxItems": value + 1, "type": "array"}
465
+ if value > NEGATIVE_MODE_MAX_ITEMS:
466
+ # It could be extremely slow to generate large arrays
467
+ # Generate values up to the limit and reuse them to construct the final array
468
+ new_schema = {
469
+ **schema,
470
+ "minItems": NEGATIVE_MODE_MAX_ITEMS,
471
+ "maxItems": NEGATIVE_MODE_MAX_ITEMS,
472
+ "type": "array",
473
+ }
444
474
  array_value = ctx.generate_from_schema(new_schema)
475
+ # Extend the array to be of length value + 1 by repeating its own elements
476
+ diff = value + 1 - len(array_value)
477
+ if diff > 0:
478
+ array_value += (
479
+ array_value * (diff // len(array_value)) + array_value[: diff % len(array_value)]
480
+ )
445
481
  k = _to_hashable_key(array_value)
446
482
  if k not in seen:
447
483
  yield NegativeValue(
@@ -450,8 +486,21 @@ def cover_schema_iter(
450
486
  location=ctx.current_path,
451
487
  )
452
488
  seen.add(k)
453
- except (InvalidArgument, Unsatisfiable):
454
- pass
489
+ else:
490
+ try:
491
+ # Force the array to have one more item than allowed
492
+ new_schema = {**schema, "minItems": value + 1, "maxItems": value + 1, "type": "array"}
493
+ array_value = ctx.generate_from_schema(new_schema)
494
+ k = _to_hashable_key(array_value)
495
+ if k not in seen:
496
+ yield NegativeValue(
497
+ array_value,
498
+ description="Array with more items than allowed by maxItems",
499
+ location=ctx.current_path,
500
+ )
501
+ seen.add(k)
502
+ except (InvalidArgument, Unsatisfiable):
503
+ pass
455
504
  elif key == "minItems" and isinstance(value, int) and value > 0:
456
505
  try:
457
506
  # Force the array to have one less item than the minimum
@@ -683,19 +732,22 @@ def _positive_array(ctx: CoverageContext, schema: dict, template: list) -> Gener
683
732
 
684
733
  if example or examples or default:
685
734
  if example:
735
+ seen.add(_to_hashable_key(example))
686
736
  yield PositiveValue(example, description="Example value")
687
737
  if examples:
688
738
  for example in examples:
739
+ seen.add(_to_hashable_key(example))
689
740
  yield PositiveValue(example, description="Example value")
690
741
  if (
691
742
  default
692
743
  and not (example is not None and default == example)
693
744
  and not (examples is not None and any(default == ex for ex in examples))
694
745
  ):
746
+ seen.add(_to_hashable_key(default))
695
747
  yield PositiveValue(default, description="Default value")
696
748
  else:
697
749
  yield PositiveValue(template, description="Valid array")
698
- seen.add(len(template))
750
+ seen.add(_to_hashable_key(template))
699
751
 
700
752
  # Boundary and near-boundary sizes
701
753
  min_items = schema.get("minItems")
@@ -706,19 +758,19 @@ def _positive_array(ctx: CoverageContext, schema: dict, template: list) -> Gener
706
758
  # One item more than minimum if possible
707
759
  larger = min_items + 1
708
760
  if larger not in seen and (max_items is None or larger <= max_items):
709
- yield PositiveValue(
710
- ctx.generate_from_schema({**schema, "minItems": larger, "maxItems": larger}),
711
- description="Near-boundary items array",
712
- )
713
- seen.add(larger)
761
+ value = ctx.generate_from_schema({**schema, "minItems": larger, "maxItems": larger})
762
+ key = _to_hashable_key(value)
763
+ if key not in seen:
764
+ seen.add(key)
765
+ yield PositiveValue(value, description="Near-boundary items array")
714
766
 
715
767
  if max_items is not None:
716
768
  if max_items < BUFFER_SIZE and max_items not in seen:
717
- yield PositiveValue(
718
- ctx.generate_from_schema({**schema, "minItems": max_items}),
719
- description="Maximum items array",
720
- )
721
- seen.add(max_items)
769
+ value = ctx.generate_from_schema({**schema, "minItems": max_items})
770
+ key = _to_hashable_key(value)
771
+ if key not in seen:
772
+ seen.add(key)
773
+ yield PositiveValue(value, description="Maximum items array")
722
774
 
723
775
  # One item smaller than maximum if possible
724
776
  smaller = max_items - 1
@@ -728,11 +780,26 @@ def _positive_array(ctx: CoverageContext, schema: dict, template: list) -> Gener
728
780
  and smaller not in seen
729
781
  and (min_items is None or smaller >= min_items)
730
782
  ):
731
- yield PositiveValue(
732
- ctx.generate_from_schema({**schema, "minItems": smaller, "maxItems": smaller}),
733
- description="Near-boundary items array",
734
- )
735
- seen.add(smaller)
783
+ value = ctx.generate_from_schema({**schema, "minItems": smaller, "maxItems": smaller})
784
+ key = _to_hashable_key(value)
785
+ if key not in seen:
786
+ seen.add(key)
787
+ yield PositiveValue(value, description="Near-boundary items array")
788
+
789
+ if "items" in schema and "enum" in schema["items"] and isinstance(schema["items"]["enum"], list) and max_items != 0:
790
+ # Ensure there is enough items to pass `minItems` if it is specified
791
+ length = min_items or 1
792
+ for variant in schema["items"]["enum"]:
793
+ value = [variant] * length
794
+ key = _to_hashable_key(value)
795
+ if key not in seen:
796
+ seen.add(key)
797
+ yield PositiveValue(value, description="Enum value from available for items array")
798
+ elif min_items is None and max_items is None and "items" in schema and isinstance(schema["items"], dict):
799
+ # Otherwise only an empty array is generated
800
+ sub_schema = schema["items"]
801
+ for item in cover_schema_iter(ctx, sub_schema):
802
+ yield PositiveValue([item.value], description=f"Single-item array: {item.description}")
736
803
 
737
804
 
738
805
  def _positive_object(ctx: CoverageContext, schema: dict, template: dict) -> Generator[GeneratedValue, None, None]: