schemathesis 3.25.6__tar.gz → 3.26.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 (574) hide show
  1. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/build.yml +4 -4
  2. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/codeql-analysis.yml +4 -4
  3. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/codspeed.yml +1 -1
  4. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/commit.yml +1 -1
  5. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/example-build.yml +1 -1
  6. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/master_update.yml +1 -1
  7. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/release.yml +2 -2
  8. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/test-corpus.yml +1 -1
  9. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/test-hypothesis.yml +1 -1
  10. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/update-corpus.yml +2 -1
  11. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/update-pre-commit.yml +2 -1
  12. {schemathesis-3.25.6 → schemathesis-3.26.0}/.pre-commit-config.yaml +4 -4
  13. {schemathesis-3.25.6 → schemathesis-3.26.0}/PKG-INFO +8 -5
  14. {schemathesis-3.25.6 → schemathesis-3.26.0}/README.md +3 -1
  15. {schemathesis-3.25.6 → schemathesis-3.26.0}/changelog.py +1 -0
  16. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/api.rst +4 -0
  17. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/changelog.rst +20 -1
  18. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/data-generation.rst +119 -0
  19. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/experimental.rst +29 -1
  20. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/extending.rst +29 -0
  21. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/faq.rst +7 -0
  22. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/service.rst +21 -0
  23. {schemathesis-3.25.6 → schemathesis-3.26.0}/pyproject.toml +5 -4
  24. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/_dependency_versions.py +1 -0
  25. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/_hypothesis.py +1 -0
  26. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/_xml.py +1 -0
  27. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/auths.py +1 -0
  28. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/__init__.py +26 -18
  29. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/cassettes.py +4 -4
  30. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/context.py +4 -1
  31. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/output/default.py +154 -39
  32. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/output/short.py +4 -0
  33. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/experimental/__init__.py +7 -0
  34. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/filters.py +1 -0
  35. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/parameters.py +1 -0
  36. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/__init__.py +12 -0
  37. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/events.py +12 -0
  38. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/impl/core.py +29 -2
  39. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/probes.py +1 -0
  40. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/serialization.py +4 -2
  41. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/schemas.py +1 -0
  42. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/serializers.py +1 -1
  43. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/client.py +35 -2
  44. schemathesis-3.26.0/src/schemathesis/service/extensions.py +224 -0
  45. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/hosts.py +1 -0
  46. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/metadata.py +24 -0
  47. schemathesis-3.26.0/src/schemathesis/service/models.py +257 -0
  48. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/serialization.py +29 -1
  49. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/__init__.py +1 -0
  50. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/_hypothesis.py +8 -0
  51. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/expressions/__init__.py +1 -0
  52. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/expressions/lexer.py +1 -0
  53. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/expressions/nodes.py +1 -0
  54. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/links.py +1 -0
  55. schemathesis-3.26.0/src/schemathesis/specs/openapi/media_types.py +34 -0
  56. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/negative/mutations.py +1 -0
  57. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/security.py +5 -1
  58. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +1 -0
  59. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +1 -0
  60. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +1 -0
  61. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +1 -0
  62. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +1 -0
  63. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +1 -0
  64. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +1 -0
  65. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +1 -0
  66. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +1 -0
  67. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +1 -0
  68. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +1 -0
  69. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +1 -0
  70. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +1 -0
  71. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +1 -0
  72. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +1 -0
  73. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +1 -0
  74. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +1 -0
  75. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +1 -0
  76. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +1 -0
  77. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +1 -0
  78. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +1 -0
  79. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +1 -0
  80. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +1 -0
  81. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +1 -0
  82. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +1 -0
  83. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +1 -0
  84. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +1 -0
  85. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +1 -0
  86. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +1 -0
  87. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +1 -0
  88. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +1 -0
  89. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +1 -0
  90. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +1 -0
  91. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +1 -0
  92. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +1 -0
  93. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +1 -0
  94. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +1 -0
  95. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +1 -0
  96. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +1 -0
  97. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +1 -0
  98. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +1 -0
  99. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +1 -0
  100. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +1 -0
  101. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +1 -0
  102. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +1 -0
  103. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_group_errors.raw +1 -0
  104. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +2 -1
  105. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +2 -1
  106. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +2 -1
  107. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +2 -1
  108. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +2 -1
  109. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +2 -1
  110. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +2 -1
  111. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +2 -1
  112. {schemathesis-3.25.6 → schemathesis-3.26.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 +1 -0
  113. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0-'type' is a required property].raw +1 -0
  114. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_long_payload.raw +1 -0
  115. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +1 -0
  116. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +1 -0
  117. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +1 -0
  118. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +1 -0
  119. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +1 -0
  120. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +1 -0
  121. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +1 -0
  122. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +1 -0
  123. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +1 -0
  124. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +1 -0
  125. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +1 -0
  126. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +1 -0
  127. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +1 -0
  128. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +1 -0
  129. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +1 -0
  130. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +1 -0
  131. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +1 -0
  132. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +1 -0
  133. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +1 -0
  134. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +1 -0
  135. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +1 -0
  136. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +1 -0
  137. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +1 -0
  138. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +3 -2
  139. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +3 -2
  140. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +3 -2
  141. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +3 -2
  142. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +3 -2
  143. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +3 -2
  144. schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1-.....].raw +25 -0
  145. schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5-......].raw +25 -0
  146. schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1-.....].raw +25 -0
  147. schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5-......].raw +25 -0
  148. schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1-.....].raw +25 -0
  149. schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5-......].raw +25 -0
  150. schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1-.....].raw +25 -0
  151. schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5-......].raw +25 -0
  152. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +1 -0
  153. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +1 -0
  154. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +1 -0
  155. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +1 -0
  156. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +1 -0
  157. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +1 -0
  158. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +1 -0
  159. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +1 -0
  160. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +1 -0
  161. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +1 -0
  162. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +1 -0
  163. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +1 -0
  164. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +1 -0
  165. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +1 -0
  166. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +2 -1
  167. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +1 -0
  168. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +1 -0
  169. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +1 -0
  170. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +1 -0
  171. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +1 -0
  172. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +1 -0
  173. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +1 -0
  174. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +1 -0
  175. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +1 -0
  176. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +1 -0
  177. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +1 -0
  178. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +1 -0
  179. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +1 -0
  180. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +1 -0
  181. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +1 -0
  182. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +1 -0
  183. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +1 -0
  184. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +1 -0
  185. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +1 -2
  186. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +1 -0
  187. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +1 -0
  188. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +1 -0
  189. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/output/test_default.py +1 -1
  190. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_asgi.py +2 -2
  191. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_cassettes.py +4 -4
  192. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_commands.py +44 -36
  193. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +1 -0
  194. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +1 -0
  195. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/conftest.py +28 -2
  196. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +4 -3
  197. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +3 -2
  198. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +3 -2
  199. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +3 -2
  200. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +2 -1
  201. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +3 -2
  202. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +1 -0
  203. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/test_unique_data.py +1 -0
  204. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/loaders/test_common.py +1 -0
  205. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/loaders/test_graphql.py +1 -0
  206. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/loaders/test_openapi.py +1 -0
  207. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/runner/test_runner.py +11 -9
  208. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +9 -0
  209. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +1 -0
  210. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +12 -0
  211. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +59 -0
  212. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_custom_format.raw +47 -0
  213. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +39 -0
  214. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +55 -0
  215. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +49 -0
  216. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +58 -0
  217. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +75 -0
  218. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +64 -0
  219. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +64 -0
  220. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +47 -0
  221. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +47 -0
  222. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +56 -0
  223. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +47 -0
  224. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +47 -0
  225. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +47 -0
  226. schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +62 -0
  227. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/conftest.py +36 -1
  228. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/test_cli.py +17 -22
  229. schemathesis-3.26.0/test/service/test_extensions.py +537 -0
  230. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/test_report.py +3 -1
  231. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/test_serialization.py +6 -0
  232. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +1 -0
  233. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +1 -0
  234. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +1 -0
  235. schemathesis-3.26.0/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +35 -0
  236. schemathesis-3.26.0/test/specs/openapi/blank.pdf +154 -0
  237. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/parameters/test_forms.py +1 -0
  238. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/parameters/test_non_payload.py +1 -0
  239. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/parameters/test_simple_payloads.py +1 -0
  240. schemathesis-3.26.0/test/specs/openapi/test_media_types.py +78 -0
  241. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_security.py +16 -0
  242. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_serialization.py +1 -0
  243. {schemathesis-3.25.6 → schemathesis-3.26.0}/test-corpus/test_corpus.py +26 -1
  244. {schemathesis-3.25.6 → schemathesis-3.26.0}/tox.ini +1 -1
  245. schemathesis-3.25.6/src/schemathesis/service/models.py +0 -49
  246. {schemathesis-3.25.6 → schemathesis-3.26.0}/.dockerignore +0 -0
  247. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/FUNDING.yml +0 -0
  248. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  249. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  250. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  251. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/dependabot.yml +0 -0
  252. {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/example-no-build.yml +0 -0
  253. {schemathesis-3.25.6 → schemathesis-3.26.0}/.gitignore +0 -0
  254. {schemathesis-3.25.6 → schemathesis-3.26.0}/.gitmodules +0 -0
  255. {schemathesis-3.25.6 → schemathesis-3.26.0}/.readthedocs.yml +0 -0
  256. {schemathesis-3.25.6 → schemathesis-3.26.0}/.relint.yml +0 -0
  257. {schemathesis-3.25.6 → schemathesis-3.26.0}/.rstcheck.cfg +0 -0
  258. {schemathesis-3.25.6 → schemathesis-3.26.0}/.yamllint +0 -0
  259. {schemathesis-3.25.6 → schemathesis-3.26.0}/CITATION.cff +0 -0
  260. {schemathesis-3.25.6 → schemathesis-3.26.0}/CODE_OF_CONDUCT.md +0 -0
  261. {schemathesis-3.25.6 → schemathesis-3.26.0}/CONTRIBUTING.rst +0 -0
  262. {schemathesis-3.25.6 → schemathesis-3.26.0}/Dockerfile +0 -0
  263. {schemathesis-3.25.6 → schemathesis-3.26.0}/Dockerfile.bookworm +0 -0
  264. {schemathesis-3.25.6 → schemathesis-3.26.0}/LICENSE +0 -0
  265. {schemathesis-3.25.6 → schemathesis-3.26.0}/benches/cli.py +0 -0
  266. {schemathesis-3.25.6 → schemathesis-3.26.0}/benches/references.py +0 -0
  267. {schemathesis-3.25.6 → schemathesis-3.26.0}/codecov.yml +0 -0
  268. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/Makefile +0 -0
  269. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/additional-content.rst +0 -0
  270. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/auth.rst +0 -0
  271. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/cli.rst +0 -0
  272. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/compatibility.rst +0 -0
  273. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/conf.py +0 -0
  274. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/continuous_integration.rst +0 -0
  275. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/contrib.rst +0 -0
  276. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/examples.rst +0 -0
  277. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/getting-started.rst +0 -0
  278. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/graphql.rst +0 -0
  279. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/index.rst +0 -0
  280. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/python.rst +0 -0
  281. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/recipes.rst +0 -0
  282. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/requirements.txt +0 -0
  283. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/sanitizing.rst +0 -0
  284. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/stateful.rst +0 -0
  285. {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/targeted.rst +0 -0
  286. {schemathesis-3.25.6 → schemathesis-3.26.0}/example/Dockerfile +0 -0
  287. {schemathesis-3.25.6 → schemathesis-3.26.0}/example/README.md +0 -0
  288. {schemathesis-3.25.6 → schemathesis-3.26.0}/example/app.py +0 -0
  289. {schemathesis-3.25.6 → schemathesis-3.26.0}/example/compose.yml +0 -0
  290. {schemathesis-3.25.6 → schemathesis-3.26.0}/example/openapi.json +0 -0
  291. {schemathesis-3.25.6 → schemathesis-3.26.0}/example/requirements-app.in +0 -0
  292. {schemathesis-3.25.6 → schemathesis-3.26.0}/example/requirements-app.txt +0 -0
  293. {schemathesis-3.25.6 → schemathesis-3.26.0}/example/requirements-pytest.in +0 -0
  294. {schemathesis-3.25.6 → schemathesis-3.26.0}/example/requirements-pytest.txt +0 -0
  295. {schemathesis-3.25.6 → schemathesis-3.26.0}/example/tests/__init__.py +0 -0
  296. {schemathesis-3.25.6 → schemathesis-3.26.0}/example/tests/conftest.py +0 -0
  297. {schemathesis-3.25.6 → schemathesis-3.26.0}/example/tests/extensions.py +0 -0
  298. {schemathesis-3.25.6 → schemathesis-3.26.0}/example/tests/test_app.py +0 -0
  299. {schemathesis-3.25.6 → schemathesis-3.26.0}/img/demo.gif +0 -0
  300. {schemathesis-3.25.6 → schemathesis-3.26.0}/img/service_github_report.png +0 -0
  301. {schemathesis-3.25.6 → schemathesis-3.26.0}/mypy.ini +0 -0
  302. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/__init__.py +0 -0
  303. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/_compat.py +0 -0
  304. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/_lazy_import.py +0 -0
  305. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/_override.py +0 -0
  306. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/checks.py +0 -0
  307. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/callbacks.py +0 -0
  308. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/constants.py +0 -0
  309. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/debug.py +0 -0
  310. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/handlers.py +0 -0
  311. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/junitxml.py +0 -0
  312. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/options.py +0 -0
  313. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/output/__init__.py +0 -0
  314. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/sanitization.py +0 -0
  315. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/code_samples.py +0 -0
  316. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/constants.py +0 -0
  317. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/contrib/__init__.py +0 -0
  318. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/contrib/openapi/__init__.py +0 -0
  319. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
  320. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
  321. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
  322. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/contrib/unique_data.py +0 -0
  323. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/exceptions.py +0 -0
  324. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/extra/__init__.py +0 -0
  325. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/extra/_aiohttp.py +0 -0
  326. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/extra/_flask.py +0 -0
  327. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/extra/_server.py +0 -0
  328. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/extra/pytest_plugin.py +0 -0
  329. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/failures.py +0 -0
  330. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/fixups/__init__.py +0 -0
  331. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/fixups/fast_api.py +0 -0
  332. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/fixups/utf8_bom.py +0 -0
  333. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/generation/__init__.py +0 -0
  334. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/graphql.py +0 -0
  335. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/hooks.py +0 -0
  336. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/__init__.py +0 -0
  337. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/copy.py +0 -0
  338. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/datetime.py +0 -0
  339. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/deprecation.py +0 -0
  340. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/jsonschema.py +0 -0
  341. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/result.py +0 -0
  342. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/transformation.py +0 -0
  343. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/validation.py +0 -0
  344. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/lazy.py +0 -0
  345. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/loaders.py +0 -0
  346. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/models.py +0 -0
  347. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/py.typed +0 -0
  348. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/impl/__init__.py +0 -0
  349. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/impl/solo.py +0 -0
  350. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/impl/threadpool.py +0 -0
  351. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/sanitization.py +0 -0
  352. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/__init__.py +0 -0
  353. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/auth.py +0 -0
  354. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/ci.py +0 -0
  355. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/constants.py +0 -0
  356. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/events.py +0 -0
  357. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/report.py +0 -0
  358. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/usage.py +0 -0
  359. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/__init__.py +0 -0
  360. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/graphql/__init__.py +0 -0
  361. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/graphql/loaders.py +0 -0
  362. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/graphql/nodes.py +0 -0
  363. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/graphql/scalars.py +0 -0
  364. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/graphql/schemas.py +0 -0
  365. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/graphql/validation.py +0 -0
  366. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/checks.py +0 -0
  367. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/constants.py +0 -0
  368. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/converter.py +0 -0
  369. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/definitions.py +0 -0
  370. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/examples.py +0 -0
  371. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
  372. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
  373. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
  374. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/filters.py +0 -0
  375. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/formats.py +0 -0
  376. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/loaders.py +0 -0
  377. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
  378. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/negative/types.py +0 -0
  379. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
  380. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/parameters.py +0 -0
  381. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/references.py +0 -0
  382. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/schemas.py +0 -0
  383. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/serialization.py +0 -0
  384. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
  385. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/stateful/links.py +0 -0
  386. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/utils.py +0 -0
  387. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/validation.py +0 -0
  388. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/stateful/__init__.py +0 -0
  389. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/stateful/state_machine.py +0 -0
  390. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/targets.py +0 -0
  391. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/throttling.py +0 -0
  392. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/transports/__init__.py +0 -0
  393. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/transports/auth.py +0 -0
  394. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/transports/content_types.py +0 -0
  395. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/transports/headers.py +0 -0
  396. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/transports/responses.py +0 -0
  397. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/types.py +0 -0
  398. {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/utils.py +0 -0
  399. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/__init__.py +0 -0
  400. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/__init__.py +0 -0
  401. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/_graphql/__init__.py +0 -0
  402. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/_graphql/_fastapi/__init__.py +0 -0
  403. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/_graphql/_fastapi/app.py +0 -0
  404. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/_graphql/_flask/__init__.py +0 -0
  405. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/_graphql/_flask/app.py +0 -0
  406. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/_graphql/schema.py +0 -0
  407. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/__init__.py +0 -0
  408. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_aiohttp/__init__.py +0 -0
  409. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_aiohttp/app.py +0 -0
  410. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_aiohttp/handlers.py +0 -0
  411. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_fastapi/__init__.py +0 -0
  412. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_fastapi/app.py +0 -0
  413. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_flask/__init__.py +0 -0
  414. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_flask/app.py +0 -0
  415. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/schema.py +0 -0
  416. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__init__.py +0 -0
  417. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/conftest.py +0 -0
  418. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/test_cli.py +0 -0
  419. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/test_provider.py +0 -0
  420. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/test_pytest.py +0 -0
  421. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__init__.py +0 -0
  422. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
  423. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
  424. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
  425. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
  426. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
  427. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
  428. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
  429. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
  430. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
  431. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
  432. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
  433. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
  434. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
  435. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
  436. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
  437. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
  438. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
  439. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
  440. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
  441. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
  442. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
  443. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
  444. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
  445. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
  446. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
  447. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
  448. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
  449. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
  450. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
  451. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
  452. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
  453. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
  454. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
  455. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
  456. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
  457. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
  458. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
  459. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
  460. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
  461. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
  462. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
  463. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
  464. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
  465. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
  466. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
  467. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
  468. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
  469. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
  470. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
  471. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
  472. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
  473. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
  474. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
  475. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
  476. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
  477. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
  478. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
  479. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
  480. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/cert.pem +0 -0
  481. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/conftest.py +0 -0
  482. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/output/__init__.py +0 -0
  483. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_callbacks.py +0 -0
  484. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_checks.py +0 -0
  485. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_crashes.py +0 -0
  486. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_hooks.py +0 -0
  487. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_junitxml.py +0 -0
  488. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_options.py +0 -0
  489. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_targeted.py +0 -0
  490. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/code_samples/conftest.py +0 -0
  491. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/code_samples/test_curl.py +0 -0
  492. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/code_samples/test_python.py +0 -0
  493. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/openapi/formats/test_uuid.py +0 -0
  494. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
  495. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/test_install.py +0 -0
  496. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/data/petstore_v2.yaml +0 -0
  497. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/data/petstore_v3.yaml +0 -0
  498. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/data/simple_openapi.yaml +0 -0
  499. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/data/simple_swagger.yaml +0 -0
  500. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
  501. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/experimental/conftest.py +0 -0
  502. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/experimental/test_experiments.py +0 -0
  503. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/experimental/test_openapi_3_1.py +0 -0
  504. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/extra/__init__.py +0 -0
  505. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/extra/test_aiohttp.py +0 -0
  506. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/filters/test_matching.py +0 -0
  507. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/hooks/test_filter_operations.py +0 -0
  508. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/hooks/test_hooks.py +0 -0
  509. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/loaders/conftest.py +0 -0
  510. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/loaders/test_app.py +0 -0
  511. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/loaders/test_yaml.py +0 -0
  512. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/runner/test_checks.py +0 -0
  513. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/runner/test_events.py +0 -0
  514. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/runner/test_probes.py +0 -0
  515. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__init__.py +0 -0
  516. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_client_error_on_project_details[Open API 3.0].raw +0 -0
  517. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
  518. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
  519. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
  520. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_unauthorized[Open API 3.0].raw +0 -0
  521. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
  522. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
  523. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/test_auth.py +0 -0
  524. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/test_ci.py +0 -0
  525. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/test_usage.py +0 -0
  526. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
  527. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
  528. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/test_basic.py +0 -0
  529. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/test_custom_scalars.py +0 -0
  530. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/test_pytest.py +0 -0
  531. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/conftest.py +0 -0
  532. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_examples.py +0 -0
  533. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_expressions.py +0 -0
  534. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_hypothesis.py +0 -0
  535. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_links.py +0 -0
  536. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_negative.py +0 -0
  537. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_parameters.py +0 -0
  538. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_schemas.py +0 -0
  539. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_serializing.py +0 -0
  540. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_stateful.py +0 -0
  541. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_utils.py +0 -0
  542. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_validation.py +0 -0
  543. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_app.py +0 -0
  544. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_asgi.py +0 -0
  545. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_async.py +0 -0
  546. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_common_parameters.py +0 -0
  547. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_converter.py +0 -0
  548. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_dereferencing.py +0 -0
  549. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_direct_access.py +0 -0
  550. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_errors.py +0 -0
  551. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_examples.py +0 -0
  552. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_filters.py +0 -0
  553. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_fixups.py +0 -0
  554. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_hypothesis.py +0 -0
  555. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_internal.py +0 -0
  556. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_lazy.py +0 -0
  557. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_models.py +0 -0
  558. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_package.py +0 -0
  559. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_parameters.py +0 -0
  560. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_parametrization.py +0 -0
  561. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_petstore.py +0 -0
  562. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_pytest.py +0 -0
  563. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_rate_limit.py +0 -0
  564. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_recoverable_errors.py +0 -0
  565. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_required.py +0 -0
  566. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_sanitizing_output.py +0 -0
  567. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_schemas.py +0 -0
  568. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_stateful.py +0 -0
  569. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_unittest.py +0 -0
  570. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_utils.py +0 -0
  571. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_wsgi.py +0 -0
  572. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/transports/test_content_types.py +0 -0
  573. {schemathesis-3.25.6 → schemathesis-3.26.0}/test/utils.py +0 -0
  574. {schemathesis-3.25.6 → schemathesis-3.26.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.1
29
+ - uses: actions/checkout@v4.1.2
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.1
44
+ - uses: actions/checkout@v4.1.2
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.1
69
+ - uses: actions/checkout@v4.1.2
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.0.2
86
+ uses: codecov/codecov-action@v4.1.0
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.1
33
+ uses: actions/checkout@v4.1.2
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.5
41
+ uses: github/codeql-action/init@v3.24.7
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.5
52
+ uses: github/codeql-action/autobuild@v3.24.7
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.5
66
+ uses: github/codeql-action/analyze@v3.24.7
@@ -11,7 +11,7 @@ jobs:
11
11
  benchmarks:
12
12
  runs-on: ubuntu-latest
13
13
  steps:
14
- - uses: actions/checkout@v4.1.1
14
+ - uses: actions/checkout@v4.1.2
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.1
15
+ uses: actions/checkout@v4.1.2
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.1
19
+ - uses: actions/checkout@v4.1.2
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.1
23
+ - uses: actions/checkout@v4.1.2
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.1
22
+ - uses: actions/checkout@v4.1.2
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.1
71
+ - uses: actions/checkout@v4.1.2
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.1
18
+ - uses: actions/checkout@v4.1.2
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.1
14
+ - uses: actions/checkout@v4.1.2
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.1
13
+ - uses: actions/checkout@v4.1.2
14
14
  with:
15
15
  fetch-depth: 1
16
16
  submodules: true
@@ -27,3 +27,4 @@ jobs:
27
27
  commit-message: 'chore: Update test corpus'
28
28
  committer: 'CI on behalf of the Schemathesis team <team@schemathesis.io>'
29
29
  author: 'CI on behalf of the Schemathesis team <team@schemathesis.io>'
30
+ branch: "create-pull-request/update-test-corpus"
@@ -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.1
13
+ - uses: actions/checkout@v4.1.2
14
14
  with:
15
15
  fetch-depth: 1
16
16
  submodules: true
@@ -28,3 +28,4 @@ jobs:
28
28
  commit-message: 'chore: Update pre-commit'
29
29
  committer: 'CI on behalf of the Schemathesis team <team@schemathesis.io>'
30
30
  author: 'CI on behalf of the Schemathesis team <team@schemathesis.io>'
31
+ branch: "create-pull-request/update-pre-commit"
@@ -20,7 +20,7 @@ repos:
20
20
  - id: gitlint
21
21
 
22
22
  - repo: https://github.com/adrienverge/yamllint
23
- rev: v1.34.0
23
+ rev: v1.35.1
24
24
  hooks:
25
25
  - id: yamllint
26
26
 
@@ -30,7 +30,7 @@ repos:
30
30
  - id: relint
31
31
 
32
32
  - repo: https://github.com/pre-commit/mirrors-mypy
33
- rev: v1.8.0
33
+ rev: v1.9.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.2.1
41
+ rev: v0.3.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.2.1
46
+ rev: v0.3.3
47
47
  hooks:
48
48
  - id: ruff
49
49
 
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: schemathesis
3
- Version: 3.25.6
3
+ Version: 3.26.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
7
7
  Project-URL: Bug Tracker, https://github.com/schemathesis/schemathesis
8
8
  Project-URL: Funding, https://github.com/sponsors/Stranger6667
9
9
  Project-URL: Source Code, https://github.com/schemathesis/schemathesis
10
- Author-email: Dmitry Dygalo <dadygalo@gmail.com>
11
- Maintainer-email: Dmitry Dygalo <dadygalo@gmail.com>
10
+ Author-email: Dmitry Dygalo <dmitry@dygalo.dev>
11
+ Maintainer-email: Dmitry Dygalo <dmitry@dygalo.dev>
12
12
  License-Expression: MIT
13
13
  License-File: LICENSE
14
14
  Keywords: graphql,hypothesis,openapi,pytest,testing
@@ -35,7 +35,8 @@ Requires-Dist: colorama<1.0,>=0.4
35
35
  Requires-Dist: httpx<1.0,>=0.22.0
36
36
  Requires-Dist: hypothesis-graphql<1,>=0.11.0
37
37
  Requires-Dist: hypothesis-jsonschema<0.24,>=0.23.1
38
- Requires-Dist: hypothesis<7,>=6.84.3
38
+ Requires-Dist: hypothesis<7,>=6.84.3; python_version > '3.8'
39
+ Requires-Dist: hypothesis[zoneinfo]<7,>=6.84.3; python_version == '3.8'
39
40
  Requires-Dist: jsonschema<5.0,>=4.18.0
40
41
  Requires-Dist: junit-xml<2.0,>=1.9
41
42
  Requires-Dist: pyrate-limiter<3.0,>=2.10
@@ -224,7 +225,9 @@ Receive automatic comments in your pull requests and updates on GitHub checks st
224
225
 
225
226
  ### Software as a Service
226
227
 
227
- If you prefer an all-in-one solution with quick setup, we have a [free tier](https://schemathesis.io/#pricing) available.
228
+ Schemathesis CLI integrates with Schemathesis.io to enhance bug detection by optimizing test case generation for efficiency and realism. It leverages various techniques to infer appropriate data generation strategies, provide support for uncommon media types, and adjust schemas for faster data generation. The integration also detects the web server being used to generate more targeted test data.
229
+
230
+ Schemathesis.io offers a user-friendly UI that simplifies viewing and analyzing test results. If you prefer an all-in-one solution with quick setup, we have a [free tier](https://schemathesis.io/#pricing) available.
228
231
 
229
232
  ## How it works
230
233
 
@@ -146,7 +146,9 @@ Receive automatic comments in your pull requests and updates on GitHub checks st
146
146
 
147
147
  ### Software as a Service
148
148
 
149
- If you prefer an all-in-one solution with quick setup, we have a [free tier](https://schemathesis.io/#pricing) available.
149
+ Schemathesis CLI integrates with Schemathesis.io to enhance bug detection by optimizing test case generation for efficiency and realism. It leverages various techniques to infer appropriate data generation strategies, provide support for uncommon media types, and adjust schemas for faster data generation. The integration also detects the web server being used to generate more targeted test data.
150
+
151
+ Schemathesis.io offers a user-friendly UI that simplifies viewing and analyzing test results. If you prefer an all-in-one solution with quick setup, we have a [free tier](https://schemathesis.io/#pricing) available.
150
152
 
151
153
  ## How it works
152
154
 
@@ -1,4 +1,5 @@
1
1
  """Simple CLI for changelog management."""
2
+
2
3
  from __future__ import annotations
3
4
  import argparse
4
5
  import datetime
@@ -92,6 +92,10 @@ Custom strategies for Open API "format" keyword
92
92
 
93
93
  .. autofunction:: schemathesis.openapi.format
94
94
 
95
+ Custom strategies for Open API media types
96
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
97
+
98
+ .. autofunction:: schemathesis.openapi.media_type
95
99
 
96
100
  Custom scalars for GraphQL
97
101
  ~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1,9 +1,28 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
- :version:`Unreleased <v3.25.6...HEAD>` - TBD
4
+ :version:`Unreleased <v3.26.0...HEAD>` - TBD
5
5
  --------------------------------------------
6
6
 
7
+ .. _v3.26.0:
8
+
9
+ :version:`3.26.0 <v3.25.6...v3.26.0>` - 2024-03-21
10
+ --------------------------------------------------
11
+
12
+ **Added**
13
+
14
+ - Support for per-media type data generators. :issue:`962`
15
+ - Support for ``application/yaml`` & ``text/yml`` media types in ``YAMLSerializer``.
16
+ - **EXPERIMENTAL**: Run automatic schema optimization & format inference if CLI is authenticated in Schemathesis.io.
17
+
18
+ **Fixed**
19
+
20
+ - Not resolving references in nested security schemes. :issue:`2073`
21
+
22
+ **Changed**
23
+
24
+ - Improve error message when the minimum possible example is too large.
25
+
7
26
  .. _v3.25.6:
8
27
 
9
28
  :version:`3.25.6 <v3.25.5...v3.25.6>` - 2024-03-02
@@ -12,6 +12,125 @@ Schemathesis converts Open API schemas to compatible JSON Schemas and passes the
12
12
  There are many tradeoffs in this process, and Hypothesis tries to give reasonable defaults for a typical case
13
13
  and not be too slow for pathological cases.
14
14
 
15
+ .. _data-generation-overview:
16
+
17
+ Overview
18
+ --------
19
+
20
+ For each API operation, Schemathesis follows a strict order in its test generation process, which includes several phases: explicit examples usage, rerunning previously failed tests, random test generation, and test case minimization (shrinking).
21
+ Each phase targets distinct testing aspects:
22
+
23
+ - **Explicit examples** (`explicit`): Uses predefined examples from the schema.
24
+ - **Rerunning known failures** (`reuse`): Reuses previously failed test cases to check whether they are still failing.
25
+ - **Random generation** (`generate`): Generates random test cases based on the schema.
26
+ - **Shrinking** (`shrink`): Minimizes the failing test cases to make them easier to understand and debug.
27
+
28
+ These phases can be selectively enabled or disabled to configure the testing process:
29
+
30
+ .. code:: shell
31
+
32
+ # To disable the shrinking phase
33
+ --hypothesis-no-phases=shrink
34
+
35
+ # To only include the generate and shrink phases
36
+ --hypothesis-phases=generate,shrink
37
+
38
+ Additionally, you can control the upper limit of generated test cases (only for the ``generate`` phase) via the ``--hypothesis-max-examples`` option.
39
+
40
+ .. code:: shell
41
+
42
+ # Raise the upper cap for generated test cases per operation
43
+ --hypothesis-max-examples=1000
44
+
45
+ The generation process is inherently randomized and is designed for efficient testing, favoring speed and maintaining reasonable coverage over exhaustive testing.
46
+ It also means that Schemathesis does not guarantee the full coverage of all possible variants, but will do its best to generate a diverse set of test cases with minimal duplication.
47
+
48
+ The number of generated tests is affected by the schema's complexity and the distinctness of possible test cases.
49
+ Simple schemas with a clear set of distinct values, like a boolean, naturally limit the total number of unique test cases.
50
+ Conversely, complex schemas with many nested objects and arrays can produce a large number of unique test cases.
51
+
52
+ When Schemathesis finds a minimal failing test case, it stops the test case generation process and verifies whether the failure could be consistently reproduced by rerunning it one more time.
53
+ It also caches distinct minimized failures for reuse in subsequent runs, aiding in catching regressions.
54
+
55
+ Explicit examples
56
+ ~~~~~~~~~~~~~~~~~
57
+
58
+ This phase uses examples directly from the API schema, filling missing parts with random data.
59
+ If the schema specifies multiple examples for a parameter, then Schemathesis will use a round-robin strategy to ensure all examples are tested.
60
+
61
+ .. code:: shell
62
+
63
+ # Schema
64
+ {
65
+ "type": "object",
66
+ "properties": {
67
+ "name": {"type": "string", "example": "John"},
68
+ "age": {"type": "integer", "examples": [42, 43]},
69
+ "street": {"type": "string"}
70
+ }
71
+ }
72
+ # Test cases
73
+ {"name": "John", "age": 42, "street": "<RANDOM STRING>"}
74
+ {"name": "John", "age": 43, "street": "<ANOTHER RANDOM STRING>"}
75
+
76
+ Reusing known failures
77
+ ~~~~~~~~~~~~~~~~~~~~~~
78
+
79
+ Schemathesis stores failed test cases in a cache (the ``.hypothesis`` directory) and reruns them in subsequent runs to detect regressions.
80
+ This phase may reduce the total number of generated test cases as Schemathesis may find failures earlier.
81
+
82
+ Generating random test cases
83
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
84
+
85
+ The generation process is governed by the ``--data-generation-method`` CLI option, and creates valid (``positive``) or guaranteed invalid (``negative``) test cases based on the schema.
86
+ If negative testing is inapplicable (e.g., when any input is accepted), the tests are skipped.
87
+
88
+ Example:
89
+
90
+ .. code:: shell
91
+
92
+ # Schema
93
+ {
94
+ "type": "object",
95
+ "properties": {
96
+ "name": {"type": "string"}
97
+ }
98
+ }
99
+
100
+ # Positive testing
101
+ {"name": "John"}
102
+
103
+ # Negative testing
104
+ {"name": 42}
105
+
106
+ The upper limit of generated test cases could be controlled via the ``--hypothesis-max-examples`` option.
107
+
108
+ Test case minimization
109
+ ~~~~~~~~~~~~~~~~~~~~~~
110
+
111
+ This phase focuses on reducing the complexity of failing test cases to make them easier to understand and debug.
112
+
113
+ While beneficial for isolating issues in complex schemas, it can be time-consuming.
114
+ Disabling shrinking (``--hypothesis-no-phases=shrink``) may be advantageous when the source of an error is apparent and can be debugged straightforwardly.
115
+
116
+ .. code:: shell
117
+
118
+ # Schema
119
+ {
120
+ "type": "object",
121
+ "properties": {
122
+ "name": {"type": "string", "minLength": 5}
123
+ }
124
+ }
125
+
126
+ # Failing test case
127
+ {"name": "Very long name"}
128
+
129
+ # Minimized test case
130
+ {"name": "aaaaa"}
131
+
132
+ Shrinking works for arbitrary complex structures allowing to avoid digging through large payloads.
133
+
15
134
  Generating strings
16
135
  ------------------
17
136
 
@@ -110,7 +110,35 @@ To enable OpenAPI 3.1 support via environment variables, you can set:
110
110
 
111
111
  export SCHEMATHESIS_EXPERIMENTAL_OPENAPI_3_1=true
112
112
 
113
- For more details, join the `GitHub Discussion <https://github.com/schemathesis/schemathesis/discussions/1822>`_.
113
+ For more details, join the `GitHub Discussion #1822 <https://github.com/schemathesis/schemathesis/discussions/1822>`_.
114
+
115
+ Schema Analysis
116
+ ~~~~~~~~~~~~~~~
117
+
118
+ Enables integration with Schemathesis.io to optimize test case generation for better bug detection.
119
+ This feature infers appropriate data generation strategies, supports uncommon media types, adjusts schemas for faster data generation, and detects the web server to generate more targeted test data.
120
+
121
+ .. _schema-analysis-cli:
122
+
123
+ In CLI
124
+ ~~~~~~
125
+
126
+ .. code-block:: bash
127
+
128
+ st run https://example.schemathesis.io/openapi.json --experimental=schema-analysis
129
+
130
+ .. _schema-analysis-env-vars:
131
+
132
+ Using Environment Variables
133
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
134
+
135
+ To enable schema analysis support via environment variables, you can set:
136
+
137
+ .. code-block:: bash
138
+
139
+ export SCHEMATHESIS_EXPERIMENTAL_SCHEMA_ANALYSIS=true
140
+
141
+ For more details, join the `GitHub Discussion #2056 <https://github.com/schemathesis/schemathesis/discussions/2056>`_.
114
142
 
115
143
  Stabilization of Experimental Features
116
144
  --------------------------------------
@@ -645,6 +645,35 @@ In the example above, when Schemathesis detects a string with the "card_number"
645
645
 
646
646
  For more details about creating strategies, refer to the `Hypothesis documentation <https://hypothesis.readthedocs.io/en/latest/data.html>`_.
647
647
 
648
+ Generating payloads for unknown media types
649
+ -------------------------------------------
650
+
651
+ Each request payload in Open API is associated with a media type, which defines the format of the payload content.
652
+ Schemathesis allows you to manage the generation of payloads by registering Hypothesis strategies for specific media types.
653
+
654
+ Schemathesis generates request payload, it first checks whether there is a custom generation strategy registered for the media type.
655
+ If a strategy is registered, it will be used to generate the payload content; otherwise, it will generate payloads based on the schema.
656
+
657
+ - **Create a Hypothesis Strategy**: Create a strategy that generates binary payloads compliant with the media type.
658
+ - **Register the Strategy**: Make it known to Schemathesis using ``schemathesis.openapi.media_type``.
659
+
660
+ .. code-block:: python
661
+
662
+ from hypothesis import strategies as st
663
+ import schemathesis
664
+
665
+ # Define your own strategy for generating PDFs
666
+ # NOTE: This is a simplified example, actual PDF generation is much more complex
667
+ pdfs = st.sampled_from([b"%PDF-1.5...", b"%PDF-1.6..."])
668
+
669
+ # Register the strategy for "application/pdf" media type
670
+ schemathesis.openapi.media_type("application/pdf", pdfs)
671
+ # You can also specify one or more additional aliases for the media type
672
+ schemathesis.openapi.media_type("application/pdf", pdfs, aliases=["application/x-pdf"])
673
+
674
+ In this example, ``pdfs`` would be a Hypothesis strategy that generates binary data compliant with the PDF format.
675
+ When Schemathesis encounters a request payload with the "application/pdf" media type, it uses the registered strategy to generate the payload content.
676
+
648
677
  Schemathesis test runner
649
678
  ------------------------
650
679
 
@@ -15,6 +15,13 @@ This data consists of all possible data types from the JSON schema specification
15
15
  We can't guarantee that the generated data will always be accepted by the application under test since there could be validation rules not covered by the API schema.
16
16
  If you found that Schemathesis generated something that doesn't fit the API schema, consider `reporting a bug <https://github.com/schemathesis/schemathesis/issues/new?assignees=Stranger6667&labels=Status%3A+Review+Needed%2C+Type%3A+Bug&template=bug_report.md&title=%5BBUG%5D>`_
17
17
 
18
+ How many tests does Schemathesis execute for an API operation?
19
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20
+
21
+ The total number of tests Schemathesis executes is influenced by the API schema's complexity, user-defined settings like ``--hypothesis-max-examples`` for the maximum tests generated, and the test generation phases (``explicit``, ``generate``, ``reuse``, and ``shrink``).
22
+ The process is designed to optimize coverage within a reasonable test budget rather than aiming for exhaustive coverage.
23
+ For detailed insights and customization options, refer to our :ref:`data generation docs <data-generation-overview>`.
24
+
18
25
  What kind errors Schemathesis is capable to find?
19
26
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20
27
 
@@ -7,6 +7,27 @@ Schemathesis as a Service on `Schemathesis.io <https://app.schemathesis.io/auth/
7
7
 
8
8
  For a step-by-step guide on getting started with Schemathesis.io, visit our `Quick Start Guide <https://docs.schemathesis.io/quick-start/>`_.
9
9
 
10
+ Schema Analysis (Experimental)
11
+ ------------------------------
12
+
13
+ Schemathesis CLI now includes an experimental feature that integrates with Schemathesis.io to improve the efficiency and realism of generated test cases for better bug detection. This feature optimizes test case generation by:
14
+
15
+ - Inferring "format" keywords for appropriate string data generation
16
+ - Providing data generation strategies for uncommon media types (e.g., application/pdf)
17
+ - Inferring data generation strategies for GraphQL scalars
18
+ - Adjusting schemas for faster data generation in Schemathesis
19
+ - Detecting the web server to generate more targeted test data and avoid rejected inputs
20
+
21
+ By enabling this feature, you can potentially benefit from faster achievement of higher edge case coverage and tests that reach deeper into your API implementation.
22
+
23
+ To enable schema analysis, use the ``--experimental=schema-analysis`` CLI option. It is also automatically enabled when the ``--report`` CLI option is used.
24
+
25
+ .. note::
26
+
27
+ During the experimental phase, schema analysis is available free of charge and does not require signup. By using this feature, you automatically agree to Schemathesis.io's `Terms of Service <https://schemathesis.io/legal/terms>`_ and `Privacy Policy`_.
28
+
29
+ Please note that this feature is still experimental, and its effectiveness may vary depending on the API being tested. We are actively refining the algorithms and techniques used. If you encounter any issues or have suggestions, please open an issue on our GitHub repository or reach out via our support channels.
30
+
10
31
  Uploading Reports to Schemathesis.io
11
32
  ------------------------------------
12
33
 
@@ -4,11 +4,11 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "schemathesis"
7
- version = "3.25.6"
7
+ version = "3.26.0"
8
8
  description = "Property-based testing framework for Open API and GraphQL based apps"
9
9
  keywords = ["pytest", "hypothesis", "openapi", "graphql", "testing"]
10
- authors = [{ name = "Dmitry Dygalo", email = "dadygalo@gmail.com" }]
11
- maintainers = [{ name = "Dmitry Dygalo", email = "dadygalo@gmail.com" }]
10
+ authors = [{ name = "Dmitry Dygalo", email = "dmitry@dygalo.dev" }]
11
+ maintainers = [{ name = "Dmitry Dygalo", email = "dmitry@dygalo.dev" }]
12
12
  requires-python = ">=3.8"
13
13
  license = "MIT"
14
14
  readme = "README.md"
@@ -36,7 +36,8 @@ dependencies = [
36
36
  "click>=7.0,<9.0",
37
37
  "colorama>=0.4,<1.0",
38
38
  "httpx>=0.22.0,<1.0",
39
- "hypothesis>=6.84.3,<7",
39
+ "hypothesis>=6.84.3,<7; python_version > '3.8'",
40
+ "hypothesis[zoneinfo]>=6.84.3,<7; python_version == '3.8'",
40
41
  "hypothesis_graphql>=0.11.0,<1",
41
42
  "hypothesis_jsonschema>=0.23.1,<0.24",
42
43
  "jsonschema>=4.18.0,<5.0",
@@ -1,4 +1,5 @@
1
1
  """Compatibility flags based on installed dependency versions."""
2
+
2
3
  from packaging import version
3
4
 
4
5
  from importlib import metadata
@@ -1,4 +1,5 @@
1
1
  """High-level API for creating Hypothesis tests."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  import asyncio
@@ -1,4 +1,5 @@
1
1
  """XML serialization."""
2
+
2
3
  from __future__ import annotations
3
4
  from io import StringIO
4
5
  from typing import Any, Dict, List, Union
@@ -1,4 +1,5 @@
1
1
  """Support for custom API authentication mechanisms."""
2
+
2
3
  from __future__ import annotations
3
4
  import inspect
4
5
  import threading