schemathesis 3.34.3__tar.gz → 3.35.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (645) hide show
  1. {schemathesis-3.34.3 → schemathesis-3.35.0}/.pre-commit-config.yaml +2 -2
  2. {schemathesis-3.34.3 → schemathesis-3.35.0}/PKG-INFO +1 -1
  3. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/changelog.rst +11 -1
  4. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/experimental.rst +25 -0
  5. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/extending.rst +28 -0
  6. {schemathesis-3.34.3 → schemathesis-3.35.0}/pyproject.toml +1 -1
  7. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_hypothesis.py +55 -26
  8. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/__init__.py +25 -4
  9. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/context.py +4 -0
  10. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/handlers.py +4 -1
  11. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/output/default.py +4 -0
  12. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/contrib/openapi/fill_missing_examples.py +1 -1
  13. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/experimental/__init__.py +7 -0
  14. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/generation/__init__.py +4 -37
  15. schemathesis-3.35.0/src/schemathesis/generation/_hypothesis.py +51 -0
  16. schemathesis-3.35.0/src/schemathesis/generation/_methods.py +40 -0
  17. schemathesis-3.35.0/src/schemathesis/generation/coverage.py +433 -0
  18. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/schemas.py +2 -1
  19. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/extensions.py +1 -1
  20. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/examples.py +1 -1
  21. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/schemas.py +2 -1
  22. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/stateful/__init__.py +1 -2
  23. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/utils.py +0 -10
  24. schemathesis-3.35.0/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +26 -0
  25. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +1 -1
  26. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_commands.py +38 -0
  27. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/conftest.py +3 -1
  28. schemathesis-3.35.0/test/coverage/test_combinations.py +590 -0
  29. schemathesis-3.35.0/test/coverage/test_phase.py +185 -0
  30. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_examples.py +1 -2
  31. {schemathesis-3.34.3 → schemathesis-3.35.0}/test-corpus/test_corpus.py +8 -1
  32. {schemathesis-3.34.3 → schemathesis-3.35.0}/.dockerignore +0 -0
  33. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/FUNDING.yml +0 -0
  34. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  35. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  36. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  37. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/dependabot.yml +0 -0
  38. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/build.yml +0 -0
  39. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/codeql-analysis.yml +0 -0
  40. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/codspeed.yml +0 -0
  41. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/commit.yml +0 -0
  42. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/example-build.yml +0 -0
  43. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/example-no-build.yml +0 -0
  44. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/master_update.yml +0 -0
  45. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/release.yml +0 -0
  46. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/test-corpus.yml +0 -0
  47. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/test-hypothesis.yml +0 -0
  48. {schemathesis-3.34.3 → schemathesis-3.35.0}/.github/workflows/update-pre-commit.yml +0 -0
  49. {schemathesis-3.34.3 → schemathesis-3.35.0}/.gitignore +0 -0
  50. {schemathesis-3.34.3 → schemathesis-3.35.0}/.readthedocs.yml +0 -0
  51. {schemathesis-3.34.3 → schemathesis-3.35.0}/.relint.yml +0 -0
  52. {schemathesis-3.34.3 → schemathesis-3.35.0}/.rstcheck.cfg +0 -0
  53. {schemathesis-3.34.3 → schemathesis-3.35.0}/.yamllint +0 -0
  54. {schemathesis-3.34.3 → schemathesis-3.35.0}/CITATION.cff +0 -0
  55. {schemathesis-3.34.3 → schemathesis-3.35.0}/CODE_OF_CONDUCT.md +0 -0
  56. {schemathesis-3.34.3 → schemathesis-3.35.0}/CONTRIBUTING.rst +0 -0
  57. {schemathesis-3.34.3 → schemathesis-3.35.0}/Dockerfile +0 -0
  58. {schemathesis-3.34.3 → schemathesis-3.35.0}/Dockerfile.bookworm +0 -0
  59. {schemathesis-3.34.3 → schemathesis-3.35.0}/LICENSE +0 -0
  60. {schemathesis-3.34.3 → schemathesis-3.35.0}/README.md +0 -0
  61. {schemathesis-3.34.3 → schemathesis-3.35.0}/benches/cli.py +0 -0
  62. {schemathesis-3.34.3 → schemathesis-3.35.0}/benches/references.py +0 -0
  63. {schemathesis-3.34.3 → schemathesis-3.35.0}/benches/schema.py +0 -0
  64. {schemathesis-3.34.3 → schemathesis-3.35.0}/changelog.py +0 -0
  65. {schemathesis-3.34.3 → schemathesis-3.35.0}/codecov.yml +0 -0
  66. {schemathesis-3.34.3 → schemathesis-3.35.0}/corpus/data/graphql.tar.gz +0 -0
  67. {schemathesis-3.34.3 → schemathesis-3.35.0}/corpus/data/openapi-3.0.tar.gz +0 -0
  68. {schemathesis-3.34.3 → schemathesis-3.35.0}/corpus/data/openapi-3.1.tar.gz +0 -0
  69. {schemathesis-3.34.3 → schemathesis-3.35.0}/corpus/data/swagger-2.0.tar.gz +0 -0
  70. {schemathesis-3.34.3 → schemathesis-3.35.0}/corpus/tools.py +0 -0
  71. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/Makefile +0 -0
  72. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/additional-content.rst +0 -0
  73. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/api.rst +0 -0
  74. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/auth.rst +0 -0
  75. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/cli.rst +0 -0
  76. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/compatibility.rst +0 -0
  77. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/conf.py +0 -0
  78. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/continuous_integration.rst +0 -0
  79. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/contrib.rst +0 -0
  80. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/data-generation.rst +0 -0
  81. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/examples.rst +0 -0
  82. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/faq.rst +0 -0
  83. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/getting-started.rst +0 -0
  84. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/graphql.rst +0 -0
  85. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/index.rst +0 -0
  86. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/python.rst +0 -0
  87. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/recipes.rst +0 -0
  88. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/requirements.txt +0 -0
  89. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/sanitizing.rst +0 -0
  90. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/service.rst +0 -0
  91. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/stateful.rst +0 -0
  92. {schemathesis-3.34.3 → schemathesis-3.35.0}/docs/targeted.rst +0 -0
  93. {schemathesis-3.34.3 → schemathesis-3.35.0}/example/Dockerfile +0 -0
  94. {schemathesis-3.34.3 → schemathesis-3.35.0}/example/README.md +0 -0
  95. {schemathesis-3.34.3 → schemathesis-3.35.0}/example/app.py +0 -0
  96. {schemathesis-3.34.3 → schemathesis-3.35.0}/example/compose.yml +0 -0
  97. {schemathesis-3.34.3 → schemathesis-3.35.0}/example/openapi.json +0 -0
  98. {schemathesis-3.34.3 → schemathesis-3.35.0}/example/requirements-app.in +0 -0
  99. {schemathesis-3.34.3 → schemathesis-3.35.0}/example/requirements-app.txt +0 -0
  100. {schemathesis-3.34.3 → schemathesis-3.35.0}/example/requirements-pytest.in +0 -0
  101. {schemathesis-3.34.3 → schemathesis-3.35.0}/example/requirements-pytest.txt +0 -0
  102. {schemathesis-3.34.3 → schemathesis-3.35.0}/example/tests/__init__.py +0 -0
  103. {schemathesis-3.34.3 → schemathesis-3.35.0}/example/tests/conftest.py +0 -0
  104. {schemathesis-3.34.3 → schemathesis-3.35.0}/example/tests/extensions.py +0 -0
  105. {schemathesis-3.34.3 → schemathesis-3.35.0}/example/tests/test_app.py +0 -0
  106. {schemathesis-3.34.3 → schemathesis-3.35.0}/img/demo.gif +0 -0
  107. {schemathesis-3.34.3 → schemathesis-3.35.0}/img/service_github_report.png +0 -0
  108. {schemathesis-3.34.3 → schemathesis-3.35.0}/mypy.ini +0 -0
  109. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/__init__.py +0 -0
  110. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_compat.py +0 -0
  111. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_dependency_versions.py +0 -0
  112. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_lazy_import.py +0 -0
  113. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_override.py +0 -0
  114. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_rate_limiter.py +0 -0
  115. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/_xml.py +0 -0
  116. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/auths.py +0 -0
  117. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/checks.py +0 -0
  118. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/__main__.py +0 -0
  119. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/callbacks.py +0 -0
  120. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/cassettes.py +0 -0
  121. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/constants.py +0 -0
  122. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/debug.py +0 -0
  123. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/junitxml.py +0 -0
  124. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/options.py +0 -0
  125. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/output/__init__.py +0 -0
  126. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/output/short.py +0 -0
  127. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/reporting.py +0 -0
  128. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/cli/sanitization.py +0 -0
  129. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/code_samples.py +0 -0
  130. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/constants.py +0 -0
  131. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/contrib/__init__.py +0 -0
  132. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/contrib/openapi/__init__.py +0 -0
  133. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
  134. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
  135. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/contrib/unique_data.py +0 -0
  136. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/exceptions.py +0 -0
  137. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/extra/__init__.py +0 -0
  138. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/extra/_aiohttp.py +0 -0
  139. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/extra/_flask.py +0 -0
  140. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/extra/_server.py +0 -0
  141. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/extra/pytest_plugin.py +0 -0
  142. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/failures.py +0 -0
  143. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/filters.py +0 -0
  144. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/fixups/__init__.py +0 -0
  145. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/fixups/fast_api.py +0 -0
  146. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/fixups/utf8_bom.py +0 -0
  147. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/graphql.py +0 -0
  148. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/hooks.py +0 -0
  149. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/__init__.py +0 -0
  150. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/copy.py +0 -0
  151. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/datetime.py +0 -0
  152. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/deprecation.py +0 -0
  153. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/extensions.py +0 -0
  154. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/jsonschema.py +0 -0
  155. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/output.py +0 -0
  156. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/result.py +0 -0
  157. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/transformation.py +0 -0
  158. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/internal/validation.py +0 -0
  159. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/lazy.py +0 -0
  160. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/loaders.py +0 -0
  161. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/models.py +0 -0
  162. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/parameters.py +0 -0
  163. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/py.typed +0 -0
  164. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/__init__.py +0 -0
  165. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/events.py +0 -0
  166. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/impl/__init__.py +0 -0
  167. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/impl/core.py +0 -0
  168. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/impl/solo.py +0 -0
  169. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/impl/threadpool.py +0 -0
  170. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/probes.py +0 -0
  171. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/runner/serialization.py +0 -0
  172. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/sanitization.py +0 -0
  173. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/serializers.py +0 -0
  174. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/__init__.py +0 -0
  175. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/auth.py +0 -0
  176. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/ci.py +0 -0
  177. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/client.py +0 -0
  178. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/constants.py +0 -0
  179. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/events.py +0 -0
  180. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/hosts.py +0 -0
  181. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/metadata.py +0 -0
  182. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/models.py +0 -0
  183. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/report.py +0 -0
  184. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/serialization.py +0 -0
  185. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/service/usage.py +0 -0
  186. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/__init__.py +0 -0
  187. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/__init__.py +0 -0
  188. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/_cache.py +0 -0
  189. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/loaders.py +0 -0
  190. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/nodes.py +0 -0
  191. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/scalars.py +0 -0
  192. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/schemas.py +0 -0
  193. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/graphql/validation.py +0 -0
  194. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/__init__.py +0 -0
  195. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/_cache.py +0 -0
  196. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
  197. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/checks.py +0 -0
  198. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/constants.py +0 -0
  199. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/converter.py +0 -0
  200. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/definitions.py +0 -0
  201. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
  202. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
  203. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
  204. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
  205. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
  206. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
  207. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
  208. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/formats.py +0 -0
  209. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/links.py +0 -0
  210. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/loaders.py +0 -0
  211. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/media_types.py +0 -0
  212. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
  213. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
  214. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/negative/types.py +0 -0
  215. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
  216. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/parameters.py +0 -0
  217. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/references.py +0 -0
  218. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/security.py +0 -0
  219. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/serialization.py +0 -0
  220. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/stateful/statistic.py +0 -0
  221. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/stateful/types.py +0 -0
  222. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/utils.py +0 -0
  223. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/specs/openapi/validation.py +0 -0
  224. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/__init__.py +0 -0
  225. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/config.py +0 -0
  226. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/context.py +0 -0
  227. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/events.py +0 -0
  228. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/runner.py +0 -0
  229. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/sink.py +0 -0
  230. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/state_machine.py +0 -0
  231. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/statistic.py +0 -0
  232. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/stateful/validation.py +0 -0
  233. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/targets.py +0 -0
  234. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/throttling.py +0 -0
  235. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/transports/__init__.py +0 -0
  236. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/transports/auth.py +0 -0
  237. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/transports/content_types.py +0 -0
  238. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/transports/headers.py +0 -0
  239. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/transports/responses.py +0 -0
  240. {schemathesis-3.34.3 → schemathesis-3.35.0}/src/schemathesis/types.py +0 -0
  241. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__init__.py +0 -0
  242. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -0
  243. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
  244. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
  245. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
  246. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
  247. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
  248. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/__init__.py +0 -0
  249. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/_graphql/__init__.py +0 -0
  250. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/_graphql/_fastapi/__init__.py +0 -0
  251. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/_graphql/_fastapi/app.py +0 -0
  252. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/_graphql/_flask/__init__.py +0 -0
  253. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/_graphql/_flask/app.py +0 -0
  254. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/_graphql/schema.py +0 -0
  255. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/cp1252_app.py +0 -0
  256. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/hooks.py +0 -0
  257. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/__init__.py +0 -0
  258. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_aiohttp/__init__.py +0 -0
  259. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_aiohttp/app.py +0 -0
  260. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_aiohttp/handlers.py +0 -0
  261. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_fastapi/__init__.py +0 -0
  262. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_fastapi/app.py +0 -0
  263. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_flask/__init__.py +0 -0
  264. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/_flask/app.py +0 -0
  265. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/apps/openapi/schema.py +0 -0
  266. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__init__.py +0 -0
  267. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
  268. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
  269. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
  270. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
  271. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
  272. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
  273. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
  274. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/conftest.py +0 -0
  275. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/test_cli.py +0 -0
  276. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/test_provider.py +0 -0
  277. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/auth/test_pytest.py +0 -0
  278. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__init__.py +0 -0
  279. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
  280. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
  281. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_checks/test_deduplication_on_sanitized_header.raw +0 -0
  282. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +0 -0
  283. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +0 -0
  284. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
  285. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
  286. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
  287. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
  288. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
  289. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
  290. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
  291. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
  292. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
  293. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +0 -0
  294. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +0 -0
  295. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +0 -0
  296. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +0 -0
  297. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +0 -0
  298. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +0 -0
  299. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +0 -0
  300. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +0 -0
  301. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
  302. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
  303. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
  304. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
  305. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
  306. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
  307. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
  308. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
  309. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
  310. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
  311. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_deprecated_filters[Open API 3.0].raw +0 -0
  312. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
  313. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
  314. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
  315. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
  316. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
  317. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +0 -0
  318. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +0 -0
  319. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +0 -0
  320. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
  321. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +0 -0
  322. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +0 -0
  323. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +0 -0
  324. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
  325. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
  326. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
  327. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
  328. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
  329. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
  330. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
  331. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
  332. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +0 -0
  333. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +0 -0
  334. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +0 -0
  335. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +0 -0
  336. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +0 -0
  337. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +0 -0
  338. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +0 -0
  339. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +0 -0
  340. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
  341. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
  342. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
  343. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
  344. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
  345. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
  346. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
  347. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
  348. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
  349. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +0 -0
  350. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +0 -0
  351. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
  352. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
  353. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
  354. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
  355. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +0 -0
  356. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +0 -0
  357. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +0 -0
  358. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +0 -0
  359. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +0 -0
  360. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +0 -0
  361. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +0 -0
  362. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +0 -0
  363. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
  364. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
  365. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
  366. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
  367. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
  368. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
  369. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
  370. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-1].raw +0 -0
  371. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-2].raw +0 -0
  372. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_filtered_out[Open API 3.0].raw +0 -0
  373. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_generation_config[Open API 3.0].raw +0 -0
  374. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_keyboard_interrupt[Open API 3.0].raw +0 -0
  375. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_max_failures[Open API 3.0].raw +0 -0
  376. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_proxy_error[Open API 3.0].raw +0 -0
  377. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only[Open API 3.0].raw +0 -0
  378. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only_with_error[Open API 3.0].raw +0 -0
  379. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
  380. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
  381. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
  382. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +0 -0
  383. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +0 -0
  384. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +0 -0
  385. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +0 -0
  386. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +0 -0
  387. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +0 -0
  388. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1].raw +0 -0
  389. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5].raw +0 -0
  390. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1].raw +0 -0
  391. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5].raw +0 -0
  392. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1].raw +0 -0
  393. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5].raw +0 -0
  394. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1].raw +0 -0
  395. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5].raw +0 -0
  396. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
  397. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
  398. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
  399. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
  400. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
  401. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
  402. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
  403. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
  404. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +0 -0
  405. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +0 -0
  406. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +0 -0
  407. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +0 -0
  408. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +0 -0
  409. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +0 -0
  410. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +0 -0
  411. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +0 -0
  412. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
  413. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
  414. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
  415. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
  416. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
  417. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
  418. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
  419. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
  420. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
  421. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
  422. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
  423. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
  424. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
  425. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
  426. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
  427. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
  428. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
  429. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
  430. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
  431. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
  432. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
  433. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
  434. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
  435. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
  436. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
  437. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
  438. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
  439. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
  440. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
  441. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args37].raw +0 -0
  442. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
  443. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
  444. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
  445. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
  446. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
  447. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
  448. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
  449. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
  450. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
  451. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
  452. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_stateful_explicit_examples_with_filters[Open API 3.0].raw +0 -0
  453. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +0 -0
  454. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +0 -0
  455. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +0 -0
  456. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +0 -0
  457. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +0 -0
  458. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +0 -0
  459. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +0 -0
  460. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +0 -0
  461. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
  462. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unresolvable_links[Open API 3.0].raw +0 -0
  463. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
  464. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +0 -0
  465. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +0 -0
  466. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +0 -0
  467. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +0 -0
  468. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +0 -0
  469. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +0 -0
  470. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +0 -0
  471. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +0 -0
  472. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
  473. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
  474. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
  475. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +0 -0
  476. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +0 -0
  477. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +0 -0
  478. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/cert.pem +0 -0
  479. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/conftest.py +0 -0
  480. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/output/__init__.py +0 -0
  481. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/output/test_default.py +0 -0
  482. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_asgi.py +0 -0
  483. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_callbacks.py +0 -0
  484. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_cassettes.py +0 -0
  485. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_checks.py +0 -0
  486. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_crashes.py +0 -0
  487. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_hooks.py +0 -0
  488. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_junitxml.py +0 -0
  489. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_options.py +0 -0
  490. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_reporting.py +0 -0
  491. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/cli/test_targeted.py +0 -0
  492. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +0 -0
  493. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +0 -0
  494. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/code_samples/conftest.py +0 -0
  495. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/code_samples/test_curl.py +0 -0
  496. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/code_samples/test_python.py +0 -0
  497. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
  498. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
  499. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
  500. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
  501. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
  502. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
  503. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
  504. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/openapi/formats/test_uuid.py +0 -0
  505. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
  506. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/test_install.py +0 -0
  507. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/contrib/test_unique_data.py +0 -0
  508. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/petstore_v2.yaml +0 -0
  509. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/petstore_v3.yaml +0 -0
  510. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/relative_files/components/parameters.yaml +0 -0
  511. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/relative_files/components/responses.yaml +0 -0
  512. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/relative_files/components/schemas.yaml +0 -0
  513. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/relative_files/main.yaml +0 -0
  514. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/relative_files/paths/user-account.yaml +0 -0
  515. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/simple_openapi.yaml +0 -0
  516. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/data/simple_swagger.yaml +0 -0
  517. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
  518. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/experimental/conftest.py +0 -0
  519. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/experimental/test_experiments.py +0 -0
  520. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/experimental/test_openapi_3_1.py +0 -0
  521. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/extra/__init__.py +0 -0
  522. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/extra/test_aiohttp.py +0 -0
  523. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/filters/__init__.py +0 -0
  524. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/filters/test_expressions.py +0 -0
  525. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/filters/test_matching.py +0 -0
  526. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/hooks/test_filter_operations.py +0 -0
  527. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/hooks/test_filters.py +0 -0
  528. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/hooks/test_hooks.py +0 -0
  529. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/loaders/conftest.py +0 -0
  530. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/loaders/test_app.py +0 -0
  531. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/loaders/test_common.py +0 -0
  532. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/loaders/test_graphql.py +0 -0
  533. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/loaders/test_openapi.py +0 -0
  534. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/loaders/test_yaml.py +0 -0
  535. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/runner/__init__.py +0 -0
  536. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/runner/test_checks.py +0 -0
  537. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/runner/test_events.py +0 -0
  538. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/runner/test_probes.py +0 -0
  539. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/runner/test_runner.py +0 -0
  540. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__init__.py +0 -0
  541. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_client_error_on_project_details[Open API 3.0].raw +0 -0
  542. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +0 -0
  543. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
  544. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +0 -0
  545. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
  546. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
  547. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_unauthorized[Open API 3.0].raw +0 -0
  548. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +0 -0
  549. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
  550. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
  551. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +0 -0
  552. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_custom_format.raw +0 -0
  553. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +0 -0
  554. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +0 -0
  555. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +0 -0
  556. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +0 -0
  557. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +0 -0
  558. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +0 -0
  559. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +0 -0
  560. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +0 -0
  561. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +0 -0
  562. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +0 -0
  563. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +0 -0
  564. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +0 -0
  565. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +0 -0
  566. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +0 -0
  567. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/conftest.py +0 -0
  568. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_auth.py +0 -0
  569. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_ci.py +0 -0
  570. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_cli.py +0 -0
  571. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_extensions.py +0 -0
  572. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_report.py +0 -0
  573. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_serialization.py +0 -0
  574. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/service/test_usage.py +0 -0
  575. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
  576. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
  577. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
  578. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
  579. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
  580. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +0 -0
  581. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
  582. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/test_basic.py +0 -0
  583. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/test_custom_scalars.py +0 -0
  584. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/graphql/test_pytest.py +0 -0
  585. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
  586. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
  587. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
  588. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/blank.pdf +0 -0
  589. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/conftest.py +0 -0
  590. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/parameters/test_forms.py +0 -0
  591. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/parameters/test_non_payload.py +0 -0
  592. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
  593. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/stateful/__init__.py +0 -0
  594. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/stateful/conftest.py +0 -0
  595. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/stateful/test_config.py +0 -0
  596. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/stateful/test_runner.py +0 -0
  597. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/stateful/test_stateful.py +0 -0
  598. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_checks.py +0 -0
  599. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_expressions.py +0 -0
  600. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_hypothesis.py +0 -0
  601. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_ignored_auth.py +0 -0
  602. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_links.py +0 -0
  603. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_media_types.py +0 -0
  604. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_negative.py +0 -0
  605. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_parameters.py +0 -0
  606. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_randomized.py +0 -0
  607. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_schemas.py +0 -0
  608. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_security.py +0 -0
  609. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_serializing.py +0 -0
  610. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_utils.py +0 -0
  611. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/specs/openapi/test_validation.py +0 -0
  612. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_app.py +0 -0
  613. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_asgi.py +0 -0
  614. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_async.py +0 -0
  615. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_common_parameters.py +0 -0
  616. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_converter.py +0 -0
  617. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_dereferencing.py +0 -0
  618. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_direct_access.py +0 -0
  619. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_examples.py +0 -0
  620. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_filters.py +0 -0
  621. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_fixups.py +0 -0
  622. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_hypothesis.py +0 -0
  623. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_internal.py +0 -0
  624. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_lazy.py +0 -0
  625. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_models.py +0 -0
  626. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_output.py +0 -0
  627. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_package.py +0 -0
  628. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_parameters.py +0 -0
  629. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_parametrization.py +0 -0
  630. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_petstore.py +0 -0
  631. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_pytest.py +0 -0
  632. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_rate_limit.py +0 -0
  633. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_recoverable_errors.py +0 -0
  634. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_required.py +0 -0
  635. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_sanitizing_output.py +0 -0
  636. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_schemas.py +0 -0
  637. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_serialization.py +0 -0
  638. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_stateful.py +0 -0
  639. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_unittest.py +0 -0
  640. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_utils.py +0 -0
  641. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/test_wsgi.py +0 -0
  642. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/transports/test_content_types.py +0 -0
  643. {schemathesis-3.34.3 → schemathesis-3.35.0}/test/utils.py +0 -0
  644. {schemathesis-3.34.3 → schemathesis-3.35.0}/test_server.sh +0 -0
  645. {schemathesis-3.34.3 → schemathesis-3.35.0}/tox.ini +0 -0
@@ -38,12 +38,12 @@ repos:
38
38
  additional_dependencies: [types-click, types-requests, types-PyYAML]
39
39
 
40
40
  - repo: https://github.com/astral-sh/ruff-pre-commit
41
- rev: v0.6.1
41
+ rev: v0.6.2
42
42
  hooks:
43
43
  - id: ruff-format
44
44
 
45
45
  - repo: https://github.com/astral-sh/ruff-pre-commit
46
- rev: v0.6.1
46
+ rev: v0.6.2
47
47
  hooks:
48
48
  - id: ruff
49
49
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: schemathesis
3
- Version: 3.34.3
3
+ Version: 3.35.0
4
4
  Summary: Property-based testing framework for Open API and GraphQL based apps
5
5
  Project-URL: Documentation, https://schemathesis.readthedocs.io/en/stable/
6
6
  Project-URL: Changelog, https://schemathesis.readthedocs.io/en/stable/changelog.html
@@ -1,9 +1,19 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
- :version:`Unreleased <v3.34.3...HEAD>` - TBD
4
+ :version:`Unreleased <v3.35.0...HEAD>` - TBD
5
5
  --------------------------------------------
6
6
 
7
+ .. _v3.35.0:
8
+
9
+ :version:`3.35.0 <v3.34.3...v3.35.0>` - 2024-08-25
10
+ --------------------------------------------------
11
+
12
+ **Added**
13
+
14
+ - **EXPERIMENTAL**: New "coverage" phase in the test runner. It aims to explicitly cover common test scenarios like missing required properties, incorrect types, etc. Enable it with ``--experimental=coverage-phase``
15
+ - Extending CLI with custom options and CLI handlers via hooks.
16
+
7
17
  .. _v3.34.3:
8
18
 
9
19
  :version:`3.34.3 <v3.34.2...v3.34.3>` - 2024-08-24
@@ -112,6 +112,31 @@ To enable OpenAPI 3.1 support via environment variables, you can set:
112
112
 
113
113
  For more details, join the `GitHub Discussion #1822 <https://github.com/schemathesis/schemathesis/discussions/1822>`_.
114
114
 
115
+ .. _coverage-phase:
116
+
117
+ Coverage phase
118
+ ~~~~~~~~~~~~~~
119
+
120
+ Schemathesis primarily generates randomized tests; therefore, the outcomes can vary between test runs.
121
+ This feature enables a new test phase that aims to generate a set of examples that cover common testing patterns for each parameter or property.
122
+ Such tests include checking boundary values, omitting required properties, etc.
123
+
124
+ In CLI
125
+ ~~~~~~
126
+
127
+ .. code-block:: bash
128
+
129
+ st run https://example.schemathesis.io/openapi.json --experimental=coverage-phase
130
+
131
+ Using Environment Variables
132
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
133
+
134
+ .. code-block:: bash
135
+
136
+ export SCHEMATHESIS_EXPERIMENTAL_COVERAGE_PHASE=true
137
+
138
+ For more details, join the `GitHub Discussion #2418 <https://github.com/schemathesis/schemathesis/discussions/2418>`_.
139
+
115
140
  .. _stateful-test-runner:
116
141
 
117
142
  New Stateful Test Runner
@@ -374,6 +374,34 @@ Here's a GraphQL example that includes all queries:
374
374
  In these examples, the ``filter_operations`` hook skips all ``POST`` methods in Open API and all mutations in GraphQL.
375
375
  You can implement any custom logic within the ``filter_operations`` function to include or exclude specific API operations.
376
376
 
377
+ Extending CLI
378
+ ~~~~~~~~~~~~~
379
+
380
+ This example demonstrates how to add a custom CLI option and an event handler that uses it:
381
+
382
+ .. code:: python
383
+
384
+ from schemathesis import cli, runner
385
+
386
+
387
+ cli.add_option("--custom-counter", type=int)
388
+
389
+
390
+ @cli.handler()
391
+ class EventCounter(cli.EventHandler):
392
+ def __init__(self, *args, **params):
393
+ self.counter = params["custom_counter"] or 0
394
+
395
+ def handle_event(self, context, event) -> None:
396
+ self.counter += 1
397
+ if isinstance(event, runner.events.Finished):
398
+ context.add_summary_line(
399
+ f"Counter: {self.counter}",
400
+ )
401
+
402
+ The ``--custom-counter`` CLI option sets the initial value for the ``EventCounter`` handler.
403
+ The handler increments the counter for each event and adds a summary line with the final count when the test run finishes.
404
+
377
405
  ``before_process_path``
378
406
  ~~~~~~~~~~~~~~~~~~~~~~~
379
407
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "schemathesis"
7
- version = "3.34.3"
7
+ version = "3.35.0"
8
8
  description = "Property-based testing framework for Open API and GraphQL based apps"
9
9
  keywords = ["pytest", "hypothesis", "openapi", "graphql", "testing"]
10
10
  authors = [{ name = "Dmitry Dygalo", email = "dmitry@dygalo.dev" }]
@@ -8,21 +8,21 @@ from typing import Any, Callable, Generator, Mapping, Optional, Tuple
8
8
 
9
9
  import hypothesis
10
10
  from hypothesis import Phase
11
- from hypothesis import strategies as st
12
11
  from hypothesis.errors import HypothesisWarning, Unsatisfiable
13
12
  from hypothesis.internal.entropy import deterministic_PRNG
14
13
  from hypothesis.internal.reflection import proxies
15
14
  from jsonschema.exceptions import SchemaError
16
15
 
17
16
  from .auths import get_auth_storage_from_test
18
- from .constants import DEFAULT_DEADLINE
17
+ from .constants import DEFAULT_DEADLINE, NOT_SET
19
18
  from .exceptions import OperationSchemaError, SerializationNotPossible
20
- from .generation import DataGenerationMethod, GenerationConfig
19
+ from .experimental import COVERAGE_PHASE
20
+ from .generation import DataGenerationMethod, GenerationConfig, combine_strategies, coverage, get_single_example
21
21
  from .hooks import GLOBAL_HOOK_DISPATCHER, HookContext, HookDispatcher
22
22
  from .models import APIOperation, Case
23
23
  from .transports.content_types import parse_content_type
24
24
  from .transports.headers import has_invalid_characters, is_latin_1_encodable
25
- from .utils import GivenInput, combine_strategies
25
+ from .utils import GivenInput
26
26
 
27
27
  # Forcefully initializes Hypothesis' global PRNG to avoid races that initilize it
28
28
  # if e.g. Schemathesis CLI is used with multiple workers
@@ -101,6 +101,8 @@ def create_test(
101
101
  wrapped_test = add_examples(
102
102
  wrapped_test, operation, hook_dispatcher=hook_dispatcher, as_strategy_kwargs=as_strategy_kwargs
103
103
  )
104
+ if COVERAGE_PHASE.is_enabled:
105
+ wrapped_test = add_coverage(wrapped_test, operation, data_generation_methods)
104
106
  return wrapped_test
105
107
 
106
108
 
@@ -199,6 +201,55 @@ def add_examples(
199
201
  return test
200
202
 
201
203
 
204
+ def add_coverage(
205
+ test: Callable, operation: APIOperation, data_generation_methods: list[DataGenerationMethod]
206
+ ) -> Callable:
207
+ for example in _iter_coverage_cases(operation, data_generation_methods):
208
+ test = hypothesis.example(case=example)(test)
209
+ return test
210
+
211
+
212
+ def _iter_coverage_cases(
213
+ operation: APIOperation, data_generation_methods: list[DataGenerationMethod]
214
+ ) -> Generator[Case, None, None]:
215
+ from .specs.openapi.constants import LOCATION_TO_CONTAINER
216
+
217
+ ctx = coverage.CoverageContext(data_generation_methods=data_generation_methods)
218
+ generators: dict[tuple[str, str], Generator] = {}
219
+ template: dict[str, Any] = {}
220
+ for parameter in operation.iter_parameters():
221
+ schema = parameter.as_json_schema(operation)
222
+ gen = coverage.cover_schema_iter(ctx, schema)
223
+ value = next(gen, NOT_SET)
224
+ if value is NOT_SET:
225
+ continue
226
+ location = parameter.location
227
+ name = parameter.name
228
+ container = template.setdefault(LOCATION_TO_CONTAINER[location], {})
229
+ container[name] = value
230
+ generators[(location, name)] = gen
231
+ if operation.body:
232
+ for body in operation.body:
233
+ schema = body.as_json_schema(operation)
234
+ gen = coverage.cover_schema_iter(ctx, schema)
235
+ value = next(gen, NOT_SET)
236
+ if value is NOT_SET:
237
+ continue
238
+ if "body" not in template:
239
+ template["body"] = value
240
+ template["media_type"] = body.media_type
241
+ yield operation.make_case(**{**template, "body": value, "media_type": body.media_type})
242
+ for next_value in gen:
243
+ yield operation.make_case(**{**template, "body": next_value, "media_type": body.media_type})
244
+ else:
245
+ yield operation.make_case(**template)
246
+ for (location, name), gen in generators.items():
247
+ container_name = LOCATION_TO_CONTAINER[location]
248
+ container = template[container_name]
249
+ for value in gen:
250
+ yield operation.make_case(**{**template, container_name: {**container, name: value}})
251
+
252
+
202
253
  def find_invalid_headers(headers: Mapping) -> Generator[Tuple[str, str], None, None]:
203
254
  for name, value in headers.items():
204
255
  if not is_latin_1_encodable(value) or has_invalid_characters(name, value):
@@ -248,25 +299,3 @@ def get_invalid_example_headers_mark(test: Callable) -> Optional[dict[str, str]]
248
299
 
249
300
  def add_invalid_example_header_mark(test: Callable, headers: dict[str, str]) -> None:
250
301
  test._schemathesis_invalid_example_headers = headers # type: ignore
251
-
252
-
253
- def get_single_example(strategy: st.SearchStrategy[Case]) -> Case:
254
- examples: list[Case] = []
255
- add_single_example(strategy, examples)
256
- return examples[0]
257
-
258
-
259
- def add_single_example(strategy: st.SearchStrategy[Case], examples: list[Case]) -> None:
260
- @hypothesis.given(strategy) # type: ignore
261
- @hypothesis.settings( # type: ignore
262
- database=None,
263
- max_examples=1,
264
- deadline=None,
265
- verbosity=hypothesis.Verbosity.quiet,
266
- phases=(hypothesis.Phase.generate,),
267
- suppress_health_check=list(hypothesis.HealthCheck),
268
- )
269
- def example_generating_inner_function(ex: Case) -> None:
270
- examples.append(ex)
271
-
272
- example_generating_inner_function()
@@ -11,7 +11,7 @@ from collections import defaultdict
11
11
  from dataclasses import dataclass
12
12
  from enum import Enum
13
13
  from queue import Queue
14
- from typing import TYPE_CHECKING, Any, Callable, Generator, Iterable, Literal, NoReturn, Sequence, cast
14
+ from typing import TYPE_CHECKING, Any, Callable, Generator, Iterable, Literal, NoReturn, Sequence, Type, cast
15
15
  from urllib.parse import urlparse
16
16
 
17
17
  import click
@@ -42,7 +42,7 @@ from ..internal.datetime import current_datetime
42
42
  from ..internal.output import OutputConfig
43
43
  from ..internal.validation import file_exists
44
44
  from ..loaders import load_app, load_yaml
45
- from ..models import APIOperation, Case, CheckFunction
45
+ from ..models import Case, CheckFunction
46
46
  from ..runner import events, prepare_hypothesis_settings, probes
47
47
  from ..specs.graphql import loaders as gql_loaders
48
48
  from ..specs.openapi import loaders as oas_loaders
@@ -50,11 +50,12 @@ from ..stateful import Stateful
50
50
  from ..targets import Target
51
51
  from ..transports import RequestConfig
52
52
  from ..transports.auth import get_requests_auth
53
- from ..types import Filter, PathLike, RequestCert
53
+ from ..types import PathLike, RequestCert
54
54
  from . import callbacks, cassettes, output
55
55
  from .constants import DEFAULT_WORKERS, MAX_WORKERS, MIN_WORKERS, HealthCheck, Phase, Verbosity
56
56
  from .context import ExecutionContext, FileReportContext, ServiceReportContext
57
57
  from .debug import DebugOutputHandler
58
+ from .handlers import EventHandler
58
59
  from .junitxml import JunitXMLHandler
59
60
  from .options import CsvChoice, CsvEnumChoice, CustomHelpMessageChoice, NotSet, OptionalInt
60
61
  from .sanitization import SanitizationHandler
@@ -66,13 +67,13 @@ if TYPE_CHECKING:
66
67
  from ..schemas import BaseSchema
67
68
  from ..service.client import ServiceClient
68
69
  from ..specs.graphql.schemas import GraphQLSchema
69
- from .handlers import EventHandler
70
70
 
71
71
 
72
72
  def _get_callable_names(items: tuple[Callable, ...]) -> tuple[str, ...]:
73
73
  return tuple(item.__name__ for item in items)
74
74
 
75
75
 
76
+ CUSTOM_HANDLERS: list[Type[EventHandler]] = []
76
77
  CONTEXT_SETTINGS = {"help_option_names": ["-h", "--help"]}
77
78
 
78
79
  DEFAULT_CHECKS_NAMES = _get_callable_names(checks_module.DEFAULT_CHECKS)
@@ -759,6 +760,7 @@ The report data, consisting of a tar gz file with multiple JSON files, is subjec
759
760
  experimental.SCHEMA_ANALYSIS.name,
760
761
  experimental.STATEFUL_TEST_RUNNER.name,
761
762
  experimental.STATEFUL_ONLY.name,
763
+ experimental.COVERAGE_PHASE.name,
762
764
  ]
763
765
  ),
764
766
  callback=callbacks.convert_experimental,
@@ -927,6 +929,7 @@ def run(
927
929
  schemathesis_io_telemetry: bool = True,
928
930
  hosts_file: PathLike = service.DEFAULT_HOSTS_PATH,
929
931
  force_color: bool = False,
932
+ **__kwargs,
930
933
  ) -> None:
931
934
  """Run tests against an API using a specified SCHEMA.
932
935
 
@@ -1212,6 +1215,7 @@ def run(
1212
1215
  )
1213
1216
  execute(
1214
1217
  event_stream,
1218
+ ctx=ctx,
1215
1219
  hypothesis_settings=hypothesis_settings,
1216
1220
  workers_num=workers_num,
1217
1221
  rate_limit=rate_limit,
@@ -1595,6 +1599,7 @@ class OutputStyle(Enum):
1595
1599
  def execute(
1596
1600
  event_stream: Generator[events.ExecutionEvent, None, None],
1597
1601
  *,
1602
+ ctx: click.Context,
1598
1603
  hypothesis_settings: hypothesis.settings,
1599
1604
  workers_num: int,
1600
1605
  rate_limit: str | None,
@@ -1669,6 +1674,8 @@ def execute(
1669
1674
  cassette_path, format=cassette_format, preserve_exact_body_bytes=cassette_preserve_exact_body_bytes
1670
1675
  )
1671
1676
  )
1677
+ for custom_handler in CUSTOM_HANDLERS:
1678
+ handlers.append(custom_handler(*ctx.args, **ctx.params))
1672
1679
  handlers.append(get_output_handler(workers_num))
1673
1680
  if sanitize_output:
1674
1681
  handlers.insert(0, SanitizationHandler())
@@ -2000,6 +2007,20 @@ def decide_color_output(ctx: click.Context, no_color: bool, force_color: bool) -
2000
2007
  ctx.color = False
2001
2008
 
2002
2009
 
2010
+ def add_option(*args: Any, cls: Type = click.Option, **kwargs: Any) -> None:
2011
+ """Add a new CLI option to `st run`."""
2012
+ run.params.append(cls(args, **kwargs))
2013
+
2014
+
2015
+ def handler() -> Callable[[Type], None]:
2016
+ """Register a new CLI event handler."""
2017
+
2018
+ def _wrapper(cls: Type) -> None:
2019
+ CUSTOM_HANDLERS.append(cls)
2020
+
2021
+ return _wrapper
2022
+
2023
+
2003
2024
  @HookDispatcher.register_spec([HookScope.GLOBAL])
2004
2025
  def after_init_cli_run_handlers(
2005
2026
  context: HookContext, handlers: list[EventHandler], execution_context: ExecutionContext
@@ -60,7 +60,11 @@ class ExecutionContext:
60
60
  analysis: Result[AnalysisResult, Exception] | None = None
61
61
  output_config: OutputConfig = field(default_factory=OutputConfig)
62
62
  state_machine_sink: StateMachineSink | None = None
63
+ summary_lines: list[str] = field(default_factory=list)
63
64
 
64
65
  @deprecated_property(removed_in="4.0", replacement="show_trace")
65
66
  def show_errors_tracebacks(self) -> bool:
66
67
  return self.show_trace
68
+
69
+ def add_summary_line(self, line: str) -> None:
70
+ self.summary_lines.append(line)
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import TYPE_CHECKING
3
+ from typing import TYPE_CHECKING, Any
4
4
 
5
5
  if TYPE_CHECKING:
6
6
  from ..runner import events
@@ -8,6 +8,9 @@ if TYPE_CHECKING:
8
8
 
9
9
 
10
10
  class EventHandler:
11
+ def __init__(self, *args: Any, **params: Any) -> None:
12
+ pass
13
+
11
14
  def handle_event(self, context: ExecutionContext, event: events.ExecutionEvent) -> None:
12
15
  raise NotImplementedError
13
16
 
@@ -850,6 +850,10 @@ def handle_finished(context: ExecutionContext, event: events.Finished) -> None:
850
850
  display_application_logs(context, event)
851
851
  display_analysis(context)
852
852
  display_statistic(context, event)
853
+ if context.summary_lines:
854
+ click.echo()
855
+ for line in context.summary_lines:
856
+ click.echo(line)
853
857
  click.echo()
854
858
  display_summary(event)
855
859
 
@@ -18,7 +18,7 @@ def uninstall() -> None:
18
18
 
19
19
  def before_add_examples(context: HookContext, examples: list[Case]) -> None:
20
20
  if not examples and context.operation is not None:
21
- from ..._hypothesis import add_single_example
21
+ from ...generation import add_single_example
22
22
 
23
23
  strategy = context.operation.as_strategy()
24
24
  add_single_example(strategy, examples)
@@ -93,3 +93,10 @@ STATEFUL_ONLY = GLOBAL_EXPERIMENTS.create_experiment(
93
93
  description="Run only stateful tests",
94
94
  discussion_url="https://github.com/schemathesis/schemathesis/discussions/2262",
95
95
  )
96
+ COVERAGE_PHASE = GLOBAL_EXPERIMENTS.create_experiment(
97
+ name="coverage-phase",
98
+ verbose_name="Coverage phase",
99
+ env_var="COVERAGE_PHASE",
100
+ description="Generate covering test cases",
101
+ discussion_url="https://github.com/schemathesis/schemathesis/discussions/2418",
102
+ )
@@ -2,48 +2,15 @@ from __future__ import annotations
2
2
 
3
3
  import random
4
4
  from dataclasses import dataclass, field
5
- from enum import Enum
6
- from typing import TYPE_CHECKING, Iterable, Union
5
+ from typing import TYPE_CHECKING
6
+
7
+ from ._hypothesis import add_single_example, combine_strategies, get_single_example # noqa: E402
8
+ from ._methods import DataGenerationMethod, DataGenerationMethodInput # noqa: E402
7
9
 
8
10
  if TYPE_CHECKING:
9
11
  from hypothesis.strategies import SearchStrategy
10
12
 
11
13
 
12
- class DataGenerationMethod(str, Enum):
13
- """Defines what data Schemathesis generates for tests."""
14
-
15
- # Generate data, that fits the API schema
16
- positive = "positive"
17
- # Doesn't fit the API schema
18
- negative = "negative"
19
-
20
- @classmethod
21
- def default(cls) -> DataGenerationMethod:
22
- return cls.positive
23
-
24
- @classmethod
25
- def all(cls) -> list[DataGenerationMethod]:
26
- return list(DataGenerationMethod)
27
-
28
- def as_short_name(self) -> str:
29
- return {
30
- DataGenerationMethod.positive: "P",
31
- DataGenerationMethod.negative: "N",
32
- }[self]
33
-
34
- @property
35
- def is_negative(self) -> bool:
36
- return self == DataGenerationMethod.negative
37
-
38
- @classmethod
39
- def ensure_list(cls, value: DataGenerationMethodInput) -> list[DataGenerationMethod]:
40
- if isinstance(value, DataGenerationMethod):
41
- return [value]
42
- return list(value)
43
-
44
-
45
- DataGenerationMethodInput = Union[DataGenerationMethod, Iterable[DataGenerationMethod]]
46
-
47
14
  DEFAULT_DATA_GENERATION_METHODS = (DataGenerationMethod.default(),)
48
15
 
49
16
 
@@ -0,0 +1,51 @@
1
+ from __future__ import annotations
2
+
3
+ from functools import lru_cache, reduce
4
+ from operator import or_
5
+ from typing import TYPE_CHECKING, TypeVar
6
+
7
+ if TYPE_CHECKING:
8
+ from hypothesis import settings
9
+ from hypothesis import strategies as st
10
+
11
+
12
+ @lru_cache()
13
+ def default_settings() -> settings:
14
+ from hypothesis import HealthCheck, Phase, Verbosity, settings
15
+
16
+ return settings(
17
+ database=None,
18
+ max_examples=1,
19
+ deadline=None,
20
+ verbosity=Verbosity.quiet,
21
+ phases=(Phase.generate,),
22
+ suppress_health_check=list(HealthCheck),
23
+ )
24
+
25
+
26
+ T = TypeVar("T")
27
+
28
+
29
+ def get_single_example(strategy: st.SearchStrategy[T]) -> T: # type: ignore[type-var]
30
+ examples: list[T] = []
31
+ add_single_example(strategy, examples)
32
+ return examples[0]
33
+
34
+
35
+ def add_single_example(strategy: st.SearchStrategy[T], examples: list[T]) -> None:
36
+ from hypothesis import given
37
+
38
+ @given(strategy) # type: ignore
39
+ @default_settings() # type: ignore
40
+ def example_generating_inner_function(ex: T) -> None:
41
+ examples.append(ex)
42
+
43
+ example_generating_inner_function()
44
+
45
+
46
+ def combine_strategies(strategies: list[st.SearchStrategy] | tuple[st.SearchStrategy]) -> st.SearchStrategy:
47
+ """Combine a list of strategies into a single one.
48
+
49
+ If the input is `[a, b, c]`, then the result is equivalent to `a | b | c`.
50
+ """
51
+ return reduce(or_, strategies[1:], strategies[0])
@@ -0,0 +1,40 @@
1
+ from __future__ import annotations
2
+
3
+ from enum import Enum
4
+ from typing import Iterable, Union
5
+
6
+
7
+ class DataGenerationMethod(str, Enum):
8
+ """Defines what data Schemathesis generates for tests."""
9
+
10
+ # Generate data, that fits the API schema
11
+ positive = "positive"
12
+ # Doesn't fit the API schema
13
+ negative = "negative"
14
+
15
+ @classmethod
16
+ def default(cls) -> DataGenerationMethod:
17
+ return cls.positive
18
+
19
+ @classmethod
20
+ def all(cls) -> list[DataGenerationMethod]:
21
+ return list(DataGenerationMethod)
22
+
23
+ def as_short_name(self) -> str:
24
+ return {
25
+ DataGenerationMethod.positive: "P",
26
+ DataGenerationMethod.negative: "N",
27
+ }[self]
28
+
29
+ @property
30
+ def is_negative(self) -> bool:
31
+ return self == DataGenerationMethod.negative
32
+
33
+ @classmethod
34
+ def ensure_list(cls, value: DataGenerationMethodInput) -> list[DataGenerationMethod]:
35
+ if isinstance(value, DataGenerationMethod):
36
+ return [value]
37
+ return list(value)
38
+
39
+
40
+ DataGenerationMethodInput = Union[DataGenerationMethod, Iterable[DataGenerationMethod]]