schemathesis 3.38.6__tar.gz → 3.38.8__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 (684) hide show
  1. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/workflows/codeql-analysis.yml +3 -3
  2. {schemathesis-3.38.6 → schemathesis-3.38.8}/.pre-commit-config.yaml +2 -2
  3. {schemathesis-3.38.6 → schemathesis-3.38.8}/PKG-INFO +1 -1
  4. {schemathesis-3.38.6 → schemathesis-3.38.8}/benches/coverage_phase.py +1 -1
  5. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/changelog.rst +27 -1
  6. {schemathesis-3.38.6 → schemathesis-3.38.8}/pyproject.toml +1 -1
  7. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/_hypothesis.py +84 -24
  8. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/__init__.py +15 -0
  9. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/generation/coverage.py +64 -44
  10. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/internal/checks.py +6 -0
  11. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/models.py +3 -1
  12. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/checks.py +14 -0
  13. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +4 -0
  14. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/test_cassettes.py +3 -1
  15. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/test_commands.py +0 -1
  16. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/coverage/test_combinations.py +4 -8
  17. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/coverage/test_phase.py +337 -139
  18. schemathesis-3.38.8/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[200].raw +32 -0
  19. schemathesis-3.38.8/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[406].raw +52 -0
  20. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_checks.py +30 -0
  21. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_lazy.py +1 -1
  22. schemathesis-3.38.8/typos.toml +2 -0
  23. schemathesis-3.38.6/typos.toml +0 -2
  24. {schemathesis-3.38.6 → schemathesis-3.38.8}/.dockerignore +0 -0
  25. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/FUNDING.yml +0 -0
  26. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  27. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  28. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  29. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/dependabot.yml +0 -0
  30. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/workflows/build.yml +0 -0
  31. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/workflows/codspeed.yml +0 -0
  32. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/workflows/commit.yml +0 -0
  33. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/workflows/example-build.yml +0 -0
  34. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/workflows/example-no-build.yml +0 -0
  35. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/workflows/master_update.yml +0 -0
  36. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/workflows/release.yml +0 -0
  37. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/workflows/test-corpus.yml +0 -0
  38. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/workflows/test-hypothesis.yml +0 -0
  39. {schemathesis-3.38.6 → schemathesis-3.38.8}/.github/workflows/update-pre-commit.yml +0 -0
  40. {schemathesis-3.38.6 → schemathesis-3.38.8}/.gitignore +0 -0
  41. {schemathesis-3.38.6 → schemathesis-3.38.8}/.readthedocs.yml +0 -0
  42. {schemathesis-3.38.6 → schemathesis-3.38.8}/.relint.yml +0 -0
  43. {schemathesis-3.38.6 → schemathesis-3.38.8}/.rstcheck.cfg +0 -0
  44. {schemathesis-3.38.6 → schemathesis-3.38.8}/.yamllint +0 -0
  45. {schemathesis-3.38.6 → schemathesis-3.38.8}/CITATION.cff +0 -0
  46. {schemathesis-3.38.6 → schemathesis-3.38.8}/CODE_OF_CONDUCT.md +0 -0
  47. {schemathesis-3.38.6 → schemathesis-3.38.8}/CONTRIBUTING.rst +0 -0
  48. {schemathesis-3.38.6 → schemathesis-3.38.8}/Dockerfile +0 -0
  49. {schemathesis-3.38.6 → schemathesis-3.38.8}/Dockerfile.bookworm +0 -0
  50. {schemathesis-3.38.6 → schemathesis-3.38.8}/LICENSE +0 -0
  51. {schemathesis-3.38.6 → schemathesis-3.38.8}/README.md +0 -0
  52. {schemathesis-3.38.6 → schemathesis-3.38.8}/SECURITY.md +0 -0
  53. {schemathesis-3.38.6 → schemathesis-3.38.8}/benches/cli.py +0 -0
  54. {schemathesis-3.38.6 → schemathesis-3.38.8}/benches/references.py +0 -0
  55. {schemathesis-3.38.6 → schemathesis-3.38.8}/benches/schema.py +0 -0
  56. {schemathesis-3.38.6 → schemathesis-3.38.8}/changelog.py +0 -0
  57. {schemathesis-3.38.6 → schemathesis-3.38.8}/codecov.yml +0 -0
  58. {schemathesis-3.38.6 → schemathesis-3.38.8}/corpus/data/graphql.tar.gz +0 -0
  59. {schemathesis-3.38.6 → schemathesis-3.38.8}/corpus/data/openapi-3.0.tar.gz +0 -0
  60. {schemathesis-3.38.6 → schemathesis-3.38.8}/corpus/data/openapi-3.1.tar.gz +0 -0
  61. {schemathesis-3.38.6 → schemathesis-3.38.8}/corpus/data/swagger-2.0.tar.gz +0 -0
  62. {schemathesis-3.38.6 → schemathesis-3.38.8}/corpus/tools.py +0 -0
  63. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/Makefile +0 -0
  64. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/additional-content.rst +0 -0
  65. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/api.rst +0 -0
  66. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/auth.rst +0 -0
  67. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/cli.rst +0 -0
  68. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/compatibility.rst +0 -0
  69. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/conf.py +0 -0
  70. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/continuous_integration.rst +0 -0
  71. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/contrib.rst +0 -0
  72. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/data-generation.rst +0 -0
  73. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/examples.rst +0 -0
  74. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/experimental.rst +0 -0
  75. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/extending.rst +0 -0
  76. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/faq.rst +0 -0
  77. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/getting-started.rst +0 -0
  78. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/graphql.rst +0 -0
  79. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/index.rst +0 -0
  80. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/python.rst +0 -0
  81. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/recipes.rst +0 -0
  82. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/requirements.txt +0 -0
  83. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/sanitizing.rst +0 -0
  84. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/service.rst +0 -0
  85. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/stateful.rst +0 -0
  86. {schemathesis-3.38.6 → schemathesis-3.38.8}/docs/targeted.rst +0 -0
  87. {schemathesis-3.38.6 → schemathesis-3.38.8}/example/Dockerfile +0 -0
  88. {schemathesis-3.38.6 → schemathesis-3.38.8}/example/README.md +0 -0
  89. {schemathesis-3.38.6 → schemathesis-3.38.8}/example/app.py +0 -0
  90. {schemathesis-3.38.6 → schemathesis-3.38.8}/example/compose.yml +0 -0
  91. {schemathesis-3.38.6 → schemathesis-3.38.8}/example/openapi.json +0 -0
  92. {schemathesis-3.38.6 → schemathesis-3.38.8}/example/requirements-app.in +0 -0
  93. {schemathesis-3.38.6 → schemathesis-3.38.8}/example/requirements-app.txt +0 -0
  94. {schemathesis-3.38.6 → schemathesis-3.38.8}/example/requirements-pytest.in +0 -0
  95. {schemathesis-3.38.6 → schemathesis-3.38.8}/example/requirements-pytest.txt +0 -0
  96. {schemathesis-3.38.6 → schemathesis-3.38.8}/example/tests/__init__.py +0 -0
  97. {schemathesis-3.38.6 → schemathesis-3.38.8}/example/tests/conftest.py +0 -0
  98. {schemathesis-3.38.6 → schemathesis-3.38.8}/example/tests/extensions.py +0 -0
  99. {schemathesis-3.38.6 → schemathesis-3.38.8}/example/tests/test_app.py +0 -0
  100. {schemathesis-3.38.6 → schemathesis-3.38.8}/img/demo.gif +0 -0
  101. {schemathesis-3.38.6 → schemathesis-3.38.8}/img/service_github_report.png +0 -0
  102. {schemathesis-3.38.6 → schemathesis-3.38.8}/mypy.ini +0 -0
  103. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/__init__.py +0 -0
  104. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/_compat.py +0 -0
  105. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/_dependency_versions.py +0 -0
  106. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/_lazy_import.py +0 -0
  107. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/_override.py +0 -0
  108. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/_patches.py +0 -0
  109. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/_rate_limiter.py +0 -0
  110. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/_xml.py +0 -0
  111. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/auths.py +0 -0
  112. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/checks.py +0 -0
  113. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/__main__.py +0 -0
  114. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/callbacks.py +0 -0
  115. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/cassettes.py +0 -0
  116. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/constants.py +0 -0
  117. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/context.py +0 -0
  118. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/debug.py +0 -0
  119. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/handlers.py +0 -0
  120. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/junitxml.py +0 -0
  121. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/options.py +0 -0
  122. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/output/__init__.py +0 -0
  123. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/output/default.py +0 -0
  124. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/output/short.py +0 -0
  125. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/reporting.py +0 -0
  126. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/cli/sanitization.py +0 -0
  127. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/code_samples.py +0 -0
  128. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/constants.py +0 -0
  129. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/contrib/__init__.py +0 -0
  130. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/contrib/openapi/__init__.py +0 -0
  131. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
  132. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
  133. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
  134. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/contrib/unique_data.py +0 -0
  135. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/exceptions.py +0 -0
  136. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/experimental/__init__.py +0 -0
  137. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/extra/__init__.py +0 -0
  138. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/extra/_aiohttp.py +0 -0
  139. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/extra/_flask.py +0 -0
  140. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/extra/_server.py +0 -0
  141. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/extra/pytest_plugin.py +0 -0
  142. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/failures.py +0 -0
  143. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/filters.py +0 -0
  144. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/fixups/__init__.py +0 -0
  145. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/fixups/fast_api.py +0 -0
  146. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/fixups/utf8_bom.py +0 -0
  147. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/generation/__init__.py +0 -0
  148. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/generation/_hypothesis.py +0 -0
  149. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/generation/_methods.py +0 -0
  150. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/graphql.py +0 -0
  151. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/hooks.py +0 -0
  152. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/internal/__init__.py +0 -0
  153. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/internal/copy.py +0 -0
  154. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/internal/datetime.py +0 -0
  155. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/internal/deprecation.py +0 -0
  156. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/internal/diff.py +0 -0
  157. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/internal/extensions.py +0 -0
  158. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/internal/jsonschema.py +0 -0
  159. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/internal/output.py +0 -0
  160. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/internal/result.py +0 -0
  161. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/internal/transformation.py +0 -0
  162. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/internal/validation.py +0 -0
  163. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/lazy.py +0 -0
  164. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/loaders.py +0 -0
  165. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/parameters.py +0 -0
  166. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/py.typed +0 -0
  167. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/runner/__init__.py +0 -0
  168. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/runner/events.py +0 -0
  169. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/runner/impl/__init__.py +0 -0
  170. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/runner/impl/context.py +0 -0
  171. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/runner/impl/core.py +0 -0
  172. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/runner/impl/solo.py +0 -0
  173. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/runner/impl/threadpool.py +0 -0
  174. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/runner/probes.py +0 -0
  175. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/runner/serialization.py +0 -0
  176. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/sanitization.py +0 -0
  177. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/schemas.py +0 -0
  178. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/serializers.py +0 -0
  179. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/service/__init__.py +0 -0
  180. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/service/auth.py +0 -0
  181. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/service/ci.py +0 -0
  182. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/service/client.py +0 -0
  183. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/service/constants.py +0 -0
  184. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/service/events.py +0 -0
  185. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/service/extensions.py +0 -0
  186. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/service/hosts.py +0 -0
  187. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/service/metadata.py +0 -0
  188. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/service/models.py +0 -0
  189. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/service/report.py +0 -0
  190. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/service/serialization.py +0 -0
  191. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/service/usage.py +0 -0
  192. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/__init__.py +0 -0
  193. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/__init__.py +0 -0
  194. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/_cache.py +0 -0
  195. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/loaders.py +0 -0
  196. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/nodes.py +0 -0
  197. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/scalars.py +0 -0
  198. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/schemas.py +0 -0
  199. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/graphql/validation.py +0 -0
  200. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/__init__.py +0 -0
  201. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/_cache.py +0 -0
  202. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
  203. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/constants.py +0 -0
  204. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/converter.py +0 -0
  205. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/definitions.py +0 -0
  206. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/examples.py +0 -0
  207. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
  208. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
  209. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
  210. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
  211. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
  212. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
  213. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
  214. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/formats.py +0 -0
  215. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/links.py +0 -0
  216. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/loaders.py +0 -0
  217. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/media_types.py +0 -0
  218. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
  219. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
  220. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/negative/types.py +0 -0
  221. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
  222. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/parameters.py +0 -0
  223. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/patterns.py +0 -0
  224. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/references.py +0 -0
  225. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/schemas.py +0 -0
  226. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/security.py +0 -0
  227. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/serialization.py +0 -0
  228. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
  229. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/stateful/statistic.py +0 -0
  230. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/stateful/types.py +0 -0
  231. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/utils.py +0 -0
  232. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/specs/openapi/validation.py +0 -0
  233. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/stateful/__init__.py +0 -0
  234. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/stateful/config.py +0 -0
  235. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/stateful/context.py +0 -0
  236. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/stateful/events.py +0 -0
  237. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/stateful/runner.py +0 -0
  238. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/stateful/sink.py +0 -0
  239. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/stateful/state_machine.py +0 -0
  240. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/stateful/statistic.py +0 -0
  241. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/stateful/validation.py +0 -0
  242. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/targets.py +0 -0
  243. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/throttling.py +0 -0
  244. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/transports/__init__.py +0 -0
  245. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/transports/asgi.py +0 -0
  246. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/transports/auth.py +0 -0
  247. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/transports/content_types.py +0 -0
  248. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/transports/headers.py +0 -0
  249. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/transports/responses.py +0 -0
  250. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/types.py +0 -0
  251. {schemathesis-3.38.6 → schemathesis-3.38.8}/src/schemathesis/utils.py +0 -0
  252. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/__init__.py +0 -0
  253. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -0
  254. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
  255. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
  256. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
  257. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
  258. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
  259. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/__init__.py +0 -0
  260. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/_graphql/__init__.py +0 -0
  261. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/_graphql/_fastapi/__init__.py +0 -0
  262. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/_graphql/_fastapi/app.py +0 -0
  263. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/_graphql/_flask/__init__.py +0 -0
  264. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/_graphql/_flask/app.py +0 -0
  265. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/_graphql/schema.py +0 -0
  266. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/cp1252_app.py +0 -0
  267. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/hooks.py +0 -0
  268. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/openapi/__init__.py +0 -0
  269. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/openapi/_aiohttp/__init__.py +0 -0
  270. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/openapi/_aiohttp/app.py +0 -0
  271. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/openapi/_aiohttp/handlers.py +0 -0
  272. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/openapi/_fastapi/__init__.py +0 -0
  273. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/openapi/_fastapi/app.py +0 -0
  274. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/openapi/_flask/__init__.py +0 -0
  275. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/openapi/_flask/app.py +0 -0
  276. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/apps/openapi/schema.py +0 -0
  277. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/auth/__init__.py +0 -0
  278. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
  279. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
  280. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
  281. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
  282. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
  283. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
  284. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
  285. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/auth/conftest.py +0 -0
  286. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/auth/test_cli.py +0 -0
  287. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/auth/test_provider.py +0 -0
  288. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/auth/test_pytest.py +0 -0
  289. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/checks/__init__.py +0 -0
  290. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/checks/test_checks.py +0 -0
  291. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__init__.py +0 -0
  292. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
  293. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
  294. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_deduplication_on_sanitized_header.raw +0 -0
  295. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args0].raw +0 -0
  296. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args10].raw +0 -0
  297. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args1].raw +0 -0
  298. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args2].raw +0 -0
  299. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args3].raw +0 -0
  300. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args4].raw +0 -0
  301. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args5].raw +0 -0
  302. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args6].raw +0 -0
  303. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args7].raw +0 -0
  304. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args8].raw +0 -0
  305. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args9].raw +0 -0
  306. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance_with_env_vars.raw +0 -0
  307. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +0 -0
  308. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +0 -0
  309. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
  310. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
  311. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
  312. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
  313. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
  314. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
  315. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
  316. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
  317. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
  318. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +0 -0
  319. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +0 -0
  320. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +0 -0
  321. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +0 -0
  322. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +0 -0
  323. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +0 -0
  324. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +0 -0
  325. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +0 -0
  326. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
  327. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
  328. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
  329. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
  330. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
  331. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
  332. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
  333. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
  334. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
  335. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
  336. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +0 -0
  337. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_deprecated_filters[Open API 3.0].raw +0 -0
  338. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
  339. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
  340. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
  341. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
  342. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
  343. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +0 -0
  344. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +0 -0
  345. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +0 -0
  346. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
  347. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +0 -0
  348. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +0 -0
  349. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +0 -0
  350. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
  351. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
  352. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
  353. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
  354. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
  355. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
  356. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
  357. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
  358. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +0 -0
  359. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +0 -0
  360. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +0 -0
  361. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +0 -0
  362. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +0 -0
  363. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +0 -0
  364. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +0 -0
  365. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +0 -0
  366. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
  367. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
  368. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
  369. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
  370. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
  371. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
  372. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
  373. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
  374. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
  375. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +0 -0
  376. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +0 -0
  377. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
  378. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
  379. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
  380. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
  381. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +0 -0
  382. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +0 -0
  383. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +0 -0
  384. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +0 -0
  385. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +0 -0
  386. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +0 -0
  387. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +0 -0
  388. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +0 -0
  389. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
  390. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
  391. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
  392. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
  393. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
  394. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
  395. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
  396. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-1].raw +0 -0
  397. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-2].raw +0 -0
  398. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_filtered_out[Open API 3.0].raw +0 -0
  399. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_generation_config[Open API 3.0].raw +0 -0
  400. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_keyboard_interrupt[Open API 3.0].raw +0 -0
  401. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_max_failures[Open API 3.0].raw +0 -0
  402. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_proxy_error[Open API 3.0].raw +0 -0
  403. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only[Open API 3.0].raw +0 -0
  404. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only_with_error[Open API 3.0].raw +0 -0
  405. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
  406. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
  407. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
  408. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +0 -0
  409. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +0 -0
  410. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +0 -0
  411. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +0 -0
  412. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +0 -0
  413. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +0 -0
  414. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1].raw +0 -0
  415. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5].raw +0 -0
  416. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1].raw +0 -0
  417. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5].raw +0 -0
  418. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1].raw +0 -0
  419. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5].raw +0 -0
  420. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1].raw +0 -0
  421. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5].raw +0 -0
  422. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
  423. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
  424. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
  425. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
  426. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
  427. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
  428. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
  429. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
  430. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +0 -0
  431. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +0 -0
  432. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +0 -0
  433. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +0 -0
  434. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +0 -0
  435. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +0 -0
  436. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +0 -0
  437. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +0 -0
  438. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
  439. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
  440. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
  441. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
  442. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
  443. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
  444. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
  445. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
  446. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
  447. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
  448. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
  449. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
  450. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
  451. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
  452. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
  453. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
  454. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
  455. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
  456. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
  457. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
  458. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
  459. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
  460. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
  461. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
  462. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
  463. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
  464. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
  465. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
  466. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
  467. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args37].raw +0 -0
  468. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
  469. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
  470. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
  471. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
  472. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
  473. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
  474. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
  475. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
  476. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
  477. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
  478. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_stateful_explicit_examples_with_filters[Open API 3.0].raw +0 -0
  479. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +0 -0
  480. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +0 -0
  481. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +0 -0
  482. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +0 -0
  483. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +0 -0
  484. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +0 -0
  485. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +0 -0
  486. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +0 -0
  487. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
  488. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unresolvable_links[Open API 3.0].raw +0 -0
  489. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
  490. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +0 -0
  491. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +0 -0
  492. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +0 -0
  493. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +0 -0
  494. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +0 -0
  495. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +0 -0
  496. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +0 -0
  497. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +0 -0
  498. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
  499. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
  500. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
  501. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +0 -0
  502. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +0 -0
  503. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +0 -0
  504. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/cert.pem +0 -0
  505. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/conftest.py +0 -0
  506. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/output/__init__.py +0 -0
  507. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/output/test_default.py +0 -0
  508. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/test_asgi.py +0 -0
  509. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/test_callbacks.py +0 -0
  510. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/test_checks.py +0 -0
  511. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/test_crashes.py +0 -0
  512. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/test_hooks.py +0 -0
  513. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/test_junitxml.py +0 -0
  514. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/test_options.py +0 -0
  515. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/test_reporting.py +0 -0
  516. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/cli/test_targeted.py +0 -0
  517. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +0 -0
  518. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +0 -0
  519. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/code_samples/conftest.py +0 -0
  520. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/code_samples/test_curl.py +0 -0
  521. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/code_samples/test_python.py +0 -0
  522. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/conftest.py +0 -0
  523. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
  524. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
  525. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
  526. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
  527. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +0 -0
  528. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
  529. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
  530. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +0 -0
  531. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
  532. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/contrib/openapi/formats/test_uuid.py +0 -0
  533. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
  534. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/contrib/test_install.py +0 -0
  535. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/contrib/test_unique_data.py +0 -0
  536. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/coverage/__init__.py +0 -0
  537. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/coverage/test_examples.py +0 -0
  538. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/data/petstore_v2.yaml +0 -0
  539. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/data/petstore_v3.yaml +0 -0
  540. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/data/relative_files/components/parameters.yaml +0 -0
  541. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/data/relative_files/components/responses.yaml +0 -0
  542. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/data/relative_files/components/schemas.yaml +0 -0
  543. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/data/relative_files/main.yaml +0 -0
  544. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/data/relative_files/paths/user-account.yaml +0 -0
  545. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/data/simple_openapi.yaml +0 -0
  546. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/data/simple_swagger.yaml +0 -0
  547. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
  548. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/experimental/conftest.py +0 -0
  549. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/experimental/test_experiments.py +0 -0
  550. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/experimental/test_openapi_3_1.py +0 -0
  551. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/extra/__init__.py +0 -0
  552. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/extra/test_aiohttp.py +0 -0
  553. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/filters/__init__.py +0 -0
  554. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/filters/test_expressions.py +0 -0
  555. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/filters/test_matching.py +0 -0
  556. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/fixtures/__init__.py +0 -0
  557. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/fixtures/ctx.py +0 -0
  558. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/hooks/test_filter_operations.py +0 -0
  559. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/hooks/test_filters.py +0 -0
  560. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/hooks/test_hooks.py +0 -0
  561. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/loaders/conftest.py +0 -0
  562. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/loaders/test_app.py +0 -0
  563. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/loaders/test_common.py +0 -0
  564. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/loaders/test_graphql.py +0 -0
  565. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/loaders/test_openapi.py +0 -0
  566. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/loaders/test_yaml.py +0 -0
  567. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/runner/__init__.py +0 -0
  568. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/runner/test_checks.py +0 -0
  569. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/runner/test_events.py +0 -0
  570. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/runner/test_probes.py +0 -0
  571. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/runner/test_runner.py +0 -0
  572. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__init__.py +0 -0
  573. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_client_error_on_project_details.raw +0 -0
  574. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +0 -0
  575. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
  576. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +0 -0
  577. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
  578. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
  579. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_unauthorized.raw +0 -0
  580. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +0 -0
  581. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
  582. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
  583. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +0 -0
  584. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_custom_format.raw +0 -0
  585. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +0 -0
  586. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +0 -0
  587. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +0 -0
  588. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +0 -0
  589. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +0 -0
  590. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +0 -0
  591. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +0 -0
  592. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +0 -0
  593. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +0 -0
  594. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +0 -0
  595. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +0 -0
  596. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +0 -0
  597. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +0 -0
  598. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +0 -0
  599. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/conftest.py +0 -0
  600. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/test_auth.py +0 -0
  601. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/test_ci.py +0 -0
  602. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/test_cli.py +0 -0
  603. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/test_extensions.py +0 -0
  604. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/test_report.py +0 -0
  605. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/test_serialization.py +0 -0
  606. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/service/test_usage.py +0 -0
  607. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
  608. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
  609. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
  610. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
  611. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
  612. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +0 -0
  613. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
  614. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/graphql/test_basic.py +0 -0
  615. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/graphql/test_custom_scalars.py +0 -0
  616. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/graphql/test_pytest.py +0 -0
  617. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
  618. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
  619. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_auth_via_override_cli[cookie].raw +0 -0
  620. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_auth_via_override_cli[query].raw +0 -0
  621. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_explicit_auth_cli[Open API 3.0].raw +0 -0
  622. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-False].raw +0 -0
  623. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-True].raw +0 -0
  624. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
  625. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/blank.pdf +0 -0
  626. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/conftest.py +0 -0
  627. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/parameters/test_forms.py +0 -0
  628. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/parameters/test_non_payload.py +0 -0
  629. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
  630. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/stateful/__init__.py +0 -0
  631. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/stateful/conftest.py +0 -0
  632. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/stateful/test_config.py +0 -0
  633. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/stateful/test_runner.py +0 -0
  634. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/stateful/test_stateful.py +0 -0
  635. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_examples.py +0 -0
  636. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_expressions.py +0 -0
  637. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_hypothesis.py +0 -0
  638. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_ignored_auth.py +0 -0
  639. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_links.py +0 -0
  640. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_media_types.py +0 -0
  641. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_negative.py +0 -0
  642. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_parameters.py +0 -0
  643. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_patterns.py +0 -0
  644. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_randomized.py +0 -0
  645. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_schemas.py +0 -0
  646. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_security.py +0 -0
  647. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_serializing.py +0 -0
  648. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_utils.py +0 -0
  649. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/specs/openapi/test_validation.py +0 -0
  650. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_app.py +0 -0
  651. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_asgi.py +0 -0
  652. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_async.py +0 -0
  653. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_common_parameters.py +0 -0
  654. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_converter.py +0 -0
  655. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_dereferencing.py +0 -0
  656. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_direct_access.py +0 -0
  657. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_examples.py +0 -0
  658. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_filters.py +0 -0
  659. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_fixups.py +0 -0
  660. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_hypothesis.py +0 -0
  661. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_internal.py +0 -0
  662. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_models.py +0 -0
  663. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_output.py +0 -0
  664. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_package.py +0 -0
  665. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_parameters.py +0 -0
  666. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_parametrization.py +0 -0
  667. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_petstore.py +0 -0
  668. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_pytest.py +0 -0
  669. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_rate_limit.py +0 -0
  670. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_recoverable_errors.py +0 -0
  671. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_required.py +0 -0
  672. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_sanitizing_output.py +0 -0
  673. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_schemas.py +0 -0
  674. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_serialization.py +0 -0
  675. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_stateful.py +0 -0
  676. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_unittest.py +0 -0
  677. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_utils.py +0 -0
  678. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/test_wsgi.py +0 -0
  679. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/transports/test_content_types.py +0 -0
  680. {schemathesis-3.38.6 → schemathesis-3.38.8}/test/utils.py +0 -0
  681. {schemathesis-3.38.6 → schemathesis-3.38.8}/test-corpus/conftest.py +0 -0
  682. {schemathesis-3.38.6 → schemathesis-3.38.8}/test-corpus/test_corpus.py +0 -0
  683. {schemathesis-3.38.6 → schemathesis-3.38.8}/test_server.sh +0 -0
  684. {schemathesis-3.38.6 → schemathesis-3.38.8}/tox.ini +0 -0
@@ -38,7 +38,7 @@ jobs:
38
38
 
39
39
  # Initializes the CodeQL tools for scanning.
40
40
  - name: Initialize CodeQL
41
- uses: github/codeql-action/init@v3.27.1
41
+ uses: github/codeql-action/init@v3.27.5
42
42
  with:
43
43
  languages: ${{ matrix.language }}
44
44
  # If you wish to specify custom queries, you can do so here or in a config file.
@@ -49,7 +49,7 @@ jobs:
49
49
  # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
50
50
  # If this step fails, then you should remove it and run the build manually (see below)
51
51
  - name: Autobuild
52
- uses: github/codeql-action/autobuild@v3.27.1
52
+ uses: github/codeql-action/autobuild@v3.27.5
53
53
 
54
54
  # ℹ️ Command-line programs to run using the OS shell.
55
55
  # 📚 https://git.io/JvXDl
@@ -63,4 +63,4 @@ jobs:
63
63
  # make release
64
64
 
65
65
  - name: Perform CodeQL Analysis
66
- uses: github/codeql-action/analyze@v3.27.1
66
+ uses: github/codeql-action/analyze@v3.27.5
@@ -38,12 +38,12 @@ repos:
38
38
  additional_dependencies: [types-click, types-requests, types-PyYAML]
39
39
 
40
40
  - repo: https://github.com/astral-sh/ruff-pre-commit
41
- rev: v0.7.3
41
+ rev: v0.8.0
42
42
  hooks:
43
43
  - id: ruff-format
44
44
 
45
45
  - repo: https://github.com/astral-sh/ruff-pre-commit
46
- rev: v0.7.3
46
+ rev: v0.8.0
47
47
  hooks:
48
48
  - id: ruff
49
49
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: schemathesis
3
- Version: 3.38.6
3
+ Version: 3.38.8
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
@@ -4,7 +4,7 @@ import pytest
4
4
 
5
5
  from schemathesis.generation.coverage import cover_schema_iter, CoverageContext
6
6
 
7
- CONTEXTS = [CoverageContext().with_positive(), CoverageContext().with_negative()]
7
+ CONTEXTS = [CoverageContext(location="body").with_positive(), CoverageContext(location="body").with_negative()]
8
8
  CONTEXT_NAMES = [",".join([m.value for m in ctx.data_generation_methods]) for ctx in CONTEXTS]
9
9
 
10
10
  BASIC_TYPES = [
@@ -1,9 +1,35 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
- :version:`Unreleased <v3.38.6...HEAD>` - TBD
4
+ :version:`Unreleased <v3.38.8...HEAD>` - TBD
5
5
  --------------------------------------------
6
6
 
7
+ .. _v3.38.8:
8
+
9
+ :version:`3.38.8 <v3.38.7...v3.38.8>` - 2024-11-28
10
+ --------------------------------------------------
11
+
12
+ **Fixed**
13
+
14
+ - ``UnicodeEncodeError`` when sending a request during the coverage phase.
15
+ - Duplicated test cases for missing required headers during the coverage phase.
16
+ - Generating positive test cases when they are explicitly excluded via configuration during the coverage phase.
17
+
18
+ .. _v3.38.7:
19
+
20
+ :version:`3.38.7 <v3.38.6...v3.38.7>` - 2024-11-16
21
+ --------------------------------------------------
22
+
23
+ **Added**
24
+
25
+ - Generating duplicate query parameters during the coverage phase.
26
+ - Generating cases with arbitrary HTTP methods during the coverage phase.
27
+
28
+ **Fixed**
29
+
30
+ - Not sending negated query parameters in some cases during the coverage phase.
31
+ - Incorrect ``data_generation_method`` reported during the coverage phase in some cases.
32
+
7
33
  .. _v3.38.6:
8
34
 
9
35
  :version:`3.38.6 <v3.38.5...v3.38.6>` - 2024-11-12
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "schemathesis"
7
- version = "3.38.6"
7
+ version = "3.38.8"
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" }]
@@ -224,8 +224,11 @@ def _iter_coverage_cases(
224
224
  from .specs.openapi.constants import LOCATION_TO_CONTAINER
225
225
  from .specs.openapi.examples import find_in_responses, find_matching_in_responses
226
226
 
227
- def _stringify_value(val: Any) -> str:
227
+ def _stringify_value(val: Any, location: str) -> str | list[str]:
228
228
  if isinstance(val, list):
229
+ if location == "query":
230
+ # Having a list here ensures there will be multiple query parameters wit the same name
231
+ return [json.dumps(item) for item in val]
229
232
  # use comma-separated values style for arrays
230
233
  return ",".join(json.dumps(sub) for sub in val)
231
234
  return json.dumps(val)
@@ -234,20 +237,20 @@ def _iter_coverage_cases(
234
237
  template: dict[str, Any] = {}
235
238
  responses = find_in_responses(operation)
236
239
  for parameter in operation.iter_parameters():
240
+ location = parameter.location
241
+ name = parameter.name
237
242
  schema = parameter.as_json_schema(operation, update_quantifiers=False)
238
243
  for value in find_matching_in_responses(responses, parameter.name):
239
244
  schema.setdefault("examples", []).append(value)
240
245
  gen = coverage.cover_schema_iter(
241
- coverage.CoverageContext(data_generation_methods=data_generation_methods), schema
246
+ coverage.CoverageContext(location=location, data_generation_methods=data_generation_methods), schema
242
247
  )
243
248
  value = next(gen, NOT_SET)
244
249
  if isinstance(value, NotSet):
245
250
  continue
246
- location = parameter.location
247
- name = parameter.name
248
251
  container = template.setdefault(LOCATION_TO_CONTAINER[location], {})
249
- if location in ("header", "cookie", "path") and not isinstance(value.value, str):
250
- container[name] = _stringify_value(value.value)
252
+ if location in ("header", "cookie", "path", "query") and not isinstance(value.value, str):
253
+ container[name] = _stringify_value(value.value, location)
251
254
  else:
252
255
  container[name] = value.value
253
256
  generators[(location, name)] = gen
@@ -260,7 +263,7 @@ def _iter_coverage_cases(
260
263
  if examples:
261
264
  schema.setdefault("examples", []).extend(examples)
262
265
  gen = coverage.cover_schema_iter(
263
- coverage.CoverageContext(data_generation_methods=data_generation_methods), schema
266
+ coverage.CoverageContext(location="body", data_generation_methods=data_generation_methods), schema
264
267
  )
265
268
  value = next(gen, NOT_SET)
266
269
  if isinstance(value, NotSet):
@@ -297,8 +300,8 @@ def _iter_coverage_cases(
297
300
  container_name = LOCATION_TO_CONTAINER[location]
298
301
  container = template[container_name]
299
302
  for value in gen:
300
- if location in ("header", "cookie", "path") and not isinstance(value.value, str):
301
- generated = _stringify_value(value.value)
303
+ if location in ("header", "cookie", "path", "query") and not isinstance(value.value, str):
304
+ generated = _stringify_value(value.value, location)
302
305
  else:
303
306
  generated = value.value
304
307
  case = operation.make_case(**{**template, container_name: {**container, name: generated}})
@@ -310,8 +313,32 @@ def _iter_coverage_cases(
310
313
  parameter_location=location,
311
314
  )
312
315
  yield case
313
- # Generate missing required parameters
314
316
  if DataGenerationMethod.negative in data_generation_methods:
317
+ # Generate HTTP methods that are not specified in the spec
318
+ methods = {"get", "put", "post", "delete", "options", "head", "patch", "trace"} - set(
319
+ operation.schema[operation.path]
320
+ )
321
+ for method in methods:
322
+ case = operation.make_case(**template)
323
+ case._explicit_method = method
324
+ case.data_generation_method = DataGenerationMethod.negative
325
+ case.meta = _make_meta(description=f"Unspecified HTTP method: {method}")
326
+ yield case
327
+ # Generate duplicate query parameters
328
+ if operation.query:
329
+ container = template["query"]
330
+ for parameter in operation.query:
331
+ value = container[parameter.name]
332
+ case = operation.make_case(**{**template, "query": {**container, parameter.name: [value, value]}})
333
+ case.data_generation_method = DataGenerationMethod.negative
334
+ case.meta = _make_meta(
335
+ description=f"Duplicate `{parameter.name}` query parameter",
336
+ location=None,
337
+ parameter=parameter.name,
338
+ parameter_location="query",
339
+ )
340
+ yield case
341
+ # Generate missing required parameters
315
342
  for parameter in operation.iter_parameters():
316
343
  if parameter.is_required and parameter.location != "path":
317
344
  name = parameter.name
@@ -324,7 +351,7 @@ def _iter_coverage_cases(
324
351
  case.data_generation_method = DataGenerationMethod.negative
325
352
  case.meta = _make_meta(
326
353
  description=f"Missing `{name}` at {location}",
327
- location=parameter.location,
354
+ location=None,
328
355
  parameter=name,
329
356
  parameter_location=location,
330
357
  )
@@ -348,21 +375,26 @@ def _iter_coverage_cases(
348
375
 
349
376
  # Helper function to create and yield a case
350
377
  def make_case(
351
- container_values: dict, description: str, _location: str, _container_name: str, _parameter: str | None
378
+ container_values: dict,
379
+ description: str,
380
+ _location: str,
381
+ _container_name: str,
382
+ _parameter: str | None,
383
+ _data_generation_method: DataGenerationMethod,
352
384
  ) -> Case:
353
- if _location in ("header", "cookie", "path"):
385
+ if _location in ("header", "cookie", "path", "query"):
354
386
  container = {
355
- name: _stringify_value(val) if not isinstance(val, str) else val
387
+ name: _stringify_value(val, _location) if not isinstance(val, str) else val
356
388
  for name, val in container_values.items()
357
389
  }
358
390
  else:
359
391
  container = container_values
360
392
 
361
393
  case = operation.make_case(**{**template, _container_name: container})
362
- case.data_generation_method = DataGenerationMethod.positive
394
+ case.data_generation_method = _data_generation_method
363
395
  case.meta = _make_meta(
364
396
  description=description,
365
- location=_location,
397
+ location=None,
366
398
  parameter=_parameter,
367
399
  parameter_location=_location,
368
400
  )
@@ -385,38 +417,66 @@ def _iter_coverage_cases(
385
417
  subschema: dict[str, Any], _location: str, _container_name: str
386
418
  ) -> Generator[Case, None, None]:
387
419
  for more in coverage.cover_schema_iter(
388
- coverage.CoverageContext(data_generation_methods=[DataGenerationMethod.negative]),
420
+ coverage.CoverageContext(location=_location, data_generation_methods=[DataGenerationMethod.negative]),
389
421
  subschema,
390
422
  ):
391
- yield make_case(more.value, more.description, _location, _container_name, more.parameter)
423
+ yield make_case(
424
+ more.value,
425
+ more.description,
426
+ _location,
427
+ _container_name,
428
+ more.parameter,
429
+ DataGenerationMethod.negative,
430
+ )
392
431
 
393
432
  # 1. Generate only required properties
394
433
  if required and all_params != required:
395
434
  only_required = {k: v for k, v in base_container.items() if k in required}
396
- yield make_case(only_required, "Only required properties", location, container_name, None)
435
+ if DataGenerationMethod.positive in data_generation_methods:
436
+ yield make_case(
437
+ only_required,
438
+ "Only required properties",
439
+ location,
440
+ container_name,
441
+ None,
442
+ DataGenerationMethod.positive,
443
+ )
397
444
  if DataGenerationMethod.negative in data_generation_methods:
398
445
  subschema = _combination_schema(only_required, required, parameter_set)
399
- yield from _yield_negative(subschema, location, container_name)
446
+ for case in _yield_negative(subschema, location, container_name):
447
+ # Already generated in one of the blocks above
448
+ if location != "path" and not case.meta.description.startswith("Missing required property"):
449
+ yield case
400
450
 
401
451
  # 2. Generate combinations with required properties and one optional property
402
452
  for opt_param in optional:
403
453
  combo = {k: v for k, v in base_container.items() if k in required or k == opt_param}
404
- if combo != base_container:
454
+ if combo != base_container and DataGenerationMethod.positive in data_generation_methods:
405
455
  yield make_case(
406
- combo, f"All required properties and optional '{opt_param}'", location, container_name, None
456
+ combo,
457
+ f"All required properties and optional '{opt_param}'",
458
+ location,
459
+ container_name,
460
+ None,
461
+ DataGenerationMethod.positive,
407
462
  )
408
463
  if DataGenerationMethod.negative in data_generation_methods:
409
464
  subschema = _combination_schema(combo, required, parameter_set)
410
465
  yield from _yield_negative(subschema, location, container_name)
411
466
 
412
467
  # 3. Generate one combination for each size from 2 to N-1 of optional parameters
413
- if len(optional) > 1:
468
+ if len(optional) > 1 and DataGenerationMethod.positive in data_generation_methods:
414
469
  for size in range(2, len(optional)):
415
470
  for combination in combinations(optional, size):
416
471
  combo = {k: v for k, v in base_container.items() if k in required or k in combination}
417
472
  if combo != base_container:
418
473
  yield make_case(
419
- combo, f"All required and {size} optional properties", location, container_name, None
474
+ combo,
475
+ f"All required and {size} optional properties",
476
+ location,
477
+ container_name,
478
+ None,
479
+ DataGenerationMethod.positive,
420
480
  )
421
481
 
422
482
 
@@ -323,6 +323,15 @@ REPORT_TO_SERVICE = ReportToService()
323
323
  multiple=True,
324
324
  metavar="",
325
325
  )
326
+ @grouped_option(
327
+ "--experimental-missing-required-header-allowed-statuses",
328
+ "missing_required_header_allowed_statuses",
329
+ help="Comma-separated list of status codes expected for test cases with a missing required header",
330
+ type=CsvListChoice(),
331
+ callback=callbacks.convert_status_codes,
332
+ metavar="",
333
+ envvar="SCHEMATHESIS_EXPERIMENTAL_MISSING_REQUIRED_HEADER_ALLOWED_STATUSES",
334
+ )
326
335
  @grouped_option(
327
336
  "--experimental-positive-data-acceptance-allowed-statuses",
328
337
  "positive_data_acceptance_allowed_statuses",
@@ -855,6 +864,7 @@ def run(
855
864
  set_cookie: dict[str, str],
856
865
  set_path: dict[str, str],
857
866
  experiments: list,
867
+ missing_required_header_allowed_statuses: list[str],
858
868
  positive_data_acceptance_allowed_statuses: list[str],
859
869
  negative_data_rejection_allowed_statuses: list[str],
860
870
  checks: Iterable[str] = DEFAULT_CHECKS_NAMES,
@@ -1172,6 +1182,11 @@ def run(
1172
1182
  selected_checks += (positive_data_acceptance,)
1173
1183
  if positive_data_acceptance_allowed_statuses:
1174
1184
  checks_config.positive_data_acceptance.allowed_statuses = positive_data_acceptance_allowed_statuses
1185
+ if missing_required_header_allowed_statuses:
1186
+ from ..specs.openapi.checks import missing_required_header
1187
+
1188
+ selected_checks += (missing_required_header,)
1189
+ checks_config.missing_required_header.allowed_statuses = missing_required_header_allowed_statuses
1175
1190
  if negative_data_rejection_allowed_statuses:
1176
1191
  checks_config.negative_data_rejection.allowed_statuses = negative_data_rejection_allowed_statuses
1177
1192
 
@@ -21,6 +21,7 @@ from ..internal.copy import fast_deepcopy
21
21
  from ..specs.openapi.converter import update_pattern_in_schema
22
22
  from ..specs.openapi.formats import STRING_FORMATS, get_default_format_strategies
23
23
  from ..specs.openapi.patterns import update_quantifier
24
+ from ..transports.headers import has_invalid_characters, is_latin_1_encodable
24
25
  from ._hypothesis import get_single_example
25
26
  from ._methods import DataGenerationMethod
26
27
 
@@ -103,42 +104,55 @@ def cached_draw(strategy: st.SearchStrategy) -> Any:
103
104
  @dataclass
104
105
  class CoverageContext:
105
106
  data_generation_methods: list[DataGenerationMethod]
106
- location_stack: list[str | int]
107
+ location: str
108
+ path: list[str | int]
107
109
 
108
- __slots__ = ("data_generation_methods", "location_stack")
110
+ __slots__ = ("location", "data_generation_methods", "path")
109
111
 
110
112
  def __init__(
111
113
  self,
114
+ *,
115
+ location: str,
112
116
  data_generation_methods: list[DataGenerationMethod] | None = None,
113
- location_stack: list[str | int] | None = None,
117
+ path: list[str | int] | None = None,
114
118
  ) -> None:
119
+ self.location = location
115
120
  self.data_generation_methods = (
116
121
  data_generation_methods if data_generation_methods is not None else DataGenerationMethod.all()
117
122
  )
118
- self.location_stack = location_stack or []
123
+ self.path = path or []
119
124
 
120
125
  @contextmanager
121
- def location(self, key: str | int) -> Generator[None, None, None]:
122
- self.location_stack.append(key)
126
+ def at(self, key: str | int) -> Generator[None, None, None]:
127
+ self.path.append(key)
123
128
  try:
124
129
  yield
125
130
  finally:
126
- self.location_stack.pop()
131
+ self.path.pop()
127
132
 
128
133
  @property
129
- def current_location(self) -> str:
130
- return "/" + "/".join(str(key) for key in self.location_stack)
134
+ def current_path(self) -> str:
135
+ return "/" + "/".join(str(key) for key in self.path)
131
136
 
132
137
  def with_positive(self) -> CoverageContext:
133
138
  return CoverageContext(
134
- data_generation_methods=[DataGenerationMethod.positive], location_stack=self.location_stack
139
+ location=self.location,
140
+ data_generation_methods=[DataGenerationMethod.positive],
141
+ path=self.path,
135
142
  )
136
143
 
137
144
  def with_negative(self) -> CoverageContext:
138
145
  return CoverageContext(
139
- data_generation_methods=[DataGenerationMethod.negative], location_stack=self.location_stack
146
+ location=self.location,
147
+ data_generation_methods=[DataGenerationMethod.negative],
148
+ path=self.path,
140
149
  )
141
150
 
151
+ def is_valid_for_location(self, value: Any) -> bool:
152
+ if self.location in ("header", "cookie") and isinstance(value, str):
153
+ return is_latin_1_encodable(value) and not has_invalid_characters("", value)
154
+ return True
155
+
142
156
  def generate_from(self, strategy: st.SearchStrategy) -> Any:
143
157
  return cached_draw(strategy)
144
158
 
@@ -322,11 +336,11 @@ def cover_schema_iter(
322
336
  if DataGenerationMethod.negative in ctx.data_generation_methods:
323
337
  template = None
324
338
  for key, value in schema.items():
325
- with _ignore_unfixable(), ctx.location(key):
339
+ with _ignore_unfixable(), ctx.at(key):
326
340
  if key == "enum":
327
- yield from _negative_enum(ctx, value)
341
+ yield from _negative_enum(ctx, value, seen)
328
342
  elif key == "const":
329
- for value_ in _negative_enum(ctx, [value]):
343
+ for value_ in _negative_enum(ctx, [value], seen):
330
344
  k = _to_hashable_key(value_.value)
331
345
  if k not in seen:
332
346
  yield value_
@@ -350,21 +364,17 @@ def cover_schema_iter(
350
364
  elif key == "maximum":
351
365
  next = value + 1
352
366
  if next not in seen:
353
- yield NegativeValue(
354
- next, description="Value greater than maximum", location=ctx.current_location
355
- )
367
+ yield NegativeValue(next, description="Value greater than maximum", location=ctx.current_path)
356
368
  seen.add(next)
357
369
  elif key == "minimum":
358
370
  next = value - 1
359
371
  if next not in seen:
360
- yield NegativeValue(
361
- next, description="Value smaller than minimum", location=ctx.current_location
362
- )
372
+ yield NegativeValue(next, description="Value smaller than minimum", location=ctx.current_path)
363
373
  seen.add(next)
364
374
  elif key == "exclusiveMaximum" or key == "exclusiveMinimum" and value not in seen:
365
375
  verb = "greater" if key == "exclusiveMaximum" else "smaller"
366
376
  limit = "maximum" if key == "exclusiveMaximum" else "minimum"
367
- yield NegativeValue(value, description=f"Value {verb} than {limit}", location=ctx.current_location)
377
+ yield NegativeValue(value, description=f"Value {verb} than {limit}", location=ctx.current_path)
368
378
  seen.add(value)
369
379
  elif key == "multipleOf":
370
380
  for value_ in _negative_multiple_of(ctx, schema, value):
@@ -391,7 +401,7 @@ def cover_schema_iter(
391
401
  k = _to_hashable_key(value)
392
402
  if k not in seen:
393
403
  yield NegativeValue(
394
- value, description="String smaller than minLength", location=ctx.current_location
404
+ value, description="String smaller than minLength", location=ctx.current_path
395
405
  )
396
406
  seen.add(k)
397
407
  elif key == "maxLength" and value < BUFFER_SIZE:
@@ -413,7 +423,7 @@ def cover_schema_iter(
413
423
  k = _to_hashable_key(value)
414
424
  if k not in seen:
415
425
  yield NegativeValue(
416
- value, description="String larger than maxLength", location=ctx.current_location
426
+ value, description="String larger than maxLength", location=ctx.current_path
417
427
  )
418
428
  seen.add(k)
419
429
  except (InvalidArgument, Unsatisfiable):
@@ -428,12 +438,12 @@ def cover_schema_iter(
428
438
  yield NegativeValue(
429
439
  {**template, UNKNOWN_PROPERTY_KEY: UNKNOWN_PROPERTY_VALUE},
430
440
  description="Object with unexpected properties",
431
- location=ctx.current_location,
441
+ location=ctx.current_path,
432
442
  )
433
443
  elif key == "allOf":
434
444
  nctx = ctx.with_negative()
435
445
  if len(value) == 1:
436
- with nctx.location(0):
446
+ with nctx.at(0):
437
447
  yield from cover_schema_iter(nctx, value[0], seen)
438
448
  else:
439
449
  with _ignore_unfixable():
@@ -443,7 +453,7 @@ def cover_schema_iter(
443
453
  nctx = ctx.with_negative()
444
454
  # NOTE: Other sub-schemas are not filtered out
445
455
  for idx, sub_schema in enumerate(value):
446
- with nctx.location(idx):
456
+ with nctx.at(idx):
447
457
  yield from cover_schema_iter(nctx, sub_schema, seen)
448
458
 
449
459
 
@@ -487,15 +497,17 @@ def _positive_string(ctx: CoverageContext, schema: dict) -> Generator[GeneratedV
487
497
  examples = schema.get("examples")
488
498
  default = schema.get("default")
489
499
  if example or examples or default:
490
- if example:
500
+ if example and ctx.is_valid_for_location(example):
491
501
  yield PositiveValue(example, description="Example value")
492
502
  if examples:
493
503
  for example in examples:
494
- yield PositiveValue(example, description="Example value")
504
+ if ctx.is_valid_for_location(example):
505
+ yield PositiveValue(example, description="Example value")
495
506
  if (
496
507
  default
497
508
  and not (example is not None and default == example)
498
509
  and not (examples is not None and any(default == ex for ex in examples))
510
+ and ctx.is_valid_for_location(default)
499
511
  ):
500
512
  yield PositiveValue(default, description="Default value")
501
513
  elif not min_length and not max_length:
@@ -744,13 +756,20 @@ def select_combinations(optional: list[str]) -> Iterator[tuple[str, ...]]:
744
756
  yield next(combinations(optional, size))
745
757
 
746
758
 
747
- def _negative_enum(ctx: CoverageContext, value: list) -> Generator[GeneratedValue, None, None]:
759
+ def _negative_enum(
760
+ ctx: CoverageContext, value: list, seen: set[Any | tuple[type, str]]
761
+ ) -> Generator[GeneratedValue, None, None]:
748
762
  def is_not_in_value(x: Any) -> bool:
749
- return x not in value
763
+ if x in value:
764
+ return False
765
+ _hashed = _to_hashable_key(x)
766
+ return _hashed not in seen
750
767
 
751
- strategy = JSON_STRATEGY.filter(is_not_in_value)
752
- # The exact negative value is not important here
753
- yield NegativeValue(ctx.generate_from(strategy), description="Invalid enum value", location=ctx.current_location)
768
+ strategy = (st.none() | st.booleans() | NUMERIC_STRATEGY | st.text()).filter(is_not_in_value)
769
+ value = ctx.generate_from(strategy)
770
+ yield NegativeValue(value, description="Invalid enum value", location=ctx.current_path)
771
+ hashed = _to_hashable_key(value)
772
+ seen.add(hashed)
754
773
 
755
774
 
756
775
  def _negative_properties(
@@ -758,12 +777,12 @@ def _negative_properties(
758
777
  ) -> Generator[GeneratedValue, None, None]:
759
778
  nctx = ctx.with_negative()
760
779
  for key, sub_schema in properties.items():
761
- with nctx.location(key):
780
+ with nctx.at(key):
762
781
  for value in cover_schema_iter(nctx, sub_schema):
763
782
  yield NegativeValue(
764
783
  {**template, key: value.value},
765
784
  description=f"Object with invalid '{key}' value: {value.description}",
766
- location=nctx.current_location,
785
+ location=nctx.current_path,
767
786
  parameter=key,
768
787
  )
769
788
 
@@ -777,12 +796,12 @@ def _negative_pattern_properties(
777
796
  key = ctx.generate_from(st.from_regex(pattern))
778
797
  except re.error:
779
798
  continue
780
- with nctx.location(pattern):
799
+ with nctx.at(pattern):
781
800
  for value in cover_schema_iter(nctx, sub_schema):
782
801
  yield NegativeValue(
783
802
  {**template, key: value.value},
784
803
  description=f"Object with invalid pattern key '{key}' ('{pattern}') value: {value.description}",
785
- location=nctx.current_location,
804
+ location=nctx.current_path,
786
805
  )
787
806
 
788
807
 
@@ -793,7 +812,7 @@ def _negative_items(ctx: CoverageContext, schema: dict[str, Any] | bool) -> Gene
793
812
  yield NegativeValue(
794
813
  [value.value],
795
814
  description=f"Array with invalid items: {value.description}",
796
- location=nctx.current_location,
815
+ location=nctx.current_path,
797
816
  )
798
817
 
799
818
 
@@ -815,7 +834,7 @@ def _negative_pattern(
815
834
  )
816
835
  ),
817
836
  description=f"Value not matching the '{pattern}' pattern",
818
- location=ctx.current_location,
837
+ location=ctx.current_path,
819
838
  )
820
839
 
821
840
 
@@ -829,13 +848,13 @@ def _negative_multiple_of(
829
848
  yield NegativeValue(
830
849
  ctx.generate_from_schema(_with_negated_key(schema, "multipleOf", multiple_of)),
831
850
  description=f"Non-multiple of {multiple_of}",
832
- location=ctx.current_location,
851
+ location=ctx.current_path,
833
852
  )
834
853
 
835
854
 
836
855
  def _negative_unique_items(ctx: CoverageContext, schema: dict) -> Generator[GeneratedValue, None, None]:
837
856
  unique = ctx.generate_from_schema({**schema, "type": "array", "minItems": 1, "maxItems": 1})
838
- yield NegativeValue(unique + unique, description="Non-unique items", location=ctx.current_location)
857
+ yield NegativeValue(unique + unique, description="Non-unique items", location=ctx.current_path)
839
858
 
840
859
 
841
860
  def _negative_required(
@@ -845,7 +864,8 @@ def _negative_required(
845
864
  yield NegativeValue(
846
865
  {k: v for k, v in template.items() if k != key},
847
866
  description=f"Missing required property: {key}",
848
- location=ctx.current_location,
867
+ location=ctx.current_path,
868
+ parameter=key,
849
869
  )
850
870
 
851
871
 
@@ -870,7 +890,7 @@ def _negative_format(ctx: CoverageContext, schema: dict, format: str) -> Generat
870
890
  yield NegativeValue(
871
891
  ctx.generate_from(strategy),
872
892
  description=f"Value not matching the '{format}' format",
873
- location=ctx.current_location,
893
+ location=ctx.current_path,
874
894
  )
875
895
 
876
896
 
@@ -893,7 +913,7 @@ def _negative_type(ctx: CoverageContext, seen: set, ty: str | list[str]) -> Gene
893
913
  hashed = _to_hashable_key(value)
894
914
  if hashed in seen:
895
915
  continue
896
- yield NegativeValue(value, description="Incorrect type", location=ctx.current_location)
916
+ yield NegativeValue(value, description="Incorrect type", location=ctx.current_path)
897
917
  seen.add(hashed)
898
918
 
899
919
 
@@ -29,8 +29,14 @@ class PositiveDataAcceptanceConfig:
29
29
  allowed_statuses: list[str] = field(default_factory=lambda: ["2xx", "401", "403", "404"])
30
30
 
31
31
 
32
+ @dataclass
33
+ class MissingRequiredHeaderConfig:
34
+ allowed_statuses: list[str] = field(default_factory=lambda: ["406"])
35
+
36
+
32
37
  @dataclass
33
38
  class CheckConfig:
39
+ missing_required_header: MissingRequiredHeaderConfig = field(default_factory=MissingRequiredHeaderConfig)
34
40
  negative_data_rejection: NegativeDataRejectionConfig = field(default_factory=NegativeDataRejectionConfig)
35
41
  positive_data_acceptance: PositiveDataAcceptanceConfig = field(default_factory=PositiveDataAcceptanceConfig)
36
42