schemathesis 3.27.0__tar.gz → 3.28.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (578) hide show
  1. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/workflows/build.yml +4 -4
  2. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/workflows/codeql-analysis.yml +4 -4
  3. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/workflows/codspeed.yml +1 -1
  4. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/workflows/commit.yml +1 -1
  5. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/workflows/example-build.yml +1 -1
  6. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/workflows/master_update.yml +1 -1
  7. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/workflows/release.yml +2 -2
  8. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/workflows/test-corpus.yml +1 -1
  9. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/workflows/test-hypothesis.yml +1 -1
  10. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/workflows/update-corpus.yml +1 -1
  11. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/workflows/update-pre-commit.yml +1 -1
  12. {schemathesis-3.27.0 → schemathesis-3.28.0}/.pre-commit-config.yaml +3 -3
  13. {schemathesis-3.27.0 → schemathesis-3.28.0}/PKG-INFO +38 -16
  14. {schemathesis-3.27.0 → schemathesis-3.28.0}/README.md +36 -13
  15. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/auth.rst +6 -4
  16. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/changelog.rst +39 -1
  17. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/cli.rst +12 -8
  18. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/extending.rst +68 -6
  19. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/index.rst +29 -7
  20. {schemathesis-3.27.0 → schemathesis-3.28.0}/example/requirements-app.txt +2 -2
  21. {schemathesis-3.27.0 → schemathesis-3.28.0}/example/requirements-pytest.txt +1 -1
  22. {schemathesis-3.27.0 → schemathesis-3.28.0}/pyproject.toml +2 -3
  23. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/__init__.py +1 -1
  24. schemathesis-3.28.0/src/schemathesis/cli/__main__.py +4 -0
  25. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/context.py +2 -0
  26. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/junitxml.py +8 -8
  27. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/output/default.py +34 -8
  28. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/reporting.py +1 -3
  29. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/exceptions.py +8 -0
  30. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/generation/__init__.py +14 -2
  31. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/models.py +18 -2
  32. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/runner/impl/core.py +18 -17
  33. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/runner/serialization.py +16 -1
  34. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/serializers.py +1 -1
  35. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/_hypothesis.py +16 -5
  36. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/references.py +1 -1
  37. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/schemas.py +1 -1
  38. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/transports/__init__.py +10 -3
  39. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/__init__.py +0 -1
  40. schemathesis-3.28.0/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +32 -0
  41. schemathesis-3.28.0/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +35 -0
  42. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +1 -2
  43. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +1 -2
  44. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +1 -2
  45. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +1 -2
  46. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +1 -2
  47. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +1 -2
  48. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +1 -2
  49. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +1 -2
  50. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/test_commands.py +38 -20
  51. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/test_junitxml.py +1 -1
  52. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/conftest.py +7 -4
  53. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/runner/test_runner.py +1 -9
  54. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/test_hypothesis.py +26 -1
  55. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_dereferencing.py +61 -0
  56. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_models.py +12 -10
  57. {schemathesis-3.27.0 → schemathesis-3.28.0}/tox.ini +1 -1
  58. {schemathesis-3.27.0 → schemathesis-3.28.0}/.dockerignore +0 -0
  59. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/FUNDING.yml +0 -0
  60. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  61. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  62. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  63. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/dependabot.yml +0 -0
  64. {schemathesis-3.27.0 → schemathesis-3.28.0}/.github/workflows/example-no-build.yml +0 -0
  65. {schemathesis-3.27.0 → schemathesis-3.28.0}/.gitignore +0 -0
  66. {schemathesis-3.27.0 → schemathesis-3.28.0}/.gitmodules +0 -0
  67. {schemathesis-3.27.0 → schemathesis-3.28.0}/.readthedocs.yml +0 -0
  68. {schemathesis-3.27.0 → schemathesis-3.28.0}/.relint.yml +0 -0
  69. {schemathesis-3.27.0 → schemathesis-3.28.0}/.rstcheck.cfg +0 -0
  70. {schemathesis-3.27.0 → schemathesis-3.28.0}/.yamllint +0 -0
  71. {schemathesis-3.27.0 → schemathesis-3.28.0}/CITATION.cff +0 -0
  72. {schemathesis-3.27.0 → schemathesis-3.28.0}/CODE_OF_CONDUCT.md +0 -0
  73. {schemathesis-3.27.0 → schemathesis-3.28.0}/CONTRIBUTING.rst +0 -0
  74. {schemathesis-3.27.0 → schemathesis-3.28.0}/Dockerfile +0 -0
  75. {schemathesis-3.27.0 → schemathesis-3.28.0}/Dockerfile.bookworm +0 -0
  76. {schemathesis-3.27.0 → schemathesis-3.28.0}/LICENSE +0 -0
  77. {schemathesis-3.27.0 → schemathesis-3.28.0}/benches/cli.py +0 -0
  78. {schemathesis-3.27.0 → schemathesis-3.28.0}/benches/references.py +0 -0
  79. {schemathesis-3.27.0 → schemathesis-3.28.0}/changelog.py +0 -0
  80. {schemathesis-3.27.0 → schemathesis-3.28.0}/codecov.yml +0 -0
  81. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/Makefile +0 -0
  82. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/additional-content.rst +0 -0
  83. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/api.rst +0 -0
  84. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/compatibility.rst +0 -0
  85. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/conf.py +0 -0
  86. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/continuous_integration.rst +0 -0
  87. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/contrib.rst +0 -0
  88. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/data-generation.rst +0 -0
  89. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/examples.rst +0 -0
  90. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/experimental.rst +0 -0
  91. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/faq.rst +0 -0
  92. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/getting-started.rst +0 -0
  93. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/graphql.rst +0 -0
  94. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/python.rst +0 -0
  95. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/recipes.rst +0 -0
  96. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/requirements.txt +0 -0
  97. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/sanitizing.rst +0 -0
  98. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/service.rst +0 -0
  99. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/stateful.rst +0 -0
  100. {schemathesis-3.27.0 → schemathesis-3.28.0}/docs/targeted.rst +0 -0
  101. {schemathesis-3.27.0 → schemathesis-3.28.0}/example/Dockerfile +0 -0
  102. {schemathesis-3.27.0 → schemathesis-3.28.0}/example/README.md +0 -0
  103. {schemathesis-3.27.0 → schemathesis-3.28.0}/example/app.py +0 -0
  104. {schemathesis-3.27.0 → schemathesis-3.28.0}/example/compose.yml +0 -0
  105. {schemathesis-3.27.0 → schemathesis-3.28.0}/example/openapi.json +0 -0
  106. {schemathesis-3.27.0 → schemathesis-3.28.0}/example/requirements-app.in +0 -0
  107. {schemathesis-3.27.0 → schemathesis-3.28.0}/example/requirements-pytest.in +0 -0
  108. {schemathesis-3.27.0 → schemathesis-3.28.0}/example/tests/__init__.py +0 -0
  109. {schemathesis-3.27.0 → schemathesis-3.28.0}/example/tests/conftest.py +0 -0
  110. {schemathesis-3.27.0 → schemathesis-3.28.0}/example/tests/extensions.py +0 -0
  111. {schemathesis-3.27.0 → schemathesis-3.28.0}/example/tests/test_app.py +0 -0
  112. {schemathesis-3.27.0 → schemathesis-3.28.0}/img/demo.gif +0 -0
  113. {schemathesis-3.27.0 → schemathesis-3.28.0}/img/service_github_report.png +0 -0
  114. {schemathesis-3.27.0 → schemathesis-3.28.0}/mypy.ini +0 -0
  115. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/_compat.py +0 -0
  116. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/_dependency_versions.py +0 -0
  117. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/_hypothesis.py +0 -0
  118. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/_lazy_import.py +0 -0
  119. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/_override.py +0 -0
  120. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/_rate_limiter.py +0 -0
  121. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/_xml.py +0 -0
  122. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/auths.py +0 -0
  123. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/checks.py +0 -0
  124. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/__init__.py +0 -0
  125. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/callbacks.py +0 -0
  126. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/cassettes.py +0 -0
  127. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/constants.py +0 -0
  128. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/debug.py +0 -0
  129. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/handlers.py +0 -0
  130. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/options.py +0 -0
  131. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/output/__init__.py +0 -0
  132. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/output/short.py +0 -0
  133. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/cli/sanitization.py +0 -0
  134. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/code_samples.py +0 -0
  135. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/constants.py +0 -0
  136. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/contrib/__init__.py +0 -0
  137. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/contrib/openapi/__init__.py +0 -0
  138. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
  139. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
  140. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
  141. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/contrib/unique_data.py +0 -0
  142. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/experimental/__init__.py +0 -0
  143. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/extra/__init__.py +0 -0
  144. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/extra/_aiohttp.py +0 -0
  145. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/extra/_flask.py +0 -0
  146. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/extra/_server.py +0 -0
  147. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/extra/pytest_plugin.py +0 -0
  148. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/failures.py +0 -0
  149. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/filters.py +0 -0
  150. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/fixups/__init__.py +0 -0
  151. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/fixups/fast_api.py +0 -0
  152. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/fixups/utf8_bom.py +0 -0
  153. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/graphql.py +0 -0
  154. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/hooks.py +0 -0
  155. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/internal/__init__.py +0 -0
  156. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/internal/copy.py +0 -0
  157. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/internal/datetime.py +0 -0
  158. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/internal/deprecation.py +0 -0
  159. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/internal/jsonschema.py +0 -0
  160. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/internal/result.py +0 -0
  161. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/internal/transformation.py +0 -0
  162. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/internal/validation.py +0 -0
  163. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/lazy.py +0 -0
  164. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/loaders.py +0 -0
  165. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/parameters.py +0 -0
  166. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/py.typed +0 -0
  167. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/runner/__init__.py +0 -0
  168. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/runner/events.py +0 -0
  169. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/runner/impl/__init__.py +0 -0
  170. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/runner/impl/solo.py +0 -0
  171. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/runner/impl/threadpool.py +0 -0
  172. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/runner/probes.py +0 -0
  173. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/sanitization.py +0 -0
  174. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/schemas.py +0 -0
  175. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/service/__init__.py +0 -0
  176. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/service/auth.py +0 -0
  177. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/service/ci.py +0 -0
  178. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/service/client.py +0 -0
  179. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/service/constants.py +0 -0
  180. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/service/events.py +0 -0
  181. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/service/extensions.py +0 -0
  182. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/service/hosts.py +0 -0
  183. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/service/metadata.py +0 -0
  184. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/service/models.py +0 -0
  185. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/service/report.py +0 -0
  186. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/service/serialization.py +0 -0
  187. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/service/usage.py +0 -0
  188. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/__init__.py +0 -0
  189. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/graphql/__init__.py +0 -0
  190. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/graphql/loaders.py +0 -0
  191. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/graphql/nodes.py +0 -0
  192. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/graphql/scalars.py +0 -0
  193. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/graphql/schemas.py +0 -0
  194. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/graphql/validation.py +0 -0
  195. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/__init__.py +0 -0
  196. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/checks.py +0 -0
  197. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/constants.py +0 -0
  198. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/converter.py +0 -0
  199. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/definitions.py +0 -0
  200. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/examples.py +0 -0
  201. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
  202. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
  203. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
  204. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
  205. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
  206. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
  207. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/filters.py +0 -0
  208. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/formats.py +0 -0
  209. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/links.py +0 -0
  210. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/loaders.py +0 -0
  211. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/media_types.py +0 -0
  212. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
  213. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
  214. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/negative/types.py +0 -0
  215. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
  216. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/parameters.py +0 -0
  217. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/security.py +0 -0
  218. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/serialization.py +0 -0
  219. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
  220. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/stateful/links.py +0 -0
  221. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/utils.py +0 -0
  222. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/specs/openapi/validation.py +0 -0
  223. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/stateful/__init__.py +0 -0
  224. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/stateful/state_machine.py +0 -0
  225. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/targets.py +0 -0
  226. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/throttling.py +0 -0
  227. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/transports/auth.py +0 -0
  228. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/transports/content_types.py +0 -0
  229. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/transports/headers.py +0 -0
  230. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/transports/responses.py +0 -0
  231. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/types.py +0 -0
  232. {schemathesis-3.27.0 → schemathesis-3.28.0}/src/schemathesis/utils.py +0 -0
  233. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/__init__.py +0 -0
  234. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
  235. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
  236. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
  237. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
  238. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/_graphql/__init__.py +0 -0
  239. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/_graphql/_fastapi/__init__.py +0 -0
  240. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/_graphql/_fastapi/app.py +0 -0
  241. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/_graphql/_flask/__init__.py +0 -0
  242. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/_graphql/_flask/app.py +0 -0
  243. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/_graphql/schema.py +0 -0
  244. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/openapi/__init__.py +0 -0
  245. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/openapi/_aiohttp/__init__.py +0 -0
  246. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/openapi/_aiohttp/app.py +0 -0
  247. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/openapi/_aiohttp/handlers.py +0 -0
  248. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/openapi/_fastapi/__init__.py +0 -0
  249. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/openapi/_fastapi/app.py +0 -0
  250. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/openapi/_flask/__init__.py +0 -0
  251. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/openapi/_flask/app.py +0 -0
  252. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/apps/openapi/schema.py +0 -0
  253. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/auth/__init__.py +0 -0
  254. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
  255. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
  256. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
  257. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
  258. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
  259. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
  260. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
  261. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/auth/conftest.py +0 -0
  262. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/auth/test_cli.py +0 -0
  263. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/auth/test_provider.py +0 -0
  264. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/auth/test_pytest.py +0 -0
  265. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__init__.py +0 -0
  266. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
  267. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
  268. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +0 -0
  269. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +0 -0
  270. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
  271. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
  272. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
  273. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
  274. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
  275. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
  276. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
  277. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
  278. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
  279. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +0 -0
  280. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +0 -0
  281. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +0 -0
  282. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +0 -0
  283. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +0 -0
  284. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +0 -0
  285. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +0 -0
  286. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +0 -0
  287. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
  288. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
  289. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
  290. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
  291. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
  292. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
  293. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
  294. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
  295. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
  296. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
  297. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
  298. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
  299. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
  300. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
  301. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
  302. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +0 -0
  303. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +0 -0
  304. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +0 -0
  305. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
  306. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
  307. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
  308. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
  309. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
  310. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
  311. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
  312. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
  313. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +0 -0
  314. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +0 -0
  315. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +0 -0
  316. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +0 -0
  317. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +0 -0
  318. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +0 -0
  319. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +0 -0
  320. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +0 -0
  321. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
  322. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
  323. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
  324. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
  325. /schemathesis-3.27.0/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2-The provided definition doesn't match any of the expected formats or types.].raw → /schemathesis-3.28.0/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
  326. /schemathesis-3.27.0/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0-'type' is a required property].raw → /schemathesis-3.28.0/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
  327. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
  328. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
  329. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +0 -0
  330. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +0 -0
  331. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
  332. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
  333. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
  334. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
  335. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +0 -0
  336. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +0 -0
  337. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +0 -0
  338. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +0 -0
  339. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +0 -0
  340. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +0 -0
  341. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +0 -0
  342. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +0 -0
  343. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
  344. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
  345. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
  346. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
  347. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
  348. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
  349. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
  350. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
  351. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
  352. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +0 -0
  353. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +0 -0
  354. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +0 -0
  355. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +0 -0
  356. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +0 -0
  357. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +0 -0
  358. /schemathesis-3.27.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1-.....].raw → /schemathesis-3.28.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1].raw +0 -0
  359. /schemathesis-3.27.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5-......].raw → /schemathesis-3.28.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5].raw +0 -0
  360. /schemathesis-3.27.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1-.....].raw → /schemathesis-3.28.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1].raw +0 -0
  361. /schemathesis-3.27.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5-......].raw → /schemathesis-3.28.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5].raw +0 -0
  362. /schemathesis-3.27.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1-.....].raw → /schemathesis-3.28.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1].raw +0 -0
  363. /schemathesis-3.27.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5-......].raw → /schemathesis-3.28.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5].raw +0 -0
  364. /schemathesis-3.27.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1-.....].raw → /schemathesis-3.28.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1].raw +0 -0
  365. /schemathesis-3.27.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5-......].raw → /schemathesis-3.28.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5].raw +0 -0
  366. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
  367. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
  368. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
  369. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
  370. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
  371. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
  372. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
  373. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +0 -0
  374. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +0 -0
  375. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +0 -0
  376. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +0 -0
  377. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +0 -0
  378. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +0 -0
  379. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +0 -0
  380. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +0 -0
  381. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
  382. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
  383. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
  384. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
  385. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
  386. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
  387. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
  388. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
  389. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
  390. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
  391. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
  392. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
  393. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
  394. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
  395. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
  396. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
  397. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +0 -0
  398. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
  399. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
  400. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
  401. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
  402. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
  403. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
  404. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
  405. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
  406. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
  407. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
  408. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
  409. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
  410. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
  411. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
  412. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
  413. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
  414. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
  415. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
  416. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
  417. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
  418. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
  419. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
  420. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
  421. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +0 -0
  422. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +0 -0
  423. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +0 -0
  424. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +0 -0
  425. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +0 -0
  426. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +0 -0
  427. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +0 -0
  428. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +0 -0
  429. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
  430. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
  431. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
  432. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
  433. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +0 -0
  434. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +0 -0
  435. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +0 -0
  436. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/cert.pem +0 -0
  437. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/conftest.py +0 -0
  438. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/output/__init__.py +0 -0
  439. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/output/test_default.py +0 -0
  440. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/test_asgi.py +0 -0
  441. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/test_callbacks.py +0 -0
  442. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/test_cassettes.py +0 -0
  443. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/test_checks.py +0 -0
  444. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/test_crashes.py +0 -0
  445. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/test_hooks.py +0 -0
  446. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/test_options.py +0 -0
  447. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/cli/test_targeted.py +0 -0
  448. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +0 -0
  449. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +0 -0
  450. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/code_samples/conftest.py +0 -0
  451. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/code_samples/test_curl.py +0 -0
  452. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/code_samples/test_python.py +0 -0
  453. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
  454. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
  455. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
  456. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
  457. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
  458. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
  459. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
  460. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/contrib/openapi/formats/test_uuid.py +0 -0
  461. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
  462. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/contrib/test_install.py +0 -0
  463. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/contrib/test_unique_data.py +0 -0
  464. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/data/petstore_v2.yaml +0 -0
  465. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/data/petstore_v3.yaml +0 -0
  466. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/data/simple_openapi.yaml +0 -0
  467. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/data/simple_swagger.yaml +0 -0
  468. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
  469. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/experimental/conftest.py +0 -0
  470. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/experimental/test_experiments.py +0 -0
  471. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/experimental/test_openapi_3_1.py +0 -0
  472. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/extra/__init__.py +0 -0
  473. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/extra/test_aiohttp.py +0 -0
  474. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/filters/test_matching.py +0 -0
  475. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/hooks/test_filter_operations.py +0 -0
  476. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/hooks/test_hooks.py +0 -0
  477. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/loaders/conftest.py +0 -0
  478. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/loaders/test_app.py +0 -0
  479. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/loaders/test_common.py +0 -0
  480. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/loaders/test_graphql.py +0 -0
  481. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/loaders/test_openapi.py +0 -0
  482. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/loaders/test_yaml.py +0 -0
  483. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/runner/test_checks.py +0 -0
  484. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/runner/test_events.py +0 -0
  485. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/runner/test_probes.py +0 -0
  486. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__init__.py +0 -0
  487. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_cli/test_client_error_on_project_details[Open API 3.0].raw +0 -0
  488. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +0 -0
  489. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
  490. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +0 -0
  491. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
  492. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
  493. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_cli/test_unauthorized[Open API 3.0].raw +0 -0
  494. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +0 -0
  495. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
  496. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
  497. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +0 -0
  498. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_custom_format.raw +0 -0
  499. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +0 -0
  500. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +0 -0
  501. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +0 -0
  502. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +0 -0
  503. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +0 -0
  504. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +0 -0
  505. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +0 -0
  506. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +0 -0
  507. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +0 -0
  508. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +0 -0
  509. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +0 -0
  510. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +0 -0
  511. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +0 -0
  512. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +0 -0
  513. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/conftest.py +0 -0
  514. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/test_auth.py +0 -0
  515. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/test_ci.py +0 -0
  516. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/test_cli.py +0 -0
  517. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/test_extensions.py +0 -0
  518. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/test_report.py +0 -0
  519. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/test_serialization.py +0 -0
  520. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/service/test_usage.py +0 -0
  521. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
  522. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
  523. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +0 -0
  524. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
  525. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/graphql/test_basic.py +0 -0
  526. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/graphql/test_custom_scalars.py +0 -0
  527. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/graphql/test_pytest.py +0 -0
  528. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
  529. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
  530. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/blank.pdf +0 -0
  531. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/conftest.py +0 -0
  532. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/parameters/test_forms.py +0 -0
  533. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/parameters/test_non_payload.py +0 -0
  534. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
  535. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/test_examples.py +0 -0
  536. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/test_expressions.py +0 -0
  537. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/test_links.py +0 -0
  538. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/test_media_types.py +0 -0
  539. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/test_negative.py +0 -0
  540. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/test_parameters.py +0 -0
  541. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/test_schemas.py +0 -0
  542. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/test_security.py +0 -0
  543. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/test_serializing.py +0 -0
  544. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/test_stateful.py +0 -0
  545. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/test_utils.py +0 -0
  546. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/specs/openapi/test_validation.py +0 -0
  547. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_app.py +0 -0
  548. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_asgi.py +0 -0
  549. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_async.py +0 -0
  550. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_common_parameters.py +0 -0
  551. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_converter.py +0 -0
  552. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_direct_access.py +0 -0
  553. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_errors.py +0 -0
  554. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_examples.py +0 -0
  555. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_filters.py +0 -0
  556. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_fixups.py +0 -0
  557. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_hypothesis.py +0 -0
  558. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_internal.py +0 -0
  559. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_lazy.py +0 -0
  560. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_package.py +0 -0
  561. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_parameters.py +0 -0
  562. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_parametrization.py +0 -0
  563. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_petstore.py +0 -0
  564. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_pytest.py +0 -0
  565. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_rate_limit.py +0 -0
  566. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_recoverable_errors.py +0 -0
  567. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_required.py +0 -0
  568. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_sanitizing_output.py +0 -0
  569. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_schemas.py +0 -0
  570. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_serialization.py +0 -0
  571. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_stateful.py +0 -0
  572. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_unittest.py +0 -0
  573. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_utils.py +0 -0
  574. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/test_wsgi.py +0 -0
  575. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/transports/test_content_types.py +0 -0
  576. {schemathesis-3.27.0 → schemathesis-3.28.0}/test/utils.py +0 -0
  577. {schemathesis-3.27.0 → schemathesis-3.28.0}/test-corpus/test_corpus.py +0 -0
  578. {schemathesis-3.27.0 → schemathesis-3.28.0}/test_server.sh +0 -0
@@ -26,7 +26,7 @@ jobs:
26
26
  name: Generic pre-commit checks
27
27
  runs-on: ubuntu-22.04
28
28
  steps:
29
- - uses: actions/checkout@v4.1.2
29
+ - uses: actions/checkout@v4.1.4
30
30
  with:
31
31
  fetch-depth: 1
32
32
 
@@ -41,7 +41,7 @@ jobs:
41
41
  name: Documentation
42
42
  runs-on: ubuntu-22.04
43
43
  steps:
44
- - uses: actions/checkout@v4.1.2
44
+ - uses: actions/checkout@v4.1.4
45
45
  with:
46
46
  fetch-depth: 1
47
47
  - uses: ammaraskar/sphinx-action@master
@@ -66,7 +66,7 @@ jobs:
66
66
  name: Tests (Python ${{ matrix.python }} on ${{ matrix.os }} ${{ matrix.tox_env }})
67
67
  runs-on: ${{ matrix.os }}
68
68
  steps:
69
- - uses: actions/checkout@v4.1.2
69
+ - uses: actions/checkout@v4.1.4
70
70
  with:
71
71
  fetch-depth: 1
72
72
 
@@ -83,6 +83,6 @@ jobs:
83
83
  run: python -m tox
84
84
 
85
85
  - name: Upload coverage to Codecov
86
- uses: codecov/codecov-action@v4.2.0
86
+ uses: codecov/codecov-action@v4.3.1
87
87
  with:
88
88
  token: ${{ secrets.CODECOV_TOKEN }}
@@ -30,7 +30,7 @@ jobs:
30
30
 
31
31
  steps:
32
32
  - name: Checkout repository
33
- uses: actions/checkout@v4.1.2
33
+ uses: actions/checkout@v4.1.4
34
34
  with:
35
35
  # We must fetch at least the immediate parents so that if this is
36
36
  # a pull request then we can checkout the head.
@@ -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.24.10
41
+ uses: github/codeql-action/init@v3.25.3
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.24.10
52
+ uses: github/codeql-action/autobuild@v3.25.3
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.24.10
66
+ uses: github/codeql-action/analyze@v3.25.3
@@ -11,7 +11,7 @@ jobs:
11
11
  benchmarks:
12
12
  runs-on: ubuntu-latest
13
13
  steps:
14
- - uses: actions/checkout@v4.1.2
14
+ - uses: actions/checkout@v4.1.4
15
15
  - uses: actions/setup-python@v5
16
16
  with:
17
17
  # Python 3.12 for flamegraph support
@@ -12,7 +12,7 @@ jobs:
12
12
  runs-on: ubuntu-22.04
13
13
  steps:
14
14
  - name: Check out code
15
- uses: actions/checkout@v4.1.2
15
+ uses: actions/checkout@v4.1.4
16
16
  with:
17
17
  fetch-depth: 0
18
18
  - name: Run commitsar
@@ -16,7 +16,7 @@ jobs:
16
16
  runs-on: ubuntu-22.04
17
17
 
18
18
  steps:
19
- - uses: actions/checkout@v4.1.2
19
+ - uses: actions/checkout@v4.1.4
20
20
 
21
21
  - name: Start containers
22
22
  run: docker compose up -d --build
@@ -20,7 +20,7 @@ jobs:
20
20
  tag: "latest-bookworm"
21
21
 
22
22
  steps:
23
- - uses: actions/checkout@v4.1.2
23
+ - uses: actions/checkout@v4.1.4
24
24
 
25
25
  - name: Set up QEMU
26
26
  uses: docker/setup-qemu-action@v3
@@ -19,7 +19,7 @@ jobs:
19
19
  tag-suffix: "-bookworm"
20
20
 
21
21
  steps:
22
- - uses: actions/checkout@v4.1.2
22
+ - uses: actions/checkout@v4.1.4
23
23
 
24
24
  - name: Docker meta
25
25
  id: meta
@@ -68,7 +68,7 @@ jobs:
68
68
  name: Build and publish package to pypi.org
69
69
  runs-on: ubuntu-22.04
70
70
  steps:
71
- - uses: actions/checkout@v4.1.2
71
+ - uses: actions/checkout@v4.1.4
72
72
  with:
73
73
  fetch-depth: 1
74
74
 
@@ -15,7 +15,7 @@ jobs:
15
15
  name: Corpus tests
16
16
  runs-on: ubuntu-22.04
17
17
  steps:
18
- - uses: actions/checkout@v4.1.2
18
+ - uses: actions/checkout@v4.1.4
19
19
  with:
20
20
  fetch-depth: 1
21
21
  submodules: true
@@ -11,7 +11,7 @@ jobs:
11
11
  name: Hypothesis tests with CI profile
12
12
  runs-on: ubuntu-22.04
13
13
  steps:
14
- - uses: actions/checkout@v4.1.2
14
+ - uses: actions/checkout@v4.1.4
15
15
  with:
16
16
  fetch-depth: 1
17
17
 
@@ -10,7 +10,7 @@ jobs:
10
10
  name: Update test corpus
11
11
  runs-on: ubuntu-22.04
12
12
  steps:
13
- - uses: actions/checkout@v4.1.2
13
+ - uses: actions/checkout@v4.1.4
14
14
  with:
15
15
  fetch-depth: 1
16
16
  submodules: true
@@ -10,7 +10,7 @@ jobs:
10
10
  name: Update pre-commit
11
11
  runs-on: ubuntu-22.04
12
12
  steps:
13
- - uses: actions/checkout@v4.1.2
13
+ - uses: actions/checkout@v4.1.4
14
14
  with:
15
15
  fetch-depth: 1
16
16
  submodules: true
@@ -30,7 +30,7 @@ repos:
30
30
  - id: relint
31
31
 
32
32
  - repo: https://github.com/pre-commit/mirrors-mypy
33
- rev: v1.9.0
33
+ rev: v1.10.0
34
34
  hooks:
35
35
  - id: mypy
36
36
  exclude: ^(docs/|test/|test-corpus/|example/|benches/).*$
@@ -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.3.7
41
+ rev: v0.4.3
42
42
  hooks:
43
43
  - id: ruff-format
44
44
 
45
45
  - repo: https://github.com/astral-sh/ruff-pre-commit
46
- rev: v0.3.7
46
+ rev: v0.4.3
47
47
  hooks:
48
48
  - id: ruff
49
49
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: schemathesis
3
- Version: 3.27.0
3
+ Version: 3.28.0
4
4
  Summary: Property-based testing framework for Open API and GraphQL based apps
5
5
  Project-URL: Documentation, https://schemathesis.readthedocs.io/en/stable/
6
6
  Project-URL: Changelog, https://schemathesis.readthedocs.io/en/stable/changelog.html
@@ -28,7 +28,6 @@ Classifier: Programming Language :: Python :: 3.12
28
28
  Classifier: Programming Language :: Python :: Implementation :: CPython
29
29
  Classifier: Topic :: Software Development :: Testing
30
30
  Requires-Python: >=3.8
31
- Requires-Dist: anyio<4
32
31
  Requires-Dist: backoff<3.0,>=2.1.2
33
32
  Requires-Dist: click<9.0,>=7.0
34
33
  Requires-Dist: colorama<1.0,>=0.4
@@ -44,7 +43,7 @@ Requires-Dist: pytest-subtests<0.8.0,>=0.2.1
44
43
  Requires-Dist: pytest<9,>=4.6.4
45
44
  Requires-Dist: pyyaml<7.0,>=5.1
46
45
  Requires-Dist: requests<3,>=2.22
47
- Requires-Dist: starlette-testclient<1
46
+ Requires-Dist: starlette-testclient<1,>=0.4.1
48
47
  Requires-Dist: starlette<1,>=0.13
49
48
  Requires-Dist: tomli-w<2.0,>=1.0.0
50
49
  Requires-Dist: tomli<3.0,>=2.0.1
@@ -78,7 +77,7 @@ Requires-Dist: trustme<1.0,>=0.9.0; extra == 'tests'
78
77
  Description-Content-Type: text/markdown
79
78
 
80
79
  <p align="center">
81
- <em>Schemathesis: catch crashes, validate specs, and save time</em>
80
+ <em>Schemathesis: Supercharge your API testing, catch bugs, and ensure compliance</em>
82
81
  </p>
83
82
 
84
83
  <p align="center">
@@ -110,29 +109,34 @@ Description-Content-Type: text/markdown
110
109
 
111
110
  ---
112
111
 
113
- ## Why Schemathesis?
112
+ ## What is Schemathesis?
114
113
 
115
- Schemathesis is a tool that automates your API testing to catch crashes and spec violations. Built on top of the widely-used <a href="https://hypothesis.works/" target="_blank">Hypothesis</a> framework for property-based testing, it offers the following advantages:
114
+ Schemathesis is a tool that levels-up your API testing by automating the process of finding crashes, uncovering bugs, and validating spec compliance. With Schemathesis, you can:
116
115
 
117
- 🕒 **Time-Saving**
116
+ 🎯 **Catch Hard-to-Find Bugs**
118
117
 
119
- Automatically generates test cases, freeing you from manual test writing.
118
+ - Uncover hidden crashes and edge cases that manual testing might miss
119
+ - Identify spec violations and ensure your API adheres to its defined contract
120
120
 
121
- 🔍 **Comprehensive**
121
+ **Accelerate Testing Cycles**
122
122
 
123
- Utilizes fuzzing techniques to probe both common and edge-case scenarios, including those you might overlook.
123
+ - Automatically generate a wide range of test cases based on your API schema
124
+ - Save time and effort by eliminating the need for manual test case creation
124
125
 
125
- 🛠️ **Flexible**
126
+ 🧩 **Integrate Seamlessly**
126
127
 
127
- Supports OpenAPI, GraphQL, and can work even with partially complete schemas. Only the parts describing data generation or responses are required.
128
+ - Works with popular API formats such as OpenAPI, GraphQL.
129
+ - Easily integrate into your existing testing pipeline and CI/CD workflows
128
130
 
129
- 🎛️ **Customizable**
131
+ 🔧 **Customize and Extend**
130
132
 
131
- Customize the framework by writing Python extensions to modify almost any aspect of the testing process.
133
+ - Tune the testing process to your specific requirements using Python extensions
134
+ - Modify and enhance various aspects of the testing flow to suit your needs with rich configuration options
132
135
 
133
- 🔄 **Reproducible**
136
+ 📊 **Gain Valuable Insights**
134
137
 
135
- Generates code samples to help you quickly replicate and investigate any failing test cases.
138
+ - Get detailed reports and actionable insights to help you identify and fix issues quickly
139
+ - Reproduce failing test cases effortlessly with generated code samples and cURL commands
136
140
 
137
141
  ## Quick Demo
138
142
 
@@ -310,6 +314,24 @@ This includes:
310
314
 
311
315
  To discuss a custom support arrangement that best suits your organization, please contact our support team at <a href="mailto:support@schemathesis.io">support@schemathesis.io</a>.
312
316
 
317
+ ## Acknowledgements
318
+
319
+ Schemathesis is built on top of <a href="https://hypothesis.works/" target="_blank">Hypothesis</a>, a powerful property-based testing library for Python.
320
+
321
+ ## Who's Using Schemathesis?
322
+
323
+ Schemathesis is used by a number of project and companies, including direct usage or integration into other tools:
324
+
325
+ - Abstract Machines ([Magistrala](https://github.com/absmach/magistrala))
326
+ - Bundesstelle für Open Data ([smard-api](https://github.com/bundesAPI/smard-api))
327
+ - [CheckMK](https://github.com/Checkmk/checkmk)
328
+ - HXSecurity ([DongTai](https://github.com/HXSecurity/DongTai))
329
+ - Netflix ([Dispatch](https://github.com/Netflix/dispatch))
330
+ - [Pixie](https://github.com/pixie-io/pixie)
331
+ - [Qdrant](https://github.com/qdrant/qdrant)
332
+ - Spotify ([Backstage](https://github.com/backstage/backstage))
333
+ - WordPress ([OpenVerse](https://github.com/WordPress/openverse))
334
+
313
335
  ## Additional content
314
336
 
315
337
  ### Papers
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <em>Schemathesis: catch crashes, validate specs, and save time</em>
2
+ <em>Schemathesis: Supercharge your API testing, catch bugs, and ensure compliance</em>
3
3
  </p>
4
4
 
5
5
  <p align="center">
@@ -31,29 +31,34 @@
31
31
 
32
32
  ---
33
33
 
34
- ## Why Schemathesis?
34
+ ## What is Schemathesis?
35
35
 
36
- Schemathesis is a tool that automates your API testing to catch crashes and spec violations. Built on top of the widely-used <a href="https://hypothesis.works/" target="_blank">Hypothesis</a> framework for property-based testing, it offers the following advantages:
36
+ Schemathesis is a tool that levels-up your API testing by automating the process of finding crashes, uncovering bugs, and validating spec compliance. With Schemathesis, you can:
37
37
 
38
- 🕒 **Time-Saving**
38
+ 🎯 **Catch Hard-to-Find Bugs**
39
39
 
40
- Automatically generates test cases, freeing you from manual test writing.
40
+ - Uncover hidden crashes and edge cases that manual testing might miss
41
+ - Identify spec violations and ensure your API adheres to its defined contract
41
42
 
42
- 🔍 **Comprehensive**
43
+ **Accelerate Testing Cycles**
43
44
 
44
- Utilizes fuzzing techniques to probe both common and edge-case scenarios, including those you might overlook.
45
+ - Automatically generate a wide range of test cases based on your API schema
46
+ - Save time and effort by eliminating the need for manual test case creation
45
47
 
46
- 🛠️ **Flexible**
48
+ 🧩 **Integrate Seamlessly**
47
49
 
48
- Supports OpenAPI, GraphQL, and can work even with partially complete schemas. Only the parts describing data generation or responses are required.
50
+ - Works with popular API formats such as OpenAPI, GraphQL.
51
+ - Easily integrate into your existing testing pipeline and CI/CD workflows
49
52
 
50
- 🎛️ **Customizable**
53
+ 🔧 **Customize and Extend**
51
54
 
52
- Customize the framework by writing Python extensions to modify almost any aspect of the testing process.
55
+ - Tune the testing process to your specific requirements using Python extensions
56
+ - Modify and enhance various aspects of the testing flow to suit your needs with rich configuration options
53
57
 
54
- 🔄 **Reproducible**
58
+ 📊 **Gain Valuable Insights**
55
59
 
56
- Generates code samples to help you quickly replicate and investigate any failing test cases.
60
+ - Get detailed reports and actionable insights to help you identify and fix issues quickly
61
+ - Reproduce failing test cases effortlessly with generated code samples and cURL commands
57
62
 
58
63
  ## Quick Demo
59
64
 
@@ -231,6 +236,24 @@ This includes:
231
236
 
232
237
  To discuss a custom support arrangement that best suits your organization, please contact our support team at <a href="mailto:support@schemathesis.io">support@schemathesis.io</a>.
233
238
 
239
+ ## Acknowledgements
240
+
241
+ Schemathesis is built on top of <a href="https://hypothesis.works/" target="_blank">Hypothesis</a>, a powerful property-based testing library for Python.
242
+
243
+ ## Who's Using Schemathesis?
244
+
245
+ Schemathesis is used by a number of project and companies, including direct usage or integration into other tools:
246
+
247
+ - Abstract Machines ([Magistrala](https://github.com/absmach/magistrala))
248
+ - Bundesstelle für Open Data ([smard-api](https://github.com/bundesAPI/smard-api))
249
+ - [CheckMK](https://github.com/Checkmk/checkmk)
250
+ - HXSecurity ([DongTai](https://github.com/HXSecurity/DongTai))
251
+ - Netflix ([Dispatch](https://github.com/Netflix/dispatch))
252
+ - [Pixie](https://github.com/pixie-io/pixie)
253
+ - [Qdrant](https://github.com/qdrant/qdrant)
254
+ - Spotify ([Backstage](https://github.com/backstage/backstage))
255
+ - WordPress ([OpenVerse](https://github.com/WordPress/openverse))
256
+
234
257
  ## Additional content
235
258
 
236
259
  ### Papers
@@ -139,16 +139,18 @@ To use your custom authentication mechanism in the Schemathesis CLI, you need to
139
139
  # Here goes your implementation
140
140
  ...
141
141
 
142
- Put the code above to the ``hooks.py`` file and extend your command via the ``SCHEMATHESIS_HOOKS`` environment variable:
142
+ Then put your code into a Python file (for example, ``my_file.py``) and set the ``SCHEMATHESIS_HOOKS`` environment variable to point to it:
143
143
 
144
144
  .. code:: bash
145
145
 
146
- $ SCHEMATHESIS_HOOKS=hooks
147
- $ st run ...
146
+ SCHEMATHESIS_HOOKS=my_file
147
+ st run http://127.0.0.1/openapi.yaml
148
+
149
+ That is it! Now Schemathesis will use your custom authentication mechanism for all tests.
148
150
 
149
151
  .. note::
150
152
 
151
- You can take a look at how to extend CLI :ref:`here <extend-cli>`
153
+ The registration process is the same as for any other extension, and you can find more details on how to extend Schemathesis in the :ref:`Extending Schemathesis <enabling-extensions>` section.
152
154
 
153
155
  Using in Python tests
154
156
  ~~~~~~~~~~~~~~~~~~~~~
@@ -1,9 +1,47 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
- :version:`Unreleased <v3.27.0...HEAD>` - TBD
4
+ :version:`Unreleased <v3.28.0...HEAD>` - TBD
5
5
  --------------------------------------------
6
6
 
7
+ .. _v3.28.0:
8
+
9
+ :version:`3.28.0 <v3.27.1...v3.28.0>` - 2024-05-10
10
+ --------------------------------------------------
11
+
12
+ **Added**
13
+
14
+ - ``Request.deserialize_body`` and ``Response.deserialize_body`` helper methods to deserialize payloads to bytes from Base 64.
15
+ - Support for ``multipart/mixed`` media type.
16
+
17
+ **Changed**
18
+
19
+ - Do not show suggestion to show a traceback on Hypothesis' ``Unsatisfiable`` error.
20
+ - Clarify error message on unsupported recursive references.
21
+ - Report more details on some internal errors instead of "Unknown Schema Error".
22
+ - Update error message on why Schemathesis can't generate test cases for some API operations.
23
+
24
+ **Fixed**
25
+
26
+ - Internal error on Windows when the CLI output is redirected to a file and code samples contain non CP1252 characters.
27
+ - Properly check for nested recursive references inside combinators. This makes Schemathesis work with more schemas with recursive references.
28
+
29
+ .. _v3.27.1:
30
+
31
+ :version:`3.27.1 <v3.27.0...v3.27.1>` - 2024-04-29
32
+ --------------------------------------------------
33
+
34
+ **Added**
35
+
36
+ - ``GenerationConfig.headers.strategy`` attribute for customizing header generation. :issue:`2137`
37
+ - Support for ``python -m schemathesis.cli``. :issue:`2142`
38
+ - Support for ``anyio>=4.0``. :issue:`2081`
39
+
40
+ **Fixed**
41
+
42
+ - Supporting non-Starlette ASGI apps. :issue:`2136`
43
+ - Missing version metadata in ASGI client causing errors with ASGI3-only apps. :issue:`2136`
44
+
7
45
  .. _v3.27.0:
8
46
 
9
47
  :version:`3.27.0 <v3.26.2...v3.27.0>` - 2024-04-14
@@ -531,25 +531,29 @@ Extending CLI
531
531
  -------------
532
532
 
533
533
  To fit Schemathesis to your workflows, you might want to extend it with your custom checks or setup environment before the test run.
534
- Schemathesis can load your Python code via the ``SCHEMATHESIS_HOOKS`` environment variable:
535
534
 
536
- .. code:: bash
535
+ Extensions should be placed in a separate Python module.
536
+ Then, Schemathesis should be informed about this module via the ``SCHEMATHESIS_HOOKS`` environment variable:
537
537
 
538
- $ SCHEMATHESIS_HOOKS=test.setup
539
- $ st run https://example.com/api/swagger.json
538
+ .. code:: bash
540
539
 
541
- **NOTE**. This option should be passed before the ``run`` subcommand.
540
+ export SCHEMATHESIS_HOOKS=myproject.tests.hooks
541
+ st run http://127.0.0.1/openapi.yaml
542
542
 
543
543
  Also, depending on your setup, you might need to run this command with a custom ``PYTHONPATH`` environment variable like this:
544
544
 
545
545
  .. code:: bash
546
546
 
547
- $ PYTHONPATH=$(pwd)
548
- $ SCHEMATHESIS_HOOKS=test.setup
549
- $ st run https://example.com/api/swagger.json
547
+ export PYTHONPATH=$(pwd)
548
+ export SCHEMATHESIS_HOOKS=myproject.tests.hooks
549
+ st run https://example.com/api/swagger.json
550
550
 
551
551
  The passed value will be treated as an importable Python path and imported before the test run.
552
552
 
553
+ .. note::
554
+
555
+ You can find more details on how to extend Schemathesis in the :ref:`Extending Schemathesis <enabling-extensions>` section.
556
+
553
557
  Registering custom checks
554
558
  ~~~~~~~~~~~~~~~~~~~~~~~~~
555
559
 
@@ -97,19 +97,36 @@ They execute in the order they are defined, with globally defined hooks executin
97
97
  Be mindful of the sequence in which hooks are applied. The order can significantly impact the generated test data and subsequent API calls during testing.
98
98
  Always validate the test data and requests to ensure that hooks are applied in the intended order and manner.
99
99
 
100
- Enabling and Organizing Hooks
101
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
100
+ .. _enabling-extensions:
102
101
 
103
- For Schemathesis to utilize your custom hooks, they need to be properly organized and enabled.
102
+ Enabling Extensions
103
+ ~~~~~~~~~~~~~~~~~~~
104
104
 
105
- For **CLI** usage, hooks should be placed in a separate module.
106
- Schemathesis should be directed to this module through the ``SCHEMATHESIS_HOOKS`` environment variable:
105
+ For Schemathesis to utilize your custom hooks or other extensions, they need to be properly enabled.
106
+
107
+ For **CLI** usage, extensions should be placed in a separate Python module.
108
+ Then, Schemathesis should be informed about this module via the ``SCHEMATHESIS_HOOKS`` environment variable:
107
109
 
108
110
  .. code:: bash
109
111
 
110
- SCHEMATHESIS_HOOKS=myproject.tests.hooks
112
+ export SCHEMATHESIS_HOOKS=myproject.tests.hooks
111
113
  st run http://127.0.0.1/openapi.yaml
112
114
 
115
+ Also, depending on your setup, you might need to run this command with a custom ``PYTHONPATH`` environment variable like this:
116
+
117
+ .. code:: bash
118
+
119
+ export PYTHONPATH=$(pwd)
120
+ export SCHEMATHESIS_HOOKS=myproject.tests.hooks
121
+ st run https://example.com/api/swagger.json
122
+
123
+ In the example above, the module is located at ``myproject/tests/hooks.py`` and the environment variable contains
124
+ a path that could be used as an import in Python.
125
+
126
+ .. note::
127
+
128
+ The name of the module is arbitrary but make sure it is a valid Python module name. Usually it is sufficient to put all your extensions in the ``hooks.py`` file in the current directory.
129
+
113
130
  If you're using Schemathesis in Python tests, ensure to define your hooks in the test setup code.
114
131
 
115
132
  Filtering Data
@@ -651,6 +668,51 @@ In the example above, when Schemathesis detects a string with the "card_number"
651
668
 
652
669
  For more details about creating strategies, refer to the `Hypothesis documentation <https://hypothesis.readthedocs.io/en/latest/data.html>`_.
653
670
 
671
+ Adjusting header generation
672
+ ---------------------------
673
+
674
+ By default, Schemathesis generates headers based on the schema definition falling back to the set of characters defined in `RFC 7230 <https://datatracker.ietf.org/doc/html/rfc7230#section-3.2>`_, but you can adjust this behavior to suit your needs.
675
+
676
+ To customize header generation, you can extend the ``GenerationConfig`` class and modify its ``headers`` attribute.
677
+ The ``headers`` attribute accepts a ``HeaderConfig`` object, which allows you to specify a custom Hypothesis strategy for generating header values.
678
+
679
+ Here's an example of how you can adjust header generation:
680
+
681
+ .. code-block:: python
682
+
683
+ import schemathesis
684
+ from schemathesis import GenerationConfig, HeaderConfig
685
+ from hypothesis import strategies as st
686
+
687
+ schema = schemathesis.from_uri(
688
+ "https://example.schemathesis.io/openapi.json",
689
+ generation_config=GenerationConfig(
690
+ headers=HeaderConfig(
691
+ strategy=st.text(
692
+ alphabet=st.characters(
693
+ min_codepoint=1,
694
+ max_codepoint=127,
695
+ ).map(str.strip)
696
+ )
697
+ )
698
+ ),
699
+ )
700
+
701
+ In the code above, we use the ``st.text`` strategy from Hypothesis to restrict the characters used in the generated headers to codepoints 1 to 127.
702
+
703
+ Alternatively, you can customize header generation using the ``after_load_schema`` hook:
704
+
705
+ .. code-block:: python
706
+
707
+ import schemathesis
708
+ from hypothesis import strategies as st
709
+
710
+ @schemathesis.hook
711
+ def after_load_schema(context, schema) -> None:
712
+ schema.generation_config.headers.strategy = st.text(
713
+ alphabet=st.characters(min_codepoint=1, max_codepoint=127)
714
+ )
715
+
654
716
  Generating payloads for unknown media types
655
717
  -------------------------------------------
656
718
 
@@ -1,18 +1,40 @@
1
1
  Welcome to Schemathesis!
2
2
  ========================
3
3
 
4
- Schemathesis is a tool that automates API testing by leveraging API specs as a blueprints for generating test cases.
4
+ Schemathesis is a tool that levels-up your API testing by leveraging API specs as a blueprints for generating test cases.
5
5
  It focuses on testing for general properties — such as ensuring no input leads to server errors and all responses adhere to the API spec — rather than just checking specific input-output combinations.
6
6
 
7
7
  This approach broadens your testing suite's capability to detect a wide range of potential issues, from trivial bugs to critical vulnerabilities.
8
8
 
9
- Built on top of the widely-used `Hypothesis <http://hypothesis.works/>`_ framework for property-based testing, it offers the following advantages:
9
+ With Schemathesis, you can:
10
10
 
11
- - 🕒 **Time-Saving**: Automatically generates test cases, freeing you from manual test writing.
12
- - 🔍 **Comprehensive**: Utilizes fuzzing techniques for both common and edge-case scenarios.
13
- - 🛠️ **Flexible**: Supports OpenAPI and GraphQL. Operates even with partially complete schemas.
14
- - 🎛️ **Customizable**: Extend almost any aspect of the testing process through Python.
15
- - 🔄 **Reproducible**: Generates code samples for quick replication of any failing test cases.
11
+ 🎯 **Catch Hard-to-Find Bugs**
12
+
13
+ - Uncover hidden crashes and edge cases that manual testing might miss
14
+ - Identify spec violations and ensure your API adheres to its defined contract
15
+
16
+ ⚡ **Accelerate Testing Cycles**
17
+
18
+ - Automatically generate a wide range of test cases based on your API schema
19
+ - Save time and effort by eliminating the need for manual test case creation
20
+
21
+ 🧩 **Integrate Seamlessly**
22
+
23
+ - Works with popular API formats such as OpenAPI, GraphQL.
24
+ - Easily integrate into your existing testing pipeline and CI/CD workflows
25
+
26
+ 🔧 **Customize and Extend**
27
+
28
+ - Tune the testing process to your specific requirements using Python extensions
29
+ - Modify and enhance various aspects of the testing flow to suit your needs with rich configuration options
30
+
31
+ 📊 **Gain Valuable Insights**
32
+
33
+ - Get detailed reports and actionable insights to help you identify and fix issues quickly
34
+ - Reproduce failing test cases effortlessly with generated code samples and cURL commands
35
+
36
+ How it works?
37
+ -------------
16
38
 
17
39
  Here’s a simplified overview of how Schemathesis works:
18
40
 
@@ -18,7 +18,7 @@ greenlet==3.0.1
18
18
  # via sqlalchemy
19
19
  itsdangerous==2.1.2
20
20
  # via flask
21
- jinja2==3.1.3
21
+ jinja2==3.1.4
22
22
  # via flask
23
23
  markupsafe==2.1.3
24
24
  # via
@@ -28,5 +28,5 @@ sqlalchemy==1.4.50
28
28
  # via
29
29
  # -r requirements-app.in
30
30
  # flask-sqlalchemy
31
- werkzeug==3.0.1
31
+ werkzeug==3.0.3
32
32
  # via flask