schemathesis 3.39.7__tar.gz → 3.39.9__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 (689) hide show
  1. {schemathesis-3.39.7 → schemathesis-3.39.9}/PKG-INFO +1 -1
  2. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/changelog.rst +25 -2
  3. {schemathesis-3.39.7 → schemathesis-3.39.9}/pyproject.toml +1 -1
  4. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/_hypothesis.py +13 -10
  5. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/output/default.py +2 -2
  6. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/failures.py +2 -1
  7. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/generation/coverage.py +10 -5
  8. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/internal/deprecation.py +1 -2
  9. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/models.py +1 -1
  10. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/checks.py +15 -10
  11. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/loaders.py +1 -2
  12. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/parameters.py +1 -1
  13. schemathesis-3.39.9/src/schemathesis/specs/openapi/patterns.py +305 -0
  14. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/stateful/state_machine.py +2 -1
  15. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/__init__.py +1 -2
  16. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +3 -1
  17. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +3 -1
  18. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/test_cassettes.py +1 -2
  19. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/coverage/test_combinations.py +9 -1
  20. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/coverage/test_phase.py +166 -0
  21. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/stateful/test_stateful.py +31 -0
  22. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_checks.py +41 -0
  23. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_patterns.py +40 -9
  24. schemathesis-3.39.7/.github/workflows/master_update.yml +0 -53
  25. schemathesis-3.39.7/src/schemathesis/specs/openapi/patterns.py +0 -137
  26. {schemathesis-3.39.7 → schemathesis-3.39.9}/.dockerignore +0 -0
  27. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/FUNDING.yml +0 -0
  28. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  29. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  30. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  31. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/dependabot.yml +0 -0
  32. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/workflows/build.yml +0 -0
  33. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/workflows/codeql-analysis.yml +0 -0
  34. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/workflows/codspeed.yml +0 -0
  35. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/workflows/commit.yml +0 -0
  36. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/workflows/example-build.yml +0 -0
  37. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/workflows/example-no-build.yml +0 -0
  38. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/workflows/release.yml +0 -0
  39. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/workflows/test-corpus.yml +0 -0
  40. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/workflows/test-hypothesis.yml +0 -0
  41. {schemathesis-3.39.7 → schemathesis-3.39.9}/.github/workflows/update-pre-commit.yml +0 -0
  42. {schemathesis-3.39.7 → schemathesis-3.39.9}/.gitignore +0 -0
  43. {schemathesis-3.39.7 → schemathesis-3.39.9}/.pre-commit-config.yaml +0 -0
  44. {schemathesis-3.39.7 → schemathesis-3.39.9}/.readthedocs.yml +0 -0
  45. {schemathesis-3.39.7 → schemathesis-3.39.9}/.relint.yml +0 -0
  46. {schemathesis-3.39.7 → schemathesis-3.39.9}/.rstcheck.cfg +0 -0
  47. {schemathesis-3.39.7 → schemathesis-3.39.9}/.yamllint +0 -0
  48. {schemathesis-3.39.7 → schemathesis-3.39.9}/CITATION.cff +0 -0
  49. {schemathesis-3.39.7 → schemathesis-3.39.9}/CODE_OF_CONDUCT.md +0 -0
  50. {schemathesis-3.39.7 → schemathesis-3.39.9}/CONTRIBUTING.rst +0 -0
  51. {schemathesis-3.39.7 → schemathesis-3.39.9}/Dockerfile +0 -0
  52. {schemathesis-3.39.7 → schemathesis-3.39.9}/Dockerfile.bookworm +0 -0
  53. {schemathesis-3.39.7 → schemathesis-3.39.9}/LICENSE +0 -0
  54. {schemathesis-3.39.7 → schemathesis-3.39.9}/README.md +0 -0
  55. {schemathesis-3.39.7 → schemathesis-3.39.9}/SECURITY.md +0 -0
  56. {schemathesis-3.39.7 → schemathesis-3.39.9}/benches/cli.py +0 -0
  57. {schemathesis-3.39.7 → schemathesis-3.39.9}/benches/coverage_phase.py +0 -0
  58. {schemathesis-3.39.7 → schemathesis-3.39.9}/benches/references.py +0 -0
  59. {schemathesis-3.39.7 → schemathesis-3.39.9}/benches/schema.py +0 -0
  60. {schemathesis-3.39.7 → schemathesis-3.39.9}/changelog.py +0 -0
  61. {schemathesis-3.39.7 → schemathesis-3.39.9}/codecov.yml +0 -0
  62. {schemathesis-3.39.7 → schemathesis-3.39.9}/corpus/data/graphql.tar.gz +0 -0
  63. {schemathesis-3.39.7 → schemathesis-3.39.9}/corpus/data/openapi-3.0.tar.gz +0 -0
  64. {schemathesis-3.39.7 → schemathesis-3.39.9}/corpus/data/openapi-3.1.tar.gz +0 -0
  65. {schemathesis-3.39.7 → schemathesis-3.39.9}/corpus/data/swagger-2.0.tar.gz +0 -0
  66. {schemathesis-3.39.7 → schemathesis-3.39.9}/corpus/tools.py +0 -0
  67. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/Makefile +0 -0
  68. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/additional-content.rst +0 -0
  69. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/api.rst +0 -0
  70. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/auth.rst +0 -0
  71. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/cli.rst +0 -0
  72. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/compatibility.rst +0 -0
  73. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/conf.py +0 -0
  74. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/continuous_integration.rst +0 -0
  75. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/contrib.rst +0 -0
  76. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/data-generation.rst +0 -0
  77. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/examples.rst +0 -0
  78. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/experimental.rst +0 -0
  79. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/extending.rst +0 -0
  80. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/faq.rst +0 -0
  81. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/getting-started.rst +0 -0
  82. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/graphql.rst +0 -0
  83. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/index.rst +0 -0
  84. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/python.rst +0 -0
  85. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/recipes.rst +0 -0
  86. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/requirements.txt +0 -0
  87. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/sanitizing.rst +0 -0
  88. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/service.rst +0 -0
  89. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/stateful.rst +0 -0
  90. {schemathesis-3.39.7 → schemathesis-3.39.9}/docs/targeted.rst +0 -0
  91. {schemathesis-3.39.7 → schemathesis-3.39.9}/example/Dockerfile +0 -0
  92. {schemathesis-3.39.7 → schemathesis-3.39.9}/example/README.md +0 -0
  93. {schemathesis-3.39.7 → schemathesis-3.39.9}/example/app.py +0 -0
  94. {schemathesis-3.39.7 → schemathesis-3.39.9}/example/compose.yml +0 -0
  95. {schemathesis-3.39.7 → schemathesis-3.39.9}/example/openapi.json +0 -0
  96. {schemathesis-3.39.7 → schemathesis-3.39.9}/example/requirements-app.in +0 -0
  97. {schemathesis-3.39.7 → schemathesis-3.39.9}/example/requirements-app.txt +0 -0
  98. {schemathesis-3.39.7 → schemathesis-3.39.9}/example/requirements-pytest.in +0 -0
  99. {schemathesis-3.39.7 → schemathesis-3.39.9}/example/requirements-pytest.txt +0 -0
  100. {schemathesis-3.39.7 → schemathesis-3.39.9}/example/tests/__init__.py +0 -0
  101. {schemathesis-3.39.7 → schemathesis-3.39.9}/example/tests/conftest.py +0 -0
  102. {schemathesis-3.39.7 → schemathesis-3.39.9}/example/tests/extensions.py +0 -0
  103. {schemathesis-3.39.7 → schemathesis-3.39.9}/example/tests/test_app.py +0 -0
  104. {schemathesis-3.39.7 → schemathesis-3.39.9}/img/demo.gif +0 -0
  105. {schemathesis-3.39.7 → schemathesis-3.39.9}/img/service_github_report.png +0 -0
  106. {schemathesis-3.39.7 → schemathesis-3.39.9}/mypy.ini +0 -0
  107. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/__init__.py +0 -0
  108. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/_compat.py +0 -0
  109. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/_dependency_versions.py +0 -0
  110. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/_lazy_import.py +0 -0
  111. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/_override.py +0 -0
  112. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/_patches.py +0 -0
  113. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/_rate_limiter.py +0 -0
  114. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/_xml.py +0 -0
  115. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/auths.py +0 -0
  116. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/checks.py +0 -0
  117. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/__init__.py +0 -0
  118. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/__main__.py +0 -0
  119. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/callbacks.py +0 -0
  120. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/cassettes.py +0 -0
  121. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/constants.py +0 -0
  122. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/context.py +0 -0
  123. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/debug.py +0 -0
  124. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/handlers.py +0 -0
  125. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/junitxml.py +0 -0
  126. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/options.py +0 -0
  127. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/output/__init__.py +0 -0
  128. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/output/short.py +0 -0
  129. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/reporting.py +0 -0
  130. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/cli/sanitization.py +0 -0
  131. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/code_samples.py +0 -0
  132. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/constants.py +0 -0
  133. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/contrib/__init__.py +0 -0
  134. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/contrib/openapi/__init__.py +0 -0
  135. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
  136. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
  137. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
  138. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/contrib/unique_data.py +0 -0
  139. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/exceptions.py +0 -0
  140. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/experimental/__init__.py +0 -0
  141. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/extra/__init__.py +0 -0
  142. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/extra/_aiohttp.py +0 -0
  143. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/extra/_flask.py +0 -0
  144. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/extra/_server.py +0 -0
  145. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/extra/pytest_plugin.py +0 -0
  146. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/filters.py +0 -0
  147. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/fixups/__init__.py +0 -0
  148. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/fixups/fast_api.py +0 -0
  149. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/fixups/utf8_bom.py +0 -0
  150. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/generation/__init__.py +0 -0
  151. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/generation/_hypothesis.py +0 -0
  152. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/generation/_methods.py +0 -0
  153. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/graphql.py +0 -0
  154. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/hooks.py +0 -0
  155. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/internal/__init__.py +0 -0
  156. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/internal/checks.py +0 -0
  157. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/internal/copy.py +0 -0
  158. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/internal/datetime.py +0 -0
  159. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/internal/diff.py +0 -0
  160. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/internal/extensions.py +0 -0
  161. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/internal/jsonschema.py +0 -0
  162. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/internal/output.py +0 -0
  163. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/internal/result.py +0 -0
  164. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/internal/transformation.py +0 -0
  165. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/internal/validation.py +0 -0
  166. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/lazy.py +0 -0
  167. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/loaders.py +0 -0
  168. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/parameters.py +0 -0
  169. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/py.typed +0 -0
  170. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/runner/__init__.py +0 -0
  171. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/runner/events.py +0 -0
  172. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/runner/impl/__init__.py +0 -0
  173. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/runner/impl/context.py +0 -0
  174. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/runner/impl/core.py +0 -0
  175. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/runner/impl/solo.py +0 -0
  176. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/runner/impl/threadpool.py +0 -0
  177. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/runner/probes.py +0 -0
  178. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/runner/serialization.py +0 -0
  179. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/sanitization.py +0 -0
  180. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/schemas.py +0 -0
  181. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/serializers.py +0 -0
  182. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/service/__init__.py +0 -0
  183. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/service/auth.py +0 -0
  184. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/service/ci.py +0 -0
  185. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/service/client.py +0 -0
  186. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/service/constants.py +0 -0
  187. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/service/events.py +0 -0
  188. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/service/extensions.py +0 -0
  189. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/service/hosts.py +0 -0
  190. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/service/metadata.py +0 -0
  191. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/service/models.py +0 -0
  192. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/service/report.py +0 -0
  193. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/service/serialization.py +0 -0
  194. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/service/usage.py +0 -0
  195. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/__init__.py +0 -0
  196. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/graphql/__init__.py +0 -0
  197. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/graphql/_cache.py +0 -0
  198. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/graphql/loaders.py +0 -0
  199. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/graphql/nodes.py +0 -0
  200. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/graphql/scalars.py +0 -0
  201. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/graphql/schemas.py +0 -0
  202. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/graphql/validation.py +0 -0
  203. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/__init__.py +0 -0
  204. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/_cache.py +0 -0
  205. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
  206. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/constants.py +0 -0
  207. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/converter.py +0 -0
  208. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/definitions.py +0 -0
  209. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/examples.py +0 -0
  210. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
  211. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
  212. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
  213. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
  214. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
  215. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
  216. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
  217. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/formats.py +0 -0
  218. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/links.py +0 -0
  219. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/media_types.py +0 -0
  220. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
  221. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
  222. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/negative/types.py +0 -0
  223. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
  224. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/references.py +0 -0
  225. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/schemas.py +0 -0
  226. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/security.py +0 -0
  227. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/serialization.py +0 -0
  228. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
  229. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/stateful/statistic.py +0 -0
  230. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/stateful/types.py +0 -0
  231. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/utils.py +0 -0
  232. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/specs/openapi/validation.py +0 -0
  233. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/stateful/__init__.py +0 -0
  234. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/stateful/config.py +0 -0
  235. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/stateful/context.py +0 -0
  236. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/stateful/events.py +0 -0
  237. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/stateful/runner.py +0 -0
  238. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/stateful/sink.py +0 -0
  239. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/stateful/statistic.py +0 -0
  240. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/stateful/validation.py +0 -0
  241. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/targets.py +0 -0
  242. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/throttling.py +0 -0
  243. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/transports/__init__.py +0 -0
  244. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/transports/asgi.py +0 -0
  245. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/transports/auth.py +0 -0
  246. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/transports/content_types.py +0 -0
  247. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/transports/headers.py +0 -0
  248. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/transports/responses.py +0 -0
  249. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/types.py +0 -0
  250. {schemathesis-3.39.7 → schemathesis-3.39.9}/src/schemathesis/utils.py +0 -0
  251. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/__init__.py +0 -0
  252. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -0
  253. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
  254. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
  255. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
  256. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
  257. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
  258. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/_graphql/__init__.py +0 -0
  259. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/_graphql/_fastapi/__init__.py +0 -0
  260. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/_graphql/_fastapi/app.py +0 -0
  261. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/_graphql/_flask/__init__.py +0 -0
  262. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/_graphql/_flask/app.py +0 -0
  263. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/_graphql/schema.py +0 -0
  264. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/cp1252_app.py +0 -0
  265. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/hooks.py +0 -0
  266. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/openapi/__init__.py +0 -0
  267. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/openapi/_aiohttp/__init__.py +0 -0
  268. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/openapi/_aiohttp/app.py +0 -0
  269. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/openapi/_aiohttp/handlers.py +0 -0
  270. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/openapi/_fastapi/__init__.py +0 -0
  271. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/openapi/_fastapi/app.py +0 -0
  272. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/openapi/_flask/__init__.py +0 -0
  273. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/openapi/_flask/app.py +0 -0
  274. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/apps/openapi/schema.py +0 -0
  275. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/auth/__init__.py +0 -0
  276. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
  277. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
  278. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
  279. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
  280. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
  281. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
  282. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
  283. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/auth/conftest.py +0 -0
  284. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/auth/test_cli.py +0 -0
  285. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/auth/test_provider.py +0 -0
  286. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/auth/test_pytest.py +0 -0
  287. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/checks/__init__.py +0 -0
  288. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/checks/test_checks.py +0 -0
  289. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__init__.py +0 -0
  290. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
  291. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
  292. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_checks/test_deduplication_on_sanitized_header.raw +0 -0
  293. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args0].raw +0 -0
  294. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args10].raw +0 -0
  295. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args1].raw +0 -0
  296. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args2].raw +0 -0
  297. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args3].raw +0 -0
  298. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args4].raw +0 -0
  299. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args5].raw +0 -0
  300. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args6].raw +0 -0
  301. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args7].raw +0 -0
  302. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args8].raw +0 -0
  303. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args9].raw +0 -0
  304. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance_with_env_vars.raw +0 -0
  305. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +0 -0
  306. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +0 -0
  307. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
  308. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
  309. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
  310. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
  311. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
  312. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
  313. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
  314. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
  315. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
  316. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +0 -0
  317. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +0 -0
  318. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +0 -0
  319. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +0 -0
  320. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +0 -0
  321. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +0 -0
  322. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +0 -0
  323. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +0 -0
  324. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
  325. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
  326. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
  327. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
  328. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
  329. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
  330. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
  331. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
  332. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
  333. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
  334. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +0 -0
  335. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_deprecated_filters[Open API 3.0].raw +0 -0
  336. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
  337. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
  338. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
  339. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
  340. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
  341. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +0 -0
  342. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +0 -0
  343. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +0 -0
  344. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
  345. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +0 -0
  346. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +0 -0
  347. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +0 -0
  348. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
  349. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
  350. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
  351. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
  352. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
  353. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
  354. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
  355. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
  356. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +0 -0
  357. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +0 -0
  358. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +0 -0
  359. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +0 -0
  360. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +0 -0
  361. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +0 -0
  362. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +0 -0
  363. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +0 -0
  364. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
  365. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
  366. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
  367. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
  368. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
  369. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
  370. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
  371. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
  372. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
  373. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
  374. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
  375. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
  376. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
  377. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +0 -0
  378. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +0 -0
  379. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +0 -0
  380. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +0 -0
  381. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +0 -0
  382. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +0 -0
  383. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +0 -0
  384. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +0 -0
  385. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
  386. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
  387. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
  388. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
  389. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
  390. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
  391. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
  392. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-1].raw +0 -0
  393. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-2].raw +0 -0
  394. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_filtered_out[Open API 3.0].raw +0 -0
  395. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_generation_config[Open API 3.0].raw +0 -0
  396. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_keyboard_interrupt[Open API 3.0].raw +0 -0
  397. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_max_failures[Open API 3.0].raw +0 -0
  398. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_proxy_error[Open API 3.0].raw +0 -0
  399. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only[Open API 3.0].raw +0 -0
  400. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only_with_error[Open API 3.0].raw +0 -0
  401. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
  402. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
  403. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
  404. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +0 -0
  405. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +0 -0
  406. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +0 -0
  407. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +0 -0
  408. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +0 -0
  409. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +0 -0
  410. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1].raw +0 -0
  411. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5].raw +0 -0
  412. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1].raw +0 -0
  413. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5].raw +0 -0
  414. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1].raw +0 -0
  415. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5].raw +0 -0
  416. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1].raw +0 -0
  417. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5].raw +0 -0
  418. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
  419. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
  420. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
  421. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
  422. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
  423. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
  424. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
  425. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
  426. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +0 -0
  427. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +0 -0
  428. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +0 -0
  429. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +0 -0
  430. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +0 -0
  431. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +0 -0
  432. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +0 -0
  433. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +0 -0
  434. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
  435. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
  436. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
  437. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
  438. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
  439. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
  440. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
  441. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
  442. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
  443. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
  444. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
  445. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
  446. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
  447. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
  448. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
  449. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
  450. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +0 -0
  451. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
  452. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
  453. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
  454. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
  455. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
  456. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
  457. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
  458. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
  459. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
  460. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
  461. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
  462. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
  463. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
  464. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args37].raw +0 -0
  465. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
  466. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
  467. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
  468. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
  469. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
  470. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
  471. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
  472. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
  473. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
  474. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
  475. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_stateful_explicit_examples_with_filters[Open API 3.0].raw +0 -0
  476. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +0 -0
  477. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +0 -0
  478. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +0 -0
  479. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +0 -0
  480. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +0 -0
  481. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +0 -0
  482. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +0 -0
  483. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +0 -0
  484. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
  485. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_unresolvable_links[Open API 3.0].raw +0 -0
  486. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
  487. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +0 -0
  488. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +0 -0
  489. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +0 -0
  490. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +0 -0
  491. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +0 -0
  492. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +0 -0
  493. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +0 -0
  494. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +0 -0
  495. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
  496. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
  497. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
  498. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +0 -0
  499. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +0 -0
  500. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +0 -0
  501. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/cert.pem +0 -0
  502. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/conftest.py +0 -0
  503. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/output/__init__.py +0 -0
  504. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/output/test_default.py +0 -0
  505. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/test_asgi.py +0 -0
  506. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/test_callbacks.py +0 -0
  507. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/test_checks.py +0 -0
  508. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/test_commands.py +0 -0
  509. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/test_crashes.py +0 -0
  510. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/test_hooks.py +0 -0
  511. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/test_junitxml.py +0 -0
  512. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/test_options.py +0 -0
  513. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/test_reporting.py +0 -0
  514. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/cli/test_targeted.py +0 -0
  515. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +0 -0
  516. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +0 -0
  517. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/code_samples/conftest.py +0 -0
  518. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/code_samples/test_curl.py +0 -0
  519. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/code_samples/test_python.py +0 -0
  520. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/conftest.py +0 -0
  521. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
  522. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
  523. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
  524. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
  525. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +0 -0
  526. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
  527. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
  528. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +0 -0
  529. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
  530. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/contrib/openapi/formats/test_uuid.py +0 -0
  531. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
  532. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/contrib/test_install.py +0 -0
  533. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/contrib/test_unique_data.py +0 -0
  534. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/coverage/__init__.py +0 -0
  535. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/coverage/__snapshots__/test_phase/test_unspecified_http_methods.raw +0 -0
  536. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/coverage/test_examples.py +0 -0
  537. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/data/petstore_v2.yaml +0 -0
  538. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/data/petstore_v3.yaml +0 -0
  539. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/data/relative_files/components/parameters.yaml +0 -0
  540. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/data/relative_files/components/responses.yaml +0 -0
  541. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/data/relative_files/components/schemas.yaml +0 -0
  542. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/data/relative_files/main.yaml +0 -0
  543. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/data/relative_files/paths/user-account.yaml +0 -0
  544. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/data/simple_openapi.yaml +0 -0
  545. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/data/simple_swagger.yaml +0 -0
  546. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
  547. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/experimental/conftest.py +0 -0
  548. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/experimental/test_experiments.py +0 -0
  549. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/experimental/test_openapi_3_1.py +0 -0
  550. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/extra/__init__.py +0 -0
  551. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/extra/test_aiohttp.py +0 -0
  552. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/filters/__init__.py +0 -0
  553. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/filters/test_expressions.py +0 -0
  554. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/filters/test_matching.py +0 -0
  555. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/fixtures/__init__.py +0 -0
  556. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/fixtures/ctx.py +0 -0
  557. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/hooks/test_filter_operations.py +0 -0
  558. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/hooks/test_filters.py +0 -0
  559. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/hooks/test_hooks.py +0 -0
  560. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/loaders/conftest.py +0 -0
  561. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/loaders/test_app.py +0 -0
  562. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/loaders/test_common.py +0 -0
  563. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/loaders/test_graphql.py +0 -0
  564. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/loaders/test_openapi.py +0 -0
  565. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/loaders/test_yaml.py +0 -0
  566. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/runner/__init__.py +0 -0
  567. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/runner/test_checks.py +0 -0
  568. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/runner/test_events.py +0 -0
  569. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/runner/test_probes.py +0 -0
  570. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/runner/test_runner.py +0 -0
  571. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__init__.py +0 -0
  572. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_cli/test_client_error_on_project_details.raw +0 -0
  573. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +0 -0
  574. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
  575. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +0 -0
  576. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
  577. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
  578. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_cli/test_unauthorized.raw +0 -0
  579. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +0 -0
  580. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
  581. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
  582. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +0 -0
  583. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_custom_format.raw +0 -0
  584. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +0 -0
  585. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +0 -0
  586. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +0 -0
  587. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +0 -0
  588. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +0 -0
  589. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +0 -0
  590. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +0 -0
  591. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +0 -0
  592. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +0 -0
  593. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +0 -0
  594. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +0 -0
  595. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +0 -0
  596. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +0 -0
  597. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +0 -0
  598. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/conftest.py +0 -0
  599. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/test_auth.py +0 -0
  600. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/test_ci.py +0 -0
  601. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/test_cli.py +0 -0
  602. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/test_extensions.py +0 -0
  603. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/test_report.py +0 -0
  604. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/test_serialization.py +0 -0
  605. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/service/test_usage.py +0 -0
  606. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
  607. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
  608. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
  609. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
  610. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
  611. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +0 -0
  612. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
  613. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/graphql/test_basic.py +0 -0
  614. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/graphql/test_custom_scalars.py +0 -0
  615. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/graphql/test_pytest.py +0 -0
  616. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[basic-post].raw +0 -0
  617. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[success-get].raw +0 -0
  618. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[basic-Authorization-406].raw +0 -0
  619. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-Authorization-200].raw +0 -0
  620. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-200].raw +0 -0
  621. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-406].raw +0 -0
  622. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
  623. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
  624. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_ignored_auth/test_auth_via_override_cli[cookie].raw +0 -0
  625. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_ignored_auth/test_auth_via_override_cli[query].raw +0 -0
  626. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_ignored_auth/test_explicit_auth_cli[Open API 3.0].raw +0 -0
  627. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-False].raw +0 -0
  628. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-True].raw +0 -0
  629. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
  630. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/blank.pdf +0 -0
  631. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/conftest.py +0 -0
  632. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/parameters/test_forms.py +0 -0
  633. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/parameters/test_non_payload.py +0 -0
  634. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
  635. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/stateful/__init__.py +0 -0
  636. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/stateful/conftest.py +0 -0
  637. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/stateful/test_config.py +0 -0
  638. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/stateful/test_runner.py +0 -0
  639. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_examples.py +0 -0
  640. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_expressions.py +0 -0
  641. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_hypothesis.py +0 -0
  642. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_ignored_auth.py +0 -0
  643. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_links.py +0 -0
  644. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_media_types.py +0 -0
  645. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_negative.py +0 -0
  646. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_parameters.py +0 -0
  647. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_randomized.py +0 -0
  648. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_schemas.py +0 -0
  649. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_security.py +0 -0
  650. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_serializing.py +0 -0
  651. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_utils.py +0 -0
  652. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/specs/openapi/test_validation.py +0 -0
  653. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_app.py +0 -0
  654. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_asgi.py +0 -0
  655. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_async.py +0 -0
  656. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_common_parameters.py +0 -0
  657. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_converter.py +0 -0
  658. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_dereferencing.py +0 -0
  659. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_direct_access.py +0 -0
  660. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_examples.py +0 -0
  661. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_filters.py +0 -0
  662. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_fixups.py +0 -0
  663. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_hypothesis.py +0 -0
  664. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_internal.py +0 -0
  665. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_lazy.py +0 -0
  666. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_models.py +0 -0
  667. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_output.py +0 -0
  668. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_package.py +0 -0
  669. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_parameters.py +0 -0
  670. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_parametrization.py +0 -0
  671. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_petstore.py +0 -0
  672. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_pytest.py +0 -0
  673. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_rate_limit.py +0 -0
  674. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_recoverable_errors.py +0 -0
  675. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_required.py +0 -0
  676. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_sanitizing_output.py +0 -0
  677. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_schemas.py +0 -0
  678. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_serialization.py +0 -0
  679. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_stateful.py +0 -0
  680. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_unittest.py +0 -0
  681. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_utils.py +0 -0
  682. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/test_wsgi.py +0 -0
  683. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/transports/test_content_types.py +0 -0
  684. {schemathesis-3.39.7 → schemathesis-3.39.9}/test/utils.py +0 -0
  685. {schemathesis-3.39.7 → schemathesis-3.39.9}/test-corpus/conftest.py +0 -0
  686. {schemathesis-3.39.7 → schemathesis-3.39.9}/test-corpus/test_corpus.py +0 -0
  687. {schemathesis-3.39.7 → schemathesis-3.39.9}/test_server.sh +0 -0
  688. {schemathesis-3.39.7 → schemathesis-3.39.9}/tox.ini +0 -0
  689. {schemathesis-3.39.7 → schemathesis-3.39.9}/typos.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: schemathesis
3
- Version: 3.39.7
3
+ Version: 3.39.9
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,10 +1,33 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
- :version:`Unreleased <v3.39.7...HEAD>` - TBD
4
+ :version:`Unreleased <v3.39.9...HEAD>` - TBD
5
5
  --------------------------------------------
6
6
 
7
- .. _v3.39.7:
7
+ .. _v3.39.9:
8
+
9
+ :version:`3.39.9 <v3.39.8...v3.39.9>` - 2025-02-01
10
+ --------------------------------------------------
11
+
12
+ **Fixed**
13
+
14
+ - Internal error in coverage phase when a parameter is mixing keywords for different types.
15
+ - Do not run irrelevant checks on "Unspecified HTTP method" type of coverage scenarios.
16
+ - Ignoring ``verify=False`` when specified via ``get_call_kwargs`` on a state machine. :issue:`2713`
17
+
18
+ **Changed**
19
+
20
+ - Slightly improve the error message on malformed JSON.
21
+
22
+ .. _v3.39.8:
23
+
24
+ :version:`3.39.8 <v3.39.7...v3.39.8>` - 2025-01-25
25
+ --------------------------------------------------
26
+
27
+ **Fixed**
28
+
29
+ - Handling of complex regex patterns with multiple quantifiers to respect length constraints during test generation.
30
+ - Internal error during the coverage phase if negated parameter has no ``type``.
8
31
 
9
32
  :version:`3.39.7 <v3.39.6...v3.39.7>` - 2025-01-16
10
33
  --------------------------------------------------
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "schemathesis"
7
- version = "3.39.7"
7
+ version = "3.39.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" }]
@@ -332,16 +332,19 @@ def _iter_coverage_cases(
332
332
  if operation.query:
333
333
  container = template["query"]
334
334
  for parameter in operation.query:
335
- value = container[parameter.name]
336
- case = operation.make_case(**{**template, "query": {**container, parameter.name: [value, value]}})
337
- case.data_generation_method = DataGenerationMethod.negative
338
- case.meta = _make_meta(
339
- description=f"Duplicate `{parameter.name}` query parameter",
340
- location=None,
341
- parameter=parameter.name,
342
- parameter_location="query",
343
- )
344
- yield case
335
+ # Could be absent if value schema can't be negated
336
+ # I.e. contains just `default` value without any other keywords
337
+ value = container.get(parameter.name, NOT_SET)
338
+ if value is not NOT_SET:
339
+ case = operation.make_case(**{**template, "query": {**container, parameter.name: [value, value]}})
340
+ case.data_generation_method = DataGenerationMethod.negative
341
+ case.meta = _make_meta(
342
+ description=f"Duplicate `{parameter.name}` query parameter",
343
+ location=None,
344
+ parameter=parameter.name,
345
+ parameter_location="query",
346
+ )
347
+ yield case
345
348
  # Generate missing required parameters
346
349
  for parameter in operation.iter_parameters():
347
350
  if parameter.is_required and parameter.location != "path":
@@ -125,7 +125,7 @@ def get_summary_output(event: events.Finished) -> tuple[str, str]:
125
125
  message = "Empty test suite"
126
126
  color = "yellow"
127
127
  else:
128
- message = f'{", ".join(parts)} in {event.running_time:.2f}s'
128
+ message = f"{', '.join(parts)} in {event.running_time:.2f}s"
129
129
  if event.has_failures or event.has_errors:
130
130
  color = "red"
131
131
  elif event.skipped_count > 0:
@@ -176,7 +176,7 @@ def display_errors(context: ExecutionContext, event: events.Finished) -> None:
176
176
  fg="red",
177
177
  )
178
178
  click.secho(
179
- f"\nNeed more help?\n" f" Join our Discord server: {DISCORD_LINK}",
179
+ f"\nNeed more help?\n Join our Discord server: {DISCORD_LINK}",
180
180
  fg="red",
181
181
  )
182
182
 
@@ -93,8 +93,9 @@ class JSONDecodeErrorContext(FailureContext):
93
93
 
94
94
  @classmethod
95
95
  def from_exception(cls, exc: JSONDecodeError) -> JSONDecodeErrorContext:
96
+ message = f"Response must be valid JSON with 'Content-Type: application/json' header:\n\n {exc}"
96
97
  return cls(
97
- message=str(exc),
98
+ message=message,
98
99
  validation_message=exc.msg,
99
100
  document=exc.doc,
100
101
  position=exc.pos,
@@ -194,6 +194,10 @@ class CoverageContext:
194
194
  re.compile(pattern)
195
195
  except re.error:
196
196
  raise Unsatisfiable from None
197
+ if "minLength" in schema or "maxLength" in schema:
198
+ min_length = schema.get("minLength")
199
+ max_length = schema.get("maxLength")
200
+ pattern = update_quantifier(pattern, min_length, max_length)
197
201
  return cached_draw(st.from_regex(pattern))
198
202
  if (keys == ["items", "type"] or keys == ["items", "minItems", "type"]) and isinstance(schema["items"], dict):
199
203
  items = schema["items"]
@@ -433,7 +437,12 @@ def cover_schema_iter(
433
437
  elif key == "required":
434
438
  template = template or ctx.generate_from_schema(_get_template_schema(schema, "object"))
435
439
  yield from _negative_required(ctx, template, value)
436
- elif key == "additionalProperties" and not value and "pattern" not in schema:
440
+ elif (
441
+ key == "additionalProperties"
442
+ and not value
443
+ and "pattern" not in schema
444
+ and schema.get("type") in ["object", None]
445
+ ):
437
446
  template = template or ctx.generate_from_schema(_get_template_schema(schema, "object"))
438
447
  yield NegativeValue(
439
448
  {**template, UNKNOWN_PROPERTY_KEY: UNKNOWN_PROPERTY_VALUE},
@@ -514,11 +523,7 @@ def _positive_string(ctx: CoverageContext, schema: dict) -> Generator[GeneratedV
514
523
  # Default positive value
515
524
  yield PositiveValue(ctx.generate_from_schema(schema), description="Valid string")
516
525
  elif "pattern" in schema:
517
- # Without merging `maxLength` & `minLength` into a regex it is problematic
518
- # to generate a valid value as the unredlying machinery will resort to filtering
519
- # and it is unlikely that it will generate a string of that length
520
526
  yield PositiveValue(ctx.generate_from_schema(schema), description="Valid string")
521
- return
522
527
 
523
528
  seen = set()
524
529
 
@@ -4,8 +4,7 @@ from typing import Any, Callable
4
4
 
5
5
  def _warn_deprecation(*, kind: str, thing: str, removed_in: str, replacement: str) -> None:
6
6
  warnings.warn(
7
- f"{kind} `{thing}` is deprecated and will be removed in Schemathesis {removed_in}. "
8
- f"Use {replacement} instead.",
7
+ f"{kind} `{thing}` is deprecated and will be removed in Schemathesis {removed_in}. Use {replacement} instead.",
9
8
  DeprecationWarning,
10
9
  stacklevel=1,
11
10
  )
@@ -560,7 +560,7 @@ class Case:
560
560
  sanitize_response(response)
561
561
  code_message = self._get_code_message(code_sample_style, response.request, verify=verify)
562
562
  raise exception_cls(
563
- f"{formatted}\n\n" f"{code_message}",
563
+ f"{formatted}\n\n{code_message}",
564
564
  causes=tuple(failed_checks),
565
565
  )
566
566
 
@@ -32,10 +32,15 @@ if TYPE_CHECKING:
32
32
  from ...transports.responses import GenericResponse
33
33
 
34
34
 
35
+ def is_unexpected_http_status_case(case: Case) -> bool:
36
+ # Skip checks for requests using HTTP methods not defined in the API spec
37
+ return bool(case.meta and case.meta.description and case.meta.description.startswith("Unspecified HTTP method"))
38
+
39
+
35
40
  def status_code_conformance(ctx: CheckContext, response: GenericResponse, case: Case) -> bool | None:
36
41
  from .schemas import BaseOpenAPISchema
37
42
 
38
- if not isinstance(case.operation.schema, BaseOpenAPISchema):
43
+ if not isinstance(case.operation.schema, BaseOpenAPISchema) or is_unexpected_http_status_case(case):
39
44
  return True
40
45
  responses = case.operation.definition.raw.get("responses", {})
41
46
  # "default" can be used as the default response object for all HTTP codes that are not covered individually
@@ -66,7 +71,7 @@ def _expand_responses(responses: dict[str | int, Any]) -> Generator[int, None, N
66
71
  def content_type_conformance(ctx: CheckContext, response: GenericResponse, case: Case) -> bool | None:
67
72
  from .schemas import BaseOpenAPISchema
68
73
 
69
- if not isinstance(case.operation.schema, BaseOpenAPISchema):
74
+ if not isinstance(case.operation.schema, BaseOpenAPISchema) or is_unexpected_http_status_case(case):
70
75
  return True
71
76
  documented_content_types = case.operation.schema.get_content_types(case.operation, response)
72
77
  if not documented_content_types:
@@ -124,7 +129,7 @@ def response_headers_conformance(ctx: CheckContext, response: GenericResponse, c
124
129
  from .parameters import OpenAPI20Parameter, OpenAPI30Parameter
125
130
  from .schemas import BaseOpenAPISchema, OpenApi30, _maybe_raise_one_or_more
126
131
 
127
- if not isinstance(case.operation.schema, BaseOpenAPISchema):
132
+ if not isinstance(case.operation.schema, BaseOpenAPISchema) or is_unexpected_http_status_case(case):
128
133
  return True
129
134
  resolved = case.operation.schema.get_headers(case.operation, response)
130
135
  if not resolved:
@@ -209,7 +214,7 @@ def _coerce_header_value(value: str, schema: dict[str, Any]) -> str | int | floa
209
214
  def response_schema_conformance(ctx: CheckContext, response: GenericResponse, case: Case) -> bool | None:
210
215
  from .schemas import BaseOpenAPISchema
211
216
 
212
- if not isinstance(case.operation.schema, BaseOpenAPISchema):
217
+ if not isinstance(case.operation.schema, BaseOpenAPISchema) or is_unexpected_http_status_case(case):
213
218
  return True
214
219
  return case.operation.validate_response(response)
215
220
 
@@ -217,7 +222,7 @@ def response_schema_conformance(ctx: CheckContext, response: GenericResponse, ca
217
222
  def negative_data_rejection(ctx: CheckContext, response: GenericResponse, case: Case) -> bool | None:
218
223
  from .schemas import BaseOpenAPISchema
219
224
 
220
- if not isinstance(case.operation.schema, BaseOpenAPISchema):
225
+ if not isinstance(case.operation.schema, BaseOpenAPISchema) or is_unexpected_http_status_case(case):
221
226
  return True
222
227
 
223
228
  config = ctx.config.negative_data_rejection
@@ -245,7 +250,7 @@ def negative_data_rejection(ctx: CheckContext, response: GenericResponse, case:
245
250
  def positive_data_acceptance(ctx: CheckContext, response: GenericResponse, case: Case) -> bool | None:
246
251
  from .schemas import BaseOpenAPISchema
247
252
 
248
- if not isinstance(case.operation.schema, BaseOpenAPISchema):
253
+ if not isinstance(case.operation.schema, BaseOpenAPISchema) or is_unexpected_http_status_case(case):
249
254
  return True
250
255
 
251
256
  config = ctx.config.positive_data_acceptance
@@ -283,7 +288,7 @@ def missing_required_header(ctx: CheckContext, response: GenericResponse, case:
283
288
  config = ctx.config.missing_required_header
284
289
  allowed_statuses = expand_status_codes(config.allowed_statuses or [])
285
290
  if response.status_code not in allowed_statuses:
286
- allowed = f"Allowed statuses: {', '.join(map(str,allowed_statuses))}"
291
+ allowed = f"Allowed statuses: {', '.join(map(str, allowed_statuses))}"
287
292
  raise AssertionError(f"Unexpected response status for a missing header: {response.status_code}\n{allowed}")
288
293
  return None
289
294
 
@@ -333,7 +338,7 @@ def use_after_free(ctx: CheckContext, response: GenericResponse, original: Case)
333
338
  from ...transports.responses import get_reason
334
339
  from .schemas import BaseOpenAPISchema
335
340
 
336
- if not isinstance(original.operation.schema, BaseOpenAPISchema):
341
+ if not isinstance(original.operation.schema, BaseOpenAPISchema) or is_unexpected_http_status_case(original):
337
342
  return True
338
343
  if response.status_code == 404 or not original.source or response.status_code >= 500:
339
344
  return None
@@ -373,7 +378,7 @@ def ensure_resource_availability(ctx: CheckContext, response: GenericResponse, o
373
378
  from ...transports.responses import get_reason
374
379
  from .schemas import BaseOpenAPISchema
375
380
 
376
- if not isinstance(original.operation.schema, BaseOpenAPISchema):
381
+ if not isinstance(original.operation.schema, BaseOpenAPISchema) or is_unexpected_http_status_case(original):
377
382
  return True
378
383
  if (
379
384
  # Response indicates a client error, even though all available parameters were taken from links
@@ -416,7 +421,7 @@ def ignored_auth(ctx: CheckContext, response: GenericResponse, case: Case) -> bo
416
421
  """Check if an operation declares authentication as a requirement but does not actually enforce it."""
417
422
  from .schemas import BaseOpenAPISchema
418
423
 
419
- if not isinstance(case.operation.schema, BaseOpenAPISchema):
424
+ if not isinstance(case.operation.schema, BaseOpenAPISchema) or is_unexpected_http_status_case(case):
420
425
  return True
421
426
  security_parameters = _get_security_parameters(case.operation)
422
427
  # Authentication is required for this API operation and response is successful
@@ -432,8 +432,7 @@ For more details, check the Open API documentation: {DOC_ENTRY}
432
432
 
433
433
  Please, stringify the following status codes:"""
434
434
  NON_STRING_OBJECT_KEY_MESSAGE = (
435
- "The Open API specification requires all keys in the schema to be strings. "
436
- "You have some keys that are not strings."
435
+ "The Open API specification requires all keys in the schema to be strings. You have some keys that are not strings."
437
436
  )
438
437
 
439
438
 
@@ -359,7 +359,7 @@ MISSING_SCHEMA_OR_CONTENT_MESSAGE = (
359
359
  )
360
360
 
361
361
  INVALID_SCHEMA_MESSAGE = (
362
- 'Can not generate data for {location} parameter "{name}"! ' "Its schema should be an object, got {schema}"
362
+ 'Can not generate data for {location} parameter "{name}"! Its schema should be an object, got {schema}'
363
363
  )
364
364
 
365
365
 
@@ -0,0 +1,305 @@
1
+ from __future__ import annotations
2
+
3
+ import re
4
+ from functools import lru_cache
5
+
6
+ try: # pragma: no cover
7
+ import re._constants as sre
8
+ import re._parser as sre_parse
9
+ except ImportError:
10
+ import sre_constants as sre
11
+ import sre_parse
12
+
13
+ ANCHOR = sre.AT
14
+ REPEATS: tuple
15
+ if hasattr(sre, "POSSESSIVE_REPEAT"):
16
+ REPEATS = (sre.MIN_REPEAT, sre.MAX_REPEAT, sre.POSSESSIVE_REPEAT)
17
+ else:
18
+ REPEATS = (sre.MIN_REPEAT, sre.MAX_REPEAT)
19
+ LITERAL = sre.LITERAL
20
+ IN = sre.IN
21
+ MAXREPEAT = sre_parse.MAXREPEAT
22
+
23
+
24
+ @lru_cache()
25
+ def update_quantifier(pattern: str, min_length: int | None, max_length: int | None) -> str:
26
+ """Update the quantifier of a regular expression based on given min and max lengths."""
27
+ if not pattern or (min_length in (None, 0) and max_length is None):
28
+ return pattern
29
+
30
+ try:
31
+ parsed = sre_parse.parse(pattern)
32
+ return _handle_parsed_pattern(parsed, pattern, min_length, max_length)
33
+ except re.error:
34
+ # Invalid pattern
35
+ return pattern
36
+
37
+
38
+ def _handle_parsed_pattern(parsed: list, pattern: str, min_length: int | None, max_length: int | None) -> str:
39
+ """Handle the parsed pattern and update quantifiers based on different cases."""
40
+ if len(parsed) == 1:
41
+ op, value = parsed[0]
42
+ return _update_quantifier(op, value, pattern, min_length, max_length)
43
+ elif len(parsed) == 2:
44
+ if parsed[0][0] == ANCHOR:
45
+ # Starts with an anchor
46
+ op, value = parsed[1]
47
+ anchor_length = _get_anchor_length(parsed[0][1])
48
+ leading_anchor = pattern[:anchor_length]
49
+ return leading_anchor + _update_quantifier(op, value, pattern[anchor_length:], min_length, max_length)
50
+ if parsed[1][0] == ANCHOR:
51
+ # Ends with an anchor
52
+ op, value = parsed[0]
53
+ anchor_length = _get_anchor_length(parsed[1][1])
54
+ trailing_anchor = pattern[-anchor_length:]
55
+ return _update_quantifier(op, value, pattern[:-anchor_length], min_length, max_length) + trailing_anchor
56
+ elif len(parsed) == 3 and parsed[0][0] == ANCHOR and parsed[2][0] == ANCHOR:
57
+ op, value = parsed[1]
58
+ leading_anchor_length = _get_anchor_length(parsed[0][1])
59
+ trailing_anchor_length = _get_anchor_length(parsed[2][1])
60
+ leading_anchor = pattern[:leading_anchor_length]
61
+ trailing_anchor = pattern[-trailing_anchor_length:]
62
+ return (
63
+ leading_anchor
64
+ + _update_quantifier(
65
+ op, value, pattern[leading_anchor_length:-trailing_anchor_length], min_length, max_length
66
+ )
67
+ + trailing_anchor
68
+ )
69
+ elif (
70
+ len(parsed) > 3
71
+ and parsed[0][0] == ANCHOR
72
+ and parsed[-1][0] == ANCHOR
73
+ and all(op == LITERAL or op in REPEATS for op, _ in parsed[1:-1])
74
+ ):
75
+ return _handle_anchored_pattern(parsed, pattern, min_length, max_length)
76
+ return pattern
77
+
78
+
79
+ def _handle_anchored_pattern(parsed: list, pattern: str, min_length: int | None, max_length: int | None) -> str:
80
+ """Update regex pattern with multiple quantified patterns to satisfy length constraints."""
81
+ # Extract anchors
82
+ leading_anchor_length = _get_anchor_length(parsed[0][1])
83
+ trailing_anchor_length = _get_anchor_length(parsed[-1][1])
84
+ leading_anchor = pattern[:leading_anchor_length]
85
+ trailing_anchor = pattern[-trailing_anchor_length:]
86
+
87
+ pattern_parts = parsed[1:-1]
88
+
89
+ # Adjust length constraints by subtracting fixed literals length
90
+ fixed_length = sum(1 for op, _ in pattern_parts if op == LITERAL)
91
+ if min_length is not None:
92
+ min_length -= fixed_length
93
+ if min_length < 0:
94
+ return pattern
95
+ if max_length is not None:
96
+ max_length -= fixed_length
97
+ if max_length < 0:
98
+ return pattern
99
+
100
+ # Extract only min/max bounds from quantified parts
101
+ quantifier_bounds = [value[:2] for op, value in pattern_parts if op in REPEATS]
102
+
103
+ if not quantifier_bounds:
104
+ return pattern
105
+
106
+ length_distribution = _distribute_length_constraints(quantifier_bounds, min_length, max_length)
107
+ if not length_distribution:
108
+ return pattern
109
+
110
+ # Rebuild pattern with updated quantifiers
111
+ result = leading_anchor
112
+ current_position = leading_anchor_length
113
+ distribution_idx = 0
114
+
115
+ for op, value in pattern_parts:
116
+ if op == LITERAL:
117
+ if pattern[current_position] == "\\":
118
+ # Escaped value
119
+ current_position += 2
120
+ result += "\\"
121
+ else:
122
+ current_position += 1
123
+ result += chr(value)
124
+ else:
125
+ new_min, new_max = length_distribution[distribution_idx]
126
+ next_position = _find_quantified_end(pattern, current_position)
127
+ quantified_segment = pattern[current_position:next_position]
128
+ _, _, subpattern = value
129
+ new_value = (new_min, new_max, subpattern)
130
+
131
+ result += _update_quantifier(op, new_value, quantified_segment, new_min, new_max)
132
+ current_position = next_position
133
+ distribution_idx += 1
134
+
135
+ return result + trailing_anchor
136
+
137
+
138
+ def _find_quantified_end(pattern: str, start: int) -> int:
139
+ """Find the end position of current quantified part."""
140
+ char_class_level = 0
141
+ group_level = 0
142
+
143
+ for i in range(start, len(pattern)):
144
+ char = pattern[i]
145
+
146
+ # Handle character class nesting
147
+ if char == "[":
148
+ char_class_level += 1
149
+ elif char == "]":
150
+ char_class_level -= 1
151
+
152
+ # Handle group nesting
153
+ elif char == "(":
154
+ group_level += 1
155
+ elif char == ")":
156
+ group_level -= 1
157
+
158
+ # Only process quantifiers when we're not inside any nested structure
159
+ elif char_class_level == 0 and group_level == 0:
160
+ if char in "*+?":
161
+ return i + 1
162
+ elif char == "{":
163
+ # Find matching }
164
+ while i < len(pattern) and pattern[i] != "}":
165
+ i += 1
166
+ return i + 1
167
+
168
+ return len(pattern)
169
+
170
+
171
+ def _distribute_length_constraints(
172
+ bounds: list[tuple[int, int]], min_length: int | None, max_length: int | None
173
+ ) -> list[tuple[int, int]] | None:
174
+ """Distribute length constraints among quantified pattern parts."""
175
+ # Handle exact length case with dynamic programming
176
+ if min_length == max_length:
177
+ assert min_length is not None
178
+ target = min_length
179
+ dp: dict[tuple[int, int], list[tuple[int, ...]] | None] = {}
180
+
181
+ def find_valid_combination(pos: int, remaining: int) -> list[tuple[int, ...]] | None:
182
+ if (pos, remaining) in dp:
183
+ return dp[(pos, remaining)]
184
+
185
+ if pos == len(bounds):
186
+ return [()] if remaining == 0 else None
187
+
188
+ max_len: int
189
+ min_len, max_len = bounds[pos]
190
+ if max_len == MAXREPEAT:
191
+ max_len = remaining + 1
192
+ else:
193
+ max_len += 1
194
+
195
+ # Try each possible length for current quantifier
196
+ for length in range(min_len, max_len):
197
+ rest = find_valid_combination(pos + 1, remaining - length)
198
+ if rest is not None:
199
+ dp[(pos, remaining)] = [(length,) + r for r in rest]
200
+ return dp[(pos, remaining)]
201
+
202
+ dp[(pos, remaining)] = None
203
+ return None
204
+
205
+ distribution = find_valid_combination(0, target)
206
+ if distribution:
207
+ return [(length, length) for length in distribution[0]]
208
+ return None
209
+
210
+ # Handle range case by distributing min/max bounds
211
+ result = []
212
+ remaining_min = min_length or 0
213
+ remaining_max = max_length or MAXREPEAT
214
+
215
+ for min_repeat, max_repeat in bounds:
216
+ if remaining_min > 0:
217
+ part_min = min(max_repeat, max(min_repeat, remaining_min))
218
+ else:
219
+ part_min = min_repeat
220
+
221
+ if remaining_max < MAXREPEAT:
222
+ part_max = min(max_repeat, remaining_max)
223
+ else:
224
+ part_max = max_repeat
225
+
226
+ if part_min > part_max:
227
+ return None
228
+
229
+ result.append((part_min, part_max))
230
+
231
+ remaining_min = max(0, remaining_min - part_min)
232
+ remaining_max -= part_max if part_max != MAXREPEAT else 0
233
+
234
+ if remaining_min > 0 or remaining_max < 0:
235
+ return None
236
+
237
+ return result
238
+
239
+
240
+ def _get_anchor_length(node_type: int) -> int:
241
+ """Determine the length of the anchor based on its type."""
242
+ if node_type in {sre.AT_BEGINNING_STRING, sre.AT_END_STRING, sre.AT_BOUNDARY, sre.AT_NON_BOUNDARY}:
243
+ return 2 # \A, \Z, \b, or \B
244
+ return 1 # ^ or $ or their multiline/locale/unicode variants
245
+
246
+
247
+ def _update_quantifier(op: int, value: tuple, pattern: str, min_length: int | None, max_length: int | None) -> str:
248
+ """Update the quantifier based on the operation type and given constraints."""
249
+ if op in REPEATS:
250
+ return _handle_repeat_quantifier(value, pattern, min_length, max_length)
251
+ if op in (LITERAL, IN) and max_length != 0:
252
+ return _handle_literal_or_in_quantifier(pattern, min_length, max_length)
253
+ return pattern
254
+
255
+
256
+ def _handle_repeat_quantifier(
257
+ value: tuple[int, int, tuple], pattern: str, min_length: int | None, max_length: int | None
258
+ ) -> str:
259
+ """Handle repeat quantifiers (e.g., '+', '*', '?')."""
260
+ min_repeat, max_repeat, _ = value
261
+ min_length, max_length = _build_size(min_repeat, max_repeat, min_length, max_length)
262
+ if min_length > max_length:
263
+ return pattern
264
+ return f"({_strip_quantifier(pattern).strip(')(')})" + _build_quantifier(min_length, max_length)
265
+
266
+
267
+ def _handle_literal_or_in_quantifier(pattern: str, min_length: int | None, max_length: int | None) -> str:
268
+ """Handle literal or character class quantifiers."""
269
+ min_length = 1 if min_length is None else max(min_length, 1)
270
+ return f"({pattern.strip(')(')})" + _build_quantifier(min_length, max_length)
271
+
272
+
273
+ def _build_quantifier(minimum: int | None, maximum: int | None) -> str:
274
+ """Construct a quantifier string based on min and max values."""
275
+ if maximum == MAXREPEAT or maximum is None:
276
+ return f"{{{minimum or 0},}}"
277
+ if minimum == maximum:
278
+ return f"{{{minimum}}}"
279
+ return f"{{{minimum or 0},{maximum}}}"
280
+
281
+
282
+ def _build_size(min_repeat: int, max_repeat: int, min_length: int | None, max_length: int | None) -> tuple[int, int]:
283
+ """Merge the current repetition constraints with the provided min and max lengths."""
284
+ if min_length is not None:
285
+ min_repeat = max(min_repeat, min_length)
286
+ if max_length is not None:
287
+ if max_repeat == MAXREPEAT:
288
+ max_repeat = max_length
289
+ else:
290
+ max_repeat = min(max_repeat, max_length)
291
+ return min_repeat, max_repeat
292
+
293
+
294
+ def _strip_quantifier(pattern: str) -> str:
295
+ """Remove quantifier from the pattern."""
296
+ # Lazy & posessive quantifiers
297
+ if pattern.endswith(("*?", "+?", "??", "*+", "?+", "++")):
298
+ return pattern[:-2]
299
+ if pattern.endswith(("?", "*", "+")):
300
+ pattern = pattern[:-1]
301
+ if pattern.endswith("}") and "{" in pattern:
302
+ # Find the start of the exact quantifier and drop everything since that index
303
+ idx = pattern.rfind("{")
304
+ pattern = pattern[:idx]
305
+ return pattern
@@ -169,6 +169,7 @@ class APIStateMachine(RuleBasedStateMachine):
169
169
  kwargs = self.get_call_kwargs(case)
170
170
  start = time.monotonic()
171
171
  response = self.call(case, **kwargs)
172
+ self._transport_kwargs = kwargs
172
173
  elapsed = time.monotonic() - start
173
174
  self.after_call(response, case)
174
175
  self.validate_response(response, case, additional_checks=(use_after_free,))
@@ -297,7 +298,7 @@ class APIStateMachine(RuleBasedStateMachine):
297
298
  all provided checks rather than only the first encountered exception.
298
299
  """
299
300
  __tracebackhide__ = True
300
- case.validate_response(response, additional_checks=additional_checks)
301
+ case.validate_response(response, additional_checks=additional_checks, transport_kwargs=self._transport_kwargs)
301
302
 
302
303
  def store_result(self, response: GenericResponse, case: Case, elapsed: float) -> StepResult:
303
304
  return StepResult(response, case, elapsed)
@@ -48,8 +48,7 @@ def run_app(port: int, operations: list[openapi.schema.Operation], spec: str, fr
48
48
  spec
49
49
  ]
50
50
  click.secho(
51
- f"Schemathesis test server is running!\n\n"
52
- f"API Schema is available at: http://0.0.0.0:{port}/schema.yaml\n",
51
+ f"Schemathesis test server is running!\n\nAPI Schema is available at: http://0.0.0.0:{port}/schema.yaml\n",
53
52
  bold=True,
54
53
  )
55
54
  if framework == "aiohttp":
@@ -20,7 +20,9 @@ ___________________________ GET /api/malformed_json ____________________________
20
20
 
21
21
  - JSON deserialization error
22
22
 
23
- Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
23
+ Response must be valid JSON with 'Content-Type: application/json' header:
24
+
25
+ Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
24
26
 
25
27
  [200] OK:
26
28
 
@@ -20,7 +20,9 @@ ___________________________ GET /api/malformed_json ____________________________
20
20
 
21
21
  - JSON deserialization error
22
22
 
23
- Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
23
+ Response must be valid JSON with 'Content-Type: application/json' header:
24
+
25
+ Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
24
26
 
25
27
  [200] OK:
26
28
 
@@ -266,8 +266,7 @@ def test_run_subprocess(testdir, cassette_path, hypothesis_max_examples, schema_
266
266
  cassette = load_cassette(cassette_path)
267
267
  assert len(cassette["http_interactions"]) == 1
268
268
  command = (
269
- f"st run --cassette-path={cassette_path} "
270
- f"--hypothesis-max-examples={hypothesis_max_examples or 2} {schema_url}"
269
+ f"st run --cassette-path={cassette_path} --hypothesis-max-examples={hypothesis_max_examples or 2} {schema_url}"
271
270
  )
272
271
  assert cassette["command"] == command
273
272