schemathesis 4.0.0a4__tar.gz → 4.0.0a5__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 (605) hide show
  1. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/codeql-analysis.yml +3 -3
  2. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.pre-commit-config.yaml +3 -3
  3. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/PKG-INFO +7 -26
  4. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/README.md +6 -25
  5. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/changelog.rst +45 -1
  6. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/contrib.rst +1 -1
  7. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/experimental.rst +0 -60
  8. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/pyproject.toml +1 -1
  9. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/__init__.py +14 -44
  10. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/checks.py +2 -3
  11. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/context.py +30 -17
  12. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/executor.py +1 -0
  13. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/handlers/output.py +167 -87
  14. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/hypothesis.py +7 -45
  15. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/__init__.py +7 -1
  16. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/config.py +2 -2
  17. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/core.py +11 -1
  18. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/events.py +7 -0
  19. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/__init__.py +16 -4
  20. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/unit/__init__.py +77 -52
  21. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/unit/_executor.py +14 -12
  22. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/unit/_pool.py +8 -0
  23. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/experimental/__init__.py +0 -6
  24. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/hypothesis/builder.py +222 -97
  25. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/openapi/checks.py +3 -1
  26. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/pytest/lazy.py +41 -2
  27. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/pytest/plugin.py +2 -1
  28. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/checks.py +1 -1
  29. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/examples.py +2 -5
  30. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/patterns.py +24 -7
  31. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/serialization.py +14 -0
  32. schemathesis-4.0.0a5/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +60 -0
  33. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +14 -4
  34. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +7 -5
  35. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +26 -5
  36. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +26 -5
  37. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +15 -5
  38. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_aiohttp/handlers.py +8 -0
  39. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/schema.py +2 -0
  40. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +14 -4
  41. schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw → schemathesis-4.0.0a5/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +14 -8
  42. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +14 -4
  43. schemathesis-4.0.0a5/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +49 -0
  44. schemathesis-4.0.0a5/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +60 -0
  45. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +25 -4
  46. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +14 -4
  47. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 2.0].raw +14 -4
  48. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 3.0].raw +14 -4
  49. schemathesis-4.0.0a5/test/cli/__snapshots__/test_checks/test_negative_data_rejection_displays_all_cases.raw +99 -0
  50. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args0].raw +25 -4
  51. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args10].raw +14 -4
  52. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args1].raw +25 -4
  53. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args2].raw +14 -4
  54. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args3].raw +25 -4
  55. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args4].raw +14 -4
  56. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args5].raw +25 -4
  57. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args6].raw +14 -4
  58. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args7].raw +25 -4
  59. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance_with_env_vars.raw +14 -4
  60. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +14 -4
  61. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +14 -4
  62. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +14 -4
  63. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +14 -4
  64. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +14 -4
  65. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +7 -5
  66. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_cli_run_changed_base_url[Open API 3.0].raw +14 -4
  67. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 2.0-1].raw +14 -4
  68. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 2.0-2].raw +14 -4
  69. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 3.0-1].raw +14 -4
  70. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[Open API 3.0-2].raw +14 -4
  71. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +7 -5
  72. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +14 -4
  73. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +14 -4
  74. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +14 -4
  75. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +14 -4
  76. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +7 -5
  77. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +7 -5
  78. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +7 -5
  79. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +7 -5
  80. schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +53 -0
  81. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_dont_skip_when_generation_is_possible[Open API 3.0].raw +14 -4
  82. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_empty_schema_file.raw +1 -1
  83. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_exit_first[Open API 3.0].raw +6 -4
  84. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +14 -4
  85. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +14 -4
  86. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +14 -4
  87. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +14 -4
  88. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +14 -4
  89. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_filter_case_sensitivity[Open API 3.0].raw +14 -4
  90. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +6 -4
  91. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +6 -4
  92. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +6 -4
  93. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +6 -4
  94. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_group_errors.raw +15 -5
  95. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 2.0-1].raw +7 -5
  96. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 3.0-1].raw +7 -5
  97. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +15 -5
  98. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +15 -5
  99. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +1 -1
  100. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 2.0-1].raw +13 -5
  101. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 3.0-1].raw +13 -5
  102. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_during_schema_loading.raw +1 -1
  103. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 2.0].raw +8 -5
  104. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 3.0].raw +8 -5
  105. schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_long_operation_output.raw +61 -0
  106. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_long_payload.raw +14 -4
  107. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[Open API 3.0].raw +14 -4
  108. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +14 -4
  109. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +14 -4
  110. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +14 -4
  111. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +14 -4
  112. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie].raw +15 -5
  113. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header].raw +15 -5
  114. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path].raw +15 -5
  115. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query].raw +15 -5
  116. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +15 -5
  117. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +14 -4
  118. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +14 -4
  119. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +14 -4
  120. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +14 -4
  121. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +14 -4
  122. schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +60 -0
  123. schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +60 -0
  124. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +16 -6
  125. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +14 -4
  126. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +15 -5
  127. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +15 -5
  128. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +15 -5
  129. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +14 -4
  130. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +14 -4
  131. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +14 -4
  132. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +14 -4
  133. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +1 -1
  134. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_reserved_characters_in_operation_name.raw +14 -4
  135. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 2.0].raw +14 -4
  136. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 3.0].raw +14 -4
  137. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[Open API 2.0].raw +15 -5
  138. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[Open API 3.0].raw +15 -5
  139. schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args20].raw → schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +6 -13
  140. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +1 -1
  141. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +1 -1
  142. schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_skip_not_negated_tests[Open API 3.0].raw +49 -0
  143. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_skipped_on_no_explicit_examples.raw +7 -5
  144. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 2.0-1].raw +14 -4
  145. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 2.0-2].raw +14 -4
  146. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 3.0-1].raw +14 -4
  147. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 3.0-2].raw +14 -4
  148. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +15 -5
  149. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +19 -9
  150. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-1].raw +15 -5
  151. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-2].raw +15 -5
  152. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-1].raw +15 -5
  153. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-2].raw +15 -5
  154. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +26 -5
  155. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +15 -5
  156. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +1 -1
  157. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_warning_on_all_not_found.raw +26 -4
  158. schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_warning_on_no_2xx.raw +60 -0
  159. schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_warning_on_no_2xx_options_only.raw +52 -0
  160. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_warning_on_unauthorized.raw +14 -4
  161. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_hooks/test_after_call[Open API 3.0].raw +14 -4
  162. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_cassettes.py +3 -4
  163. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_checks.py +75 -0
  164. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_commands.py +29 -39
  165. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_crashes.py +9 -6
  166. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_junitxml.py +1 -1
  167. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/conftest.py +22 -15
  168. schemathesis-4.0.0a5/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +56 -0
  169. schemathesis-4.0.0a5/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +56 -0
  170. schemathesis-4.0.0a5/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +56 -0
  171. schemathesis-4.0.0a5/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +56 -0
  172. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +6 -4
  173. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +10 -4
  174. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +10 -4
  175. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +6 -4
  176. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +6 -4
  177. schemathesis-4.0.0a5/test/contrib/openapi/test_fill_missing_examples.py +6 -0
  178. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/contrib/test_unique_data.py +2 -2
  179. schemathesis-4.0.0a5/test/coverage/__snapshots__/test_phase/test_negative_data_rejection.raw +60 -0
  180. schemathesis-4.0.0a5/test/coverage/__snapshots__/test_phase/test_unspecified_http_methods.raw +84 -0
  181. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/coverage/test_phase.py +52 -23
  182. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/engine/test_checks.py +1 -1
  183. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/engine/test_engine.py +25 -23
  184. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/experimental/test_experiments.py +4 -4
  185. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/hooks/test_hooks.py +20 -13
  186. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +6 -4
  187. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +6 -4
  188. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +6 -4
  189. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +1 -1
  190. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +1 -1
  191. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +7 -5
  192. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[basic-post].raw +6 -11
  193. schemathesis-4.0.0a4/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw → schemathesis-4.0.0a5/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[success-get].raw +6 -4
  194. schemathesis-4.0.0a4/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw → schemathesis-4.0.0a5/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[basic-Authorization-406].raw +6 -4
  195. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-Authorization-200].raw +6 -11
  196. schemathesis-4.0.0a4/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw → schemathesis-4.0.0a5/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-200].raw +6 -4
  197. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-406].raw +6 -11
  198. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +7 -5
  199. schemathesis-4.0.0a5/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +52 -0
  200. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/__snapshots__/test_ignored_auth/test_explicit_auth_cli[Open API 3.0].raw +14 -4
  201. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-False].raw +7 -5
  202. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-True].raw +7 -5
  203. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +15 -5
  204. schemathesis-4.0.0a4/test/specs/openapi/stateful/__snapshots__/test_cli/test_generation_config[Open API 3.0].raw → schemathesis-4.0.0a5/test/specs/openapi/stateful/__snapshots__/test_cli/test_default[Open API 3.0-1].raw +32 -6
  205. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_default[Open API 3.0-2].raw +28 -6
  206. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_filtered_out[Open API 3.0].raw +16 -6
  207. schemathesis-4.0.0a4/test/specs/openapi/stateful/__snapshots__/test_cli/test_default[Open API 3.0-1].raw → schemathesis-4.0.0a5/test/specs/openapi/stateful/__snapshots__/test_cli/test_generation_config[Open API 3.0].raw +7 -9
  208. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_invalid_parameter_reference.raw +7 -5
  209. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_keyboard_interrupt[Open API 3.0].raw +7 -5
  210. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_max_failures[Open API 3.0].raw +20 -6
  211. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_missing_body_parameter.raw +11 -9
  212. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_missing_link[Open API 3.0].raw +7 -5
  213. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_non_json_response[User data as plain text].raw +7 -5
  214. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_non_json_response[].raw +7 -5
  215. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_not_enough_links[Open API 3.0].raw +7 -5
  216. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_proxy_error[Open API 3.0].raw +8 -6
  217. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_stateful_only[Open API 3.0].raw +7 -5
  218. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_stateful_only_with_error[Open API 3.0].raw +8 -6
  219. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/conftest.py +8 -1
  220. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/test_cli.py +23 -18
  221. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_checks.py +2 -4
  222. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_examples.py +3 -3
  223. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_ignored_auth.py +3 -1
  224. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_patterns.py +3 -0
  225. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_serializing.py +9 -9
  226. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_async.py +4 -4
  227. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_common_parameters.py +11 -8
  228. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_dereferencing.py +13 -11
  229. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_filters.py +1 -1
  230. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_hypothesis.py +3 -1
  231. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_lazy.py +11 -10
  232. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_parameters.py +5 -3
  233. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_parametrization.py +19 -17
  234. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_petstore.py +24 -37
  235. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_pytest.py +11 -22
  236. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_required.py +2 -2
  237. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/utils.py +9 -3
  238. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test-corpus/test_corpus.py +2 -0
  239. schemathesis-4.0.0a4/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -39
  240. schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_long_operation_output.raw +0 -39
  241. schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -39
  242. schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -39
  243. schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -7
  244. schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -7
  245. schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -7
  246. schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_skip_not_negated_tests[Open API 3.0].raw +0 -41
  247. schemathesis-4.0.0a4/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -39
  248. schemathesis-4.0.0a4/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -39
  249. schemathesis-4.0.0a4/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -39
  250. schemathesis-4.0.0a4/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -39
  251. schemathesis-4.0.0a4/test/contrib/openapi/test_fill_missing_examples.py +0 -9
  252. schemathesis-4.0.0a4/test/coverage/__snapshots__/test_phase/test_unspecified_http_methods.raw +0 -131
  253. schemathesis-4.0.0a4/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[success-get].raw +0 -46
  254. schemathesis-4.0.0a4/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[basic-Authorization-406].raw +0 -46
  255. schemathesis-4.0.0a4/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-200].raw +0 -46
  256. schemathesis-4.0.0a4/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -39
  257. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.dockerignore +0 -0
  258. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/FUNDING.yml +0 -0
  259. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  260. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  261. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  262. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/dependabot.yml +0 -0
  263. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/build.yml +0 -0
  264. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/codspeed.yml +0 -0
  265. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/commit.yml +0 -0
  266. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/example-build.yml +0 -0
  267. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/example-no-build.yml +0 -0
  268. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/master_update.yml +0 -0
  269. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/release.yml +0 -0
  270. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/test-corpus.yml +0 -0
  271. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/test-hypothesis.yml +0 -0
  272. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/update-pre-commit.yml +0 -0
  273. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.gitignore +0 -0
  274. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.readthedocs.yml +0 -0
  275. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.rstcheck.cfg +0 -0
  276. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.yamllint +0 -0
  277. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/ARCHITECTURE.md +0 -0
  278. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/CITATION.cff +0 -0
  279. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/CODE_OF_CONDUCT.md +0 -0
  280. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/CONTRIBUTING.rst +0 -0
  281. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/Dockerfile +0 -0
  282. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/Dockerfile.bookworm +0 -0
  283. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/LICENSE +0 -0
  284. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/SECURITY.md +0 -0
  285. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/benches/cli.py +0 -0
  286. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/benches/coverage_phase.py +0 -0
  287. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/benches/references.py +0 -0
  288. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/benches/schema.py +0 -0
  289. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/changelog.py +0 -0
  290. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/codecov.yml +0 -0
  291. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/corpus/data/graphql.tar.gz +0 -0
  292. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/corpus/data/openapi-3.0.tar.gz +0 -0
  293. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/corpus/data/openapi-3.1.tar.gz +0 -0
  294. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/corpus/data/swagger-2.0.tar.gz +0 -0
  295. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/corpus/tools.py +0 -0
  296. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/Makefile +0 -0
  297. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/additional-content.rst +0 -0
  298. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/api.rst +0 -0
  299. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/auth.rst +0 -0
  300. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/cli.rst +0 -0
  301. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/conf.py +0 -0
  302. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/continuous_integration.rst +0 -0
  303. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/data-generation.rst +0 -0
  304. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/examples.rst +0 -0
  305. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/extending.rst +0 -0
  306. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/faq.rst +0 -0
  307. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/getting-started.rst +0 -0
  308. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/graphql.rst +0 -0
  309. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/index.rst +0 -0
  310. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/python.rst +0 -0
  311. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/recipes.rst +0 -0
  312. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/requirements.txt +0 -0
  313. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/sanitizing.rst +0 -0
  314. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/service.rst +0 -0
  315. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/stateful.rst +0 -0
  316. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/targeted.rst +0 -0
  317. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/Dockerfile +0 -0
  318. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/README.md +0 -0
  319. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/app.py +0 -0
  320. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/compose.yml +0 -0
  321. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/openapi.json +0 -0
  322. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/requirements-app.in +0 -0
  323. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/requirements-app.txt +0 -0
  324. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/requirements-pytest.in +0 -0
  325. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/requirements-pytest.txt +0 -0
  326. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/tests/__init__.py +0 -0
  327. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/tests/conftest.py +0 -0
  328. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/tests/extensions.py +0 -0
  329. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/tests/test_app.py +0 -0
  330. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/img/demo.gif +0 -0
  331. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/mypy.ini +0 -0
  332. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/__init__.py +0 -0
  333. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/auths.py +0 -0
  334. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/checks.py +0 -0
  335. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/__init__.py +0 -0
  336. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/__main__.py +0 -0
  337. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/__init__.py +0 -0
  338. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/events.py +0 -0
  339. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/filters.py +0 -0
  340. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/handlers/__init__.py +0 -0
  341. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/handlers/base.py +0 -0
  342. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/handlers/cassettes.py +0 -0
  343. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/handlers/junitxml.py +0 -0
  344. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/loaders.py +0 -0
  345. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/reports.py +0 -0
  346. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/validation.py +0 -0
  347. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/constants.py +0 -0
  348. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/core.py +0 -0
  349. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/ext/__init__.py +0 -0
  350. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/ext/fs.py +0 -0
  351. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/ext/groups.py +0 -0
  352. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/ext/options.py +0 -0
  353. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/hooks.py +0 -0
  354. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/contrib/__init__.py +0 -0
  355. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/contrib/openapi/__init__.py +0 -0
  356. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
  357. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/compat.py +0 -0
  358. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/control.py +0 -0
  359. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/curl.py +0 -0
  360. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/deserialization.py +0 -0
  361. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/errors.py +0 -0
  362. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/failures.py +0 -0
  363. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/fs.py +0 -0
  364. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/lazy_import.py +0 -0
  365. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/loaders.py +0 -0
  366. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/marks.py +0 -0
  367. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/media_types.py +0 -0
  368. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/output/__init__.py +0 -0
  369. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/output/sanitization.py +0 -0
  370. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/rate_limit.py +0 -0
  371. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/registries.py +0 -0
  372. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/result.py +0 -0
  373. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/transforms.py +0 -0
  374. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/transport.py +0 -0
  375. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/validation.py +0 -0
  376. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/version.py +0 -0
  377. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/__init__.py +0 -0
  378. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/context.py +0 -0
  379. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/control.py +0 -0
  380. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/errors.py +0 -0
  381. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/probes.py +0 -0
  382. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/stateful/__init__.py +0 -0
  383. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/stateful/_executor.py +0 -0
  384. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/stateful/context.py +0 -0
  385. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/recorder.py +0 -0
  386. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/errors.py +0 -0
  387. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/filters.py +0 -0
  388. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/__init__.py +0 -0
  389. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/case.py +0 -0
  390. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/coverage.py +0 -0
  391. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/hypothesis/__init__.py +0 -0
  392. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/hypothesis/examples.py +0 -0
  393. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/hypothesis/given.py +0 -0
  394. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/hypothesis/reporting.py +0 -0
  395. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/hypothesis/strategies.py +0 -0
  396. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/meta.py +0 -0
  397. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/modes.py +0 -0
  398. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/overrides.py +0 -0
  399. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/stateful/__init__.py +0 -0
  400. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/stateful/state_machine.py +0 -0
  401. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/targets.py +0 -0
  402. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/graphql/__init__.py +0 -0
  403. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/graphql/checks.py +0 -0
  404. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/graphql/loaders.py +0 -0
  405. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/hooks.py +0 -0
  406. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/openapi/__init__.py +0 -0
  407. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/openapi/generation/__init__.py +0 -0
  408. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/openapi/generation/filters.py +0 -0
  409. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/openapi/loaders.py +0 -0
  410. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/py.typed +0 -0
  411. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/pytest/__init__.py +0 -0
  412. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/pytest/control_flow.py +0 -0
  413. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/pytest/loaders.py +0 -0
  414. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/python/__init__.py +0 -0
  415. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/python/asgi.py +0 -0
  416. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/python/wsgi.py +0 -0
  417. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/schemas.py +0 -0
  418. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/__init__.py +0 -0
  419. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/graphql/__init__.py +0 -0
  420. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/graphql/_cache.py +0 -0
  421. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/graphql/nodes.py +0 -0
  422. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/graphql/scalars.py +0 -0
  423. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/graphql/schemas.py +0 -0
  424. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/graphql/validation.py +0 -0
  425. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/__init__.py +0 -0
  426. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/_cache.py +0 -0
  427. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
  428. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/constants.py +0 -0
  429. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/converter.py +0 -0
  430. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/definitions.py +0 -0
  431. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
  432. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
  433. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
  434. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
  435. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
  436. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
  437. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/formats.py +0 -0
  438. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/media_types.py +0 -0
  439. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
  440. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
  441. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/negative/types.py +0 -0
  442. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
  443. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/parameters.py +0 -0
  444. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/references.py +0 -0
  445. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/schemas.py +0 -0
  446. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/security.py +0 -0
  447. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
  448. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/stateful/control.py +0 -0
  449. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/stateful/links.py +0 -0
  450. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/utils.py +0 -0
  451. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/transport/__init__.py +0 -0
  452. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/transport/asgi.py +0 -0
  453. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/transport/prepare.py +0 -0
  454. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/transport/requests.py +0 -0
  455. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/transport/serialization.py +0 -0
  456. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/transport/wsgi.py +0 -0
  457. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/__init__.py +0 -0
  458. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/_pytest/__init__.py +0 -0
  459. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/_pytest/test_markers.py +0 -0
  460. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/__init__.py +0 -0
  461. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/_graphql/__init__.py +0 -0
  462. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/_graphql/_fastapi/__init__.py +0 -0
  463. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/_graphql/_fastapi/app.py +0 -0
  464. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/_graphql/_flask/__init__.py +0 -0
  465. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/_graphql/_flask/app.py +0 -0
  466. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/_graphql/schema.py +0 -0
  467. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/cp1252_app.py +0 -0
  468. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/hooks.py +0 -0
  469. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/__init__.py +0 -0
  470. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_aiohttp/__init__.py +0 -0
  471. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_aiohttp/app.py +0 -0
  472. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_fastapi/__init__.py +0 -0
  473. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_fastapi/app.py +0 -0
  474. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_flask/__init__.py +0 -0
  475. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_flask/app.py +0 -0
  476. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/__init__.py +0 -0
  477. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/conftest.py +0 -0
  478. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/test_cli.py +0 -0
  479. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/test_provider.py +0 -0
  480. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/test_pytest.py +0 -0
  481. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__init__.py +0 -0
  482. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_bytes_without_cassette_path[Open API 3.0].raw +0 -0
  483. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args8].raw +0 -0
  484. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args9].raw +0 -0
  485. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
  486. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
  487. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
  488. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
  489. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
  490. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
  491. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
  492. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
  493. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
  494. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
  495. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
  496. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
  497. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
  498. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
  499. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
  500. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
  501. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args16].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
  502. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args17].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
  503. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args18].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
  504. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args19].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
  505. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
  506. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args21].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
  507. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args22].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
  508. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args23].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
  509. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args24].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
  510. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args25].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +0 -0
  511. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args26].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
  512. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args27].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
  513. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args28].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
  514. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args29].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
  515. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args30].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
  516. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
  517. /schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args33].raw → /schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
  518. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
  519. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
  520. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
  521. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
  522. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
  523. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
  524. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
  525. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/cert.pem +0 -0
  526. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_hooks.py +0 -0
  527. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_options.py +0 -0
  528. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_targeted.py +0 -0
  529. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_validation.py +0 -0
  530. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/code_samples/test_curl.py +0 -0
  531. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/core/__init__.py +0 -0
  532. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/core/test_deserialization.py +0 -0
  533. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/core/test_media_types.py +0 -0
  534. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/coverage/__init__.py +0 -0
  535. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/coverage/test_combinations.py +0 -0
  536. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/coverage/test_examples.py +0 -0
  537. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/petstore_v2.yaml +0 -0
  538. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/petstore_v3.yaml +0 -0
  539. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/relative_files/components/parameters.yaml +0 -0
  540. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/relative_files/components/responses.yaml +0 -0
  541. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/relative_files/components/schemas.yaml +0 -0
  542. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/relative_files/main.yaml +0 -0
  543. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/relative_files/paths/user-account.yaml +0 -0
  544. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/simple_openapi.yaml +0 -0
  545. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/simple_swagger.yaml +0 -0
  546. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/engine/__init__.py +0 -0
  547. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/engine/test_errors.py +0 -0
  548. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/engine/test_probes.py +0 -0
  549. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/engine/test_simulation.py +0 -0
  550. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
  551. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/experimental/conftest.py +0 -0
  552. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/experimental/test_openapi_3_1.py +0 -0
  553. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/filters/__init__.py +0 -0
  554. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/filters/test_expressions.py +0 -0
  555. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/filters/test_matching.py +0 -0
  556. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/fixtures/__init__.py +0 -0
  557. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/fixtures/app_runner.py +0 -0
  558. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/fixtures/ctx.py +0 -0
  559. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/hooks/test_filters.py +0 -0
  560. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/loaders/conftest.py +0 -0
  561. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/loaders/test_common.py +0 -0
  562. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/loaders/test_graphql.py +0 -0
  563. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/loaders/test_openapi.py +0 -0
  564. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/openapi/__init__.py +0 -0
  565. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/openapi/test_filters.py +0 -0
  566. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/test_basic.py +0 -0
  567. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/test_custom_scalars.py +0 -0
  568. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/test_pytest.py +0 -0
  569. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/blank.pdf +0 -0
  570. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/conftest.py +0 -0
  571. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/parameters/test_forms.py +0 -0
  572. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/parameters/test_non_payload.py +0 -0
  573. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
  574. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__init__.py +0 -0
  575. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/test_engine.py +0 -0
  576. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/test_stateful.py +0 -0
  577. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_expressions.py +0 -0
  578. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_hypothesis.py +0 -0
  579. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_media_types.py +0 -0
  580. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_negative.py +0 -0
  581. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_parameters.py +0 -0
  582. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_randomized.py +0 -0
  583. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_schemas.py +0 -0
  584. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_security.py +0 -0
  585. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_utils.py +0 -0
  586. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_app.py +0 -0
  587. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_asgi.py +0 -0
  588. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_converter.py +0 -0
  589. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_direct_access.py +0 -0
  590. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_examples.py +0 -0
  591. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_models.py +0 -0
  592. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_output.py +0 -0
  593. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_package.py +0 -0
  594. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_rate_limit.py +0 -0
  595. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_recoverable_errors.py +0 -0
  596. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_sanitizing_output.py +0 -0
  597. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_schemas.py +0 -0
  598. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_serialization.py +0 -0
  599. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_stateful.py +0 -0
  600. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_unittest.py +0 -0
  601. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_wsgi.py +0 -0
  602. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test-corpus/conftest.py +0 -0
  603. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test_server.sh +0 -0
  604. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/tox.ini +0 -0
  605. {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/typos.toml +0 -0
@@ -38,7 +38,7 @@ jobs:
38
38
 
39
39
  # Initializes the CodeQL tools for scanning.
40
40
  - name: Initialize CodeQL
41
- uses: github/codeql-action/init@v3.28.5
41
+ uses: github/codeql-action/init@v3.28.9
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.28.5
52
+ uses: github/codeql-action/autobuild@v3.28.9
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.28.5
66
+ uses: github/codeql-action/analyze@v3.28.9
@@ -25,7 +25,7 @@ repos:
25
25
  - id: yamllint
26
26
 
27
27
  - repo: https://github.com/pre-commit/mirrors-mypy
28
- rev: v1.14.1
28
+ rev: v1.15.0
29
29
  hooks:
30
30
  - id: mypy
31
31
  exclude: ^(docs/|test/|test-corpus/|example/|benches/).*$
@@ -33,12 +33,12 @@ repos:
33
33
  additional_dependencies: [types-requests, types-PyYAML]
34
34
 
35
35
  - repo: https://github.com/astral-sh/ruff-pre-commit
36
- rev: v0.9.4
36
+ rev: v0.9.7
37
37
  hooks:
38
38
  - id: ruff-format
39
39
 
40
40
  - repo: https://github.com/astral-sh/ruff-pre-commit
41
- rev: v0.9.4
41
+ rev: v0.9.7
42
42
  hooks:
43
43
  - id: ruff
44
44
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: schemathesis
3
- Version: 4.0.0a4
3
+ Version: 4.0.0a5
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
@@ -137,36 +137,17 @@ Schemathesis is an API testing tool that automatically finds crashes and validat
137
137
 
138
138
  ### Highlights
139
139
 
140
- 🎯 **Catches Hard-to-Find Bugs**
140
+ - 🎯 **Catches Hard-to-Find Bugs**: Automatically uncover crashes and spec violations that manual testing might miss.
141
141
 
142
- - Uncover hidden crashes and edge cases that manual testing might miss
143
- - Identify spec violations and ensure your API adheres to its contract
142
+ - **Accelerates Testing**: Generate a wide range of test cases directly from your API schema.
144
143
 
145
- **Accelerates Testing Cycles**
144
+ - 🧩 **Integrates Seamlessly**: Works with popular API formats such as OpenAPI and GraphQL, and easily integrates into your existing CI/CD workflows.
146
145
 
147
- - Automatically generate a wide range of test cases based on your API schema
148
- - Save time by reducing the need for manual test case creation
146
+ - 🔧 **Customizable and Extendable**: Leverage Python extensions to configure and extend your test generation.
149
147
 
150
- 🧩 **Integrates Seamlessly**
148
+ - 🐞 **Simplifies Debugging**: Detailed reports and reproducible test cases with cURL commands streamline troubleshooting.
151
149
 
152
- - Works with popular API formats such as OpenAPI, GraphQL.
153
- - Easily integrate into your existing CI/CD workflows.
154
-
155
- 🔧 **Customizable and Extendable**
156
-
157
- - Tune the testing process using Python extensions.
158
- - Adjust the testing flow to suit your needs with rich configuration options.
159
-
160
- 🐞 **Simplifies Debugging**
161
-
162
- - Get detailed reports to identify and fix issues quickly.
163
- - Reproduce failing test cases with cURL commands.
164
-
165
- 🔬 **Proven by Research**
166
-
167
- - Validated through academic studies on API testing automation
168
- - Featured in [ICSE 2022 paper](https://ieeexplore.ieee.org/document/9793781) on semantics-aware fuzzing
169
- - Recognized in [ACM survey](https://dl.acm.org/doi/10.1145/3617175) as state-of-the-art RESTful API testing tool
150
+ - 🔬 **Proven by Research**: Validated through academic studies on API testing automation, featured in the [ICSE 2022 paper](https://ieeexplore.ieee.org/document/9793781) on semantics-aware fuzzing, and recognized in an [ACM survey](https://dl.acm.org/doi/10.1145/3617175) as a state-of-the-art RESTful API testing tool.
170
151
 
171
152
  ## Installation
172
153
 
@@ -41,36 +41,17 @@ Schemathesis is an API testing tool that automatically finds crashes and validat
41
41
 
42
42
  ### Highlights
43
43
 
44
- 🎯 **Catches Hard-to-Find Bugs**
44
+ - 🎯 **Catches Hard-to-Find Bugs**: Automatically uncover crashes and spec violations that manual testing might miss.
45
45
 
46
- - Uncover hidden crashes and edge cases that manual testing might miss
47
- - Identify spec violations and ensure your API adheres to its contract
46
+ - **Accelerates Testing**: Generate a wide range of test cases directly from your API schema.
48
47
 
49
- **Accelerates Testing Cycles**
48
+ - 🧩 **Integrates Seamlessly**: Works with popular API formats such as OpenAPI and GraphQL, and easily integrates into your existing CI/CD workflows.
50
49
 
51
- - Automatically generate a wide range of test cases based on your API schema
52
- - Save time by reducing the need for manual test case creation
50
+ - 🔧 **Customizable and Extendable**: Leverage Python extensions to configure and extend your test generation.
53
51
 
54
- 🧩 **Integrates Seamlessly**
52
+ - 🐞 **Simplifies Debugging**: Detailed reports and reproducible test cases with cURL commands streamline troubleshooting.
55
53
 
56
- - Works with popular API formats such as OpenAPI, GraphQL.
57
- - Easily integrate into your existing CI/CD workflows.
58
-
59
- 🔧 **Customizable and Extendable**
60
-
61
- - Tune the testing process using Python extensions.
62
- - Adjust the testing flow to suit your needs with rich configuration options.
63
-
64
- 🐞 **Simplifies Debugging**
65
-
66
- - Get detailed reports to identify and fix issues quickly.
67
- - Reproduce failing test cases with cURL commands.
68
-
69
- 🔬 **Proven by Research**
70
-
71
- - Validated through academic studies on API testing automation
72
- - Featured in [ICSE 2022 paper](https://ieeexplore.ieee.org/document/9793781) on semantics-aware fuzzing
73
- - Recognized in [ACM survey](https://dl.acm.org/doi/10.1145/3617175) as state-of-the-art RESTful API testing tool
54
+ - 🔬 **Proven by Research**: Validated through academic studies on API testing automation, featured in the [ICSE 2022 paper](https://ieeexplore.ieee.org/document/9793781) on semantics-aware fuzzing, and recognized in an [ACM survey](https://dl.acm.org/doi/10.1145/3617175) as a state-of-the-art RESTful API testing tool.
74
55
 
75
56
  ## Installation
76
57
 
@@ -1,9 +1,53 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
- :version:`Unreleased <v4.0.0-alpha.4...HEAD>` - TBD
4
+ :version:`Unreleased <v4.0.0-alpha.5...HEAD>` - TBD
5
5
  ---------------------------------------------------
6
6
 
7
+ .. _v4.0.0-alpha.5:
8
+
9
+ :version:`4.0.0-alpha.5 <v4.0.0-alpha.4...v4.0.0-alpha.5>` - 2025-02-23
10
+ -----------------------------------------------------------------------
11
+
12
+ This release introduces a new phase management system for CLI that simplifies test execution control and separates unit testing into different stages.
13
+
14
+ Phase configuration changes:
15
+
16
+ - ``examples`` (formerly ``explicit``): Runs examples specified in the API schema
17
+ - ``fuzzing`` (formerly ``generate``): Testing with randomly generated test cases
18
+ - ``coverage``: Deterministic testing of schema constraints and boundary values
19
+ - ``reuse`` and ``shrink`` remain enabled by default. Disable via ``--generation-database=none`` and ``--no-shrink``.
20
+ - ``target`` phase available via ``--generation-maximize=<METRIC>``
21
+
22
+ **NOTE**: Pytest integration does not currently have a way to disable the coverage phase. Python API support is planned for future releases.
23
+
24
+ **Added**
25
+
26
+ - Warning for 4xx-only operations during unit tests to help identify configuration issues.
27
+
28
+ **Changed**
29
+
30
+ - Separate ``coverage`` and ``examples`` into independent testing phases.
31
+ - Replace ``--hypothesis-phases`` with ``--phases``.
32
+ - Do not report ``unsupported_method`` failure if the API returned HTTP 200 on OPTIONS request.
33
+ - Add HTTP 406 status to the list of status codes that are expected for negative test cases.
34
+ - The experimental ``--experimental-no-failfast`` option has been stabilized as ``--continue-on-failure``.
35
+ This option ensures all test cases within a scenario are executed, even if failures occur.
36
+
37
+ **Fixed**
38
+
39
+ - **Coverage phase**: Missing test case metadata leading to some failures not being detected.
40
+ - **Coverage phase**: Missing parameter overrides.
41
+ - **Coverage phase**: Custom auth implementation not applied to test cases.
42
+ - **Coverage phase**: Not applying parameter serialization rules during test generation.
43
+ - Incorrect quantifiers merging for some patterns. :issue:`2732`
44
+ - Showing ``1 errors`` instead of ``1 error`` in CLI output.
45
+
46
+ **Removed**
47
+
48
+ - ``--hypothesis-no-phases``.
49
+ - ``--exitfirst``. Use ``--max-failures=1`` instead.
50
+
7
51
  .. _v4.0.0-alpha.4:
8
52
 
9
53
  :version:`4.0.0-alpha.4 <v4.0.0-alpha.3...v4.0.0-alpha.4>` - 2025-02-03
@@ -7,7 +7,7 @@ Unique data generation
7
7
  ~~~~~~~~~~~~~~~~~~~~~~
8
8
 
9
9
  By default, Schemathesis may generate the same test cases as all data is randomized. If this behavior does not match your expectations, or
10
- your test budges, you can force Schemathesis to generate unique test cases.
10
+ your test budgets, you can force Schemathesis to generate unique test cases.
11
11
 
12
12
  In CLI:
13
13
 
@@ -68,38 +68,6 @@ This will enable the OpenAPI 3.1 experimental feature for any Schemathesis runs
68
68
  Current Experimental Features
69
69
  -----------------------------
70
70
 
71
- .. _coverage-phase:
72
-
73
- Coverage phase
74
- ~~~~~~~~~~~~~~
75
-
76
- Schemathesis primarily generates randomized tests; therefore, the outcomes can vary between test runs.
77
-
78
- During the coverage phase, Schemathesis deterministically generates test cases to cover common "positive" and "negative" testing scenarios depending on the configuration.
79
- It covers common testing patterns such as:
80
-
81
- - Boundary values: Minimum, maximum, and near-boundary values for numeric types and string lengths.
82
- - Data types: Generating values for different data types specified in the schema.
83
- - Constraints: Testing against schema constraints like `required` fields, `pattern`, `format`, and `uniqueItems`.
84
-
85
- Additionally, it uses examples in the API schema as the source of "positive" values.
86
-
87
- In CLI
88
- ~~~~~~
89
-
90
- .. code-block:: bash
91
-
92
- st run https://example.schemathesis.io/openapi.json --experimental=coverage-phase
93
-
94
- Using Environment Variables
95
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
96
-
97
- .. code-block:: bash
98
-
99
- export SCHEMATHESIS_EXPERIMENTAL_COVERAGE_PHASE=true
100
-
101
- For more details, join the `GitHub Discussion #2418 <https://github.com/schemathesis/schemathesis/discussions/2418>`_.
102
-
103
71
  Positive Data Acceptance
104
72
  ~~~~~~~~~~~~~~~~~~~~~~~~
105
73
 
@@ -168,34 +136,6 @@ Configure status codes:
168
136
 
169
137
  export SCHEMATHESIS_EXPERIMENTAL_NEGATIVE_DATA_REJECTION_ALLOWED_STATUSES=4XX
170
138
 
171
- Schema Analysis
172
- ~~~~~~~~~~~~~~~
173
-
174
- Enables integration with Schemathesis.io to optimize test case generation for better bug detection.
175
- 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.
176
-
177
- .. _schema-analysis-cli:
178
-
179
- In CLI
180
- ~~~~~~
181
-
182
- .. code-block:: bash
183
-
184
- st run https://example.schemathesis.io/openapi.json --experimental=schema-analysis
185
-
186
- .. _schema-analysis-env-vars:
187
-
188
- Using Environment Variables
189
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
190
-
191
- To enable schema analysis support via environment variables, you can set:
192
-
193
- .. code-block:: bash
194
-
195
- export SCHEMATHESIS_EXPERIMENTAL_SCHEMA_ANALYSIS=true
196
-
197
- For more details, join the `GitHub Discussion #2056 <https://github.com/schemathesis/schemathesis/discussions/2056>`_.
198
-
199
139
  Stabilization of Experimental Features
200
140
  --------------------------------------
201
141
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "schemathesis"
7
- version = "4.0.0-alpha.4"
7
+ version = "4.0.0-alpha.5"
8
8
  description = "Property-based testing framework for Open API and GraphQL based apps"
9
9
  keywords = ["pytest", "hypothesis", "openapi", "graphql", "testing"]
10
10
  authors = [{ name = "Dmitry Dygalo", email = "dmitry@dygalo.dev" }]
@@ -15,7 +15,6 @@ from schemathesis.cli.commands.run.filters import FilterArguments, with_filters
15
15
  from schemathesis.cli.commands.run.hypothesis import (
16
16
  HYPOTHESIS_IN_MEMORY_DATABASE_IDENTIFIER,
17
17
  HealthCheck,
18
- Phase,
19
18
  prepare_health_checks,
20
19
  prepare_phases,
21
20
  prepare_settings,
@@ -44,7 +43,7 @@ from schemathesis.specs.openapi.checks import * # noqa: F401, F403
44
43
 
45
44
  COLOR_OPTIONS_INVALID_USAGE_MESSAGE = "Can't use `--no-color` and `--force-color` simultaneously"
46
45
 
47
- DEFAULT_PHASES = ("unit", "stateful")
46
+ DEFAULT_PHASES = ("examples", "coverage", "fuzzing", "stateful")
48
47
 
49
48
 
50
49
  @click.argument("schema", type=str) # type: ignore[misc]
@@ -76,7 +75,7 @@ DEFAULT_PHASES = ("unit", "stateful")
76
75
  @grouped_option(
77
76
  "--phases",
78
77
  help="A comma-separated list of test phases to run",
79
- type=CsvChoice(["unit", "stateful"]),
78
+ type=CsvChoice(DEFAULT_PHASES),
80
79
  default=",".join(DEFAULT_PHASES),
81
80
  metavar="",
82
81
  )
@@ -117,15 +116,6 @@ DEFAULT_PHASES = ("unit", "stateful")
117
116
  show_default=True,
118
117
  metavar="",
119
118
  )
120
- @grouped_option(
121
- "-x",
122
- "--exitfirst",
123
- "exit_first",
124
- is_flag=True,
125
- default=False,
126
- help="Terminate the test suite immediately upon the first failure or error encountered",
127
- show_default=True,
128
- )
129
119
  @grouped_option(
130
120
  "--max-failures",
131
121
  "max_failures",
@@ -133,6 +123,14 @@ DEFAULT_PHASES = ("unit", "stateful")
133
123
  help="Terminate the test suite after reaching a specified number of failures or errors",
134
124
  show_default=True,
135
125
  )
126
+ @grouped_option(
127
+ "--continue-on-failure",
128
+ "continue_on_failure",
129
+ help="Continue executing all test cases within a scenario, even after encountering failures",
130
+ is_flag=True,
131
+ default=False,
132
+ metavar="",
133
+ )
136
134
  @grouped_option(
137
135
  "--max-response-time",
138
136
  help="Maximum allowed API response time in seconds",
@@ -307,15 +305,6 @@ DEFAULT_PHASES = ("unit", "stateful")
307
305
  multiple=True,
308
306
  metavar="FEATURES",
309
307
  )
310
- @grouped_option(
311
- "--experimental-no-failfast",
312
- "no_failfast",
313
- help="Continue testing an API operation after a failure is found",
314
- is_flag=True,
315
- default=False,
316
- metavar="",
317
- envvar="SCHEMATHESIS_EXPERIMENTAL_NO_FAILFAST",
318
- )
319
308
  @grouped_option(
320
309
  "--experimental-missing-required-header-allowed-statuses",
321
310
  "missing_required_header_allowed_statuses",
@@ -407,7 +396,7 @@ DEFAULT_PHASES = ("unit", "stateful")
407
396
  default=None,
408
397
  callback=validation.reduce_list,
409
398
  show_default=True,
410
- metavar="TARGET",
399
+ metavar="METRIC",
411
400
  )
412
401
  @grouped_option(
413
402
  "--generation-with-security-parameters",
@@ -486,19 +475,6 @@ DEFAULT_PHASES = ("unit", "stateful")
486
475
  type=str,
487
476
  callback=validation.validate_set_path,
488
477
  )
489
- @group("Hypothesis engine options")
490
- @grouped_option(
491
- "--hypothesis-phases",
492
- help="Testing phases to execute",
493
- type=CsvEnumChoice(Phase),
494
- metavar="",
495
- )
496
- @grouped_option(
497
- "--hypothesis-no-phases",
498
- help="Testing phases to exclude from execution",
499
- type=CsvEnumChoice(Phase),
500
- metavar="",
501
- )
502
478
  @group("Global options")
503
479
  @grouped_option("--no-color", help="Disable ANSI color escape codes", type=bool, is_flag=True)
504
480
  @grouped_option("--force-color", help="Explicitly tells to enable ANSI color escape codes", type=bool, is_flag=True)
@@ -513,7 +489,6 @@ def run(
513
489
  set_cookie: dict[str, str],
514
490
  set_path: dict[str, str],
515
491
  experiments: list,
516
- no_failfast: bool,
517
492
  missing_required_header_allowed_statuses: list[str],
518
493
  positive_data_acceptance_allowed_statuses: list[str],
519
494
  negative_data_rejection_allowed_statuses: list[str],
@@ -521,8 +496,8 @@ def run(
521
496
  excluded_check_names: Sequence[str],
522
497
  max_response_time: float | None = None,
523
498
  phases: Sequence[str] = DEFAULT_PHASES,
524
- exit_first: bool = False,
525
499
  max_failures: int | None = None,
500
+ continue_on_failure: bool = False,
526
501
  include_path: Sequence[str] = (),
527
502
  include_path_regex: str | None = None,
528
503
  include_method: Sequence[str] = (),
@@ -565,8 +540,6 @@ def run(
565
540
  output_sanitize: bool = True,
566
541
  output_truncate: bool = True,
567
542
  contrib_openapi_fill_missing_examples: bool = False,
568
- hypothesis_phases: list[Phase] | None = None,
569
- hypothesis_no_phases: list[Phase] | None = None,
570
543
  generation_modes: tuple[GenerationMode, ...] = DEFAULT_GENERATOR_MODES,
571
544
  generation_seed: int | None = None,
572
545
  generation_max_examples: int | None = None,
@@ -593,7 +566,7 @@ def run(
593
566
 
594
567
  validation.validate_schema(schema, base_url)
595
568
 
596
- _hypothesis_phases = prepare_phases(hypothesis_phases, hypothesis_no_phases, generation_no_shrink)
569
+ _hypothesis_phases = prepare_phases(generation_no_shrink)
597
570
  _hypothesis_suppress_health_check = prepare_health_checks(suppress_health_check)
598
571
 
599
572
  for experiment in experiments:
@@ -640,9 +613,6 @@ def run(
640
613
  max_response_time=max_response_time,
641
614
  ).into()
642
615
 
643
- if exit_first and max_failures is None:
644
- max_failures = 1
645
-
646
616
  report_config = None
647
617
  if report_formats or report_junit_path or report_vcr_path or report_har_path:
648
618
  report_config = ReportConfig(
@@ -687,7 +657,7 @@ def run(
687
657
  with_security_parameters=generation_with_security_parameters,
688
658
  ),
689
659
  max_failures=max_failures,
690
- no_failfast=no_failfast,
660
+ continue_on_failure=continue_on_failure,
691
661
  unique_inputs=generation_unique_inputs,
692
662
  seed=seed,
693
663
  workers_num=workers_num,
@@ -69,10 +69,9 @@ class CheckArguments:
69
69
  checks_config[_max_response_time] = MaxResponseTimeConfig(self.max_response_time)
70
70
  selected_checks.append(_max_response_time)
71
71
 
72
- if experimental.COVERAGE_PHASE.is_enabled:
73
- from schemathesis.specs.openapi.checks import unsupported_method
72
+ from schemathesis.specs.openapi.checks import unsupported_method
74
73
 
75
- selected_checks.append(unsupported_method)
74
+ selected_checks.append(unsupported_method)
76
75
 
77
76
  # Exclude checks based on their names
78
77
  selected_checks = [check for check in selected_checks if check.__name__ not in self.excluded_check_names]
@@ -20,8 +20,9 @@ if TYPE_CHECKING:
20
20
  class Statistic:
21
21
  """Running statistics about test execution."""
22
22
 
23
- outcomes: dict[Status, int]
24
23
  failures: dict[str, dict[str, GroupedFailures]]
24
+ # Track first case_id where each unique failure was found
25
+ unique_failures_map: dict[Failure, str]
25
26
 
26
27
  extraction_failures: set[ExtractionFailure]
27
28
 
@@ -32,8 +33,8 @@ class Statistic:
32
33
  cases_without_checks: int
33
34
 
34
35
  __slots__ = (
35
- "outcomes",
36
36
  "failures",
37
+ "unique_failures_map",
37
38
  "extraction_failures",
38
39
  "tested_operations",
39
40
  "total_cases",
@@ -42,15 +43,15 @@ class Statistic:
42
43
  )
43
44
 
44
45
  def __init__(self) -> None:
45
- self.outcomes = {}
46
46
  self.failures = {}
47
+ self.unique_failures_map = {}
47
48
  self.extraction_failures = set()
48
49
  self.tested_operations = set()
49
50
  self.total_cases = 0
50
51
  self.cases_with_failures = 0
51
52
  self.cases_without_checks = 0
52
53
 
53
- def record_checks(self, recorder: ScenarioRecorder) -> None:
54
+ def on_scenario_finished(self, recorder: ScenarioRecorder) -> None:
54
55
  """Update statistics and store failures from a new batch of checks."""
55
56
  from schemathesis.generation.stateful.state_machine import ExtractionFailure
56
57
 
@@ -80,20 +81,32 @@ class Statistic:
80
81
 
81
82
  self.tested_operations.add(case.value.operation.label)
82
83
  has_failures = False
83
- for check in checks:
84
- response = recorder.interactions[case_id].response
84
+ current_case_failures = []
85
+ last_failure_info = None
85
86
 
86
- # Collect failures
87
+ for check in checks:
87
88
  if check.failure_info is not None:
88
- has_failures = True
89
- if case_id not in failures:
90
- failures[case_id] = GroupedFailures(
91
- case_id=case_id,
92
- code_sample=check.failure_info.code_sample,
93
- failures=[],
94
- response=response,
95
- )
96
- failures[case_id].failures.append(check.failure_info.failure)
89
+ failure = check.failure_info.failure
90
+
91
+ # Check if this is a new unique failure
92
+ if failure not in self.unique_failures_map:
93
+ last_failure_info = check.failure_info
94
+ self.unique_failures_map[failure] = case_id
95
+ current_case_failures.append(failure)
96
+ has_failures = True
97
+ else:
98
+ # This failure was already seen - skip it
99
+ continue
100
+
101
+ if current_case_failures:
102
+ assert last_failure_info is not None
103
+ failures[case_id] = GroupedFailures(
104
+ case_id=case_id,
105
+ code_sample=last_failure_info.code_sample,
106
+ failures=current_case_failures,
107
+ response=recorder.interactions[case_id].response,
108
+ )
109
+
97
110
  if has_failures:
98
111
  self.cases_with_failures += 1
99
112
 
@@ -178,7 +191,7 @@ class ExecutionContext:
178
191
 
179
192
  def on_event(self, event: events.EngineEvent) -> None:
180
193
  if isinstance(event, events.ScenarioFinished):
181
- self.statistic.record_checks(event.recorder)
194
+ self.statistic.on_scenario_finished(event.recorder)
182
195
  elif isinstance(event, events.NonFatalError) or (
183
196
  isinstance(event, events.PhaseFinished)
184
197
  and event.phase.is_enabled
@@ -125,6 +125,7 @@ def initialize_handlers(config: RunConfig) -> list[EventHandler]:
125
125
  seed=config.engine.execution.seed,
126
126
  rate_limit=config.rate_limit,
127
127
  wait_for_schema=config.wait_for_schema,
128
+ engine_config=config.engine,
128
129
  report_config=config.report,
129
130
  )
130
131
  )