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.
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/codeql-analysis.yml +3 -3
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.pre-commit-config.yaml +3 -3
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/PKG-INFO +7 -26
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/README.md +6 -25
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/changelog.rst +45 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/contrib.rst +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/experimental.rst +0 -60
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/pyproject.toml +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/__init__.py +14 -44
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/checks.py +2 -3
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/context.py +30 -17
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/executor.py +1 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/handlers/output.py +167 -87
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/hypothesis.py +7 -45
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/__init__.py +7 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/config.py +2 -2
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/core.py +11 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/events.py +7 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/__init__.py +16 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/unit/__init__.py +77 -52
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/unit/_executor.py +14 -12
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/unit/_pool.py +8 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/experimental/__init__.py +0 -6
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/hypothesis/builder.py +222 -97
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/openapi/checks.py +3 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/pytest/lazy.py +41 -2
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/pytest/plugin.py +2 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/checks.py +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/examples.py +2 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/patterns.py +24 -7
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/serialization.py +14 -0
- schemathesis-4.0.0a5/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +60 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +26 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +26 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_aiohttp/handlers.py +8 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/schema.py +2 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +14 -4
- 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
- {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
- schemathesis-4.0.0a5/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +49 -0
- schemathesis-4.0.0a5/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +60 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +25 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 2.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 3.0].raw +14 -4
- schemathesis-4.0.0a5/test/cli/__snapshots__/test_checks/test_negative_data_rejection_displays_all_cases.raw +99 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args0].raw +25 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args10].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args1].raw +25 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args2].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args3].raw +25 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args4].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args5].raw +25 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args6].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args7].raw +25 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance_with_env_vars.raw +14 -4
- {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
- {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
- {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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +7 -5
- {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
- {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
- {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
- {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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +7 -5
- schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +53 -0
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_empty_schema_file.raw +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_exit_first[Open API 3.0].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +14 -4
- {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
- {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
- {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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_filter_case_sensitivity[Open API 3.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_group_errors.raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 2.0-1].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 3.0-1].raw +7 -5
- {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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 2.0-1].raw +13 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 3.0-1].raw +13 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_during_schema_loading.raw +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 2.0].raw +8 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 3.0].raw +8 -5
- schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_long_operation_output.raw +61 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_long_payload.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[Open API 3.0].raw +14 -4
- {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
- {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
- {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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +15 -5
- {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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +14 -4
- {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
- {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
- schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +60 -0
- schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +60 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +16 -6
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +15 -5
- {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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_reserved_characters_in_operation_name.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 2.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 3.0].raw +14 -4
- {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
- {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
- 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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +1 -1
- schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_skip_not_negated_tests[Open API 3.0].raw +49 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_skipped_on_no_explicit_examples.raw +7 -5
- {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
- {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
- {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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +19 -9
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-1].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-2].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-1].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-2].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +26 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_warning_on_all_not_found.raw +26 -4
- schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_warning_on_no_2xx.raw +60 -0
- schemathesis-4.0.0a5/test/cli/__snapshots__/test_commands/test_warning_on_no_2xx_options_only.raw +52 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_warning_on_unauthorized.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_hooks/test_after_call[Open API 3.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_cassettes.py +3 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_checks.py +75 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_commands.py +29 -39
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_crashes.py +9 -6
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_junitxml.py +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/conftest.py +22 -15
- schemathesis-4.0.0a5/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +56 -0
- schemathesis-4.0.0a5/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +56 -0
- schemathesis-4.0.0a5/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +56 -0
- schemathesis-4.0.0a5/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +56 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +10 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +10 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +6 -4
- schemathesis-4.0.0a5/test/contrib/openapi/test_fill_missing_examples.py +6 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/contrib/test_unique_data.py +2 -2
- schemathesis-4.0.0a5/test/coverage/__snapshots__/test_phase/test_negative_data_rejection.raw +60 -0
- schemathesis-4.0.0a5/test/coverage/__snapshots__/test_phase/test_unspecified_http_methods.raw +84 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/coverage/test_phase.py +52 -23
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/engine/test_checks.py +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/engine/test_engine.py +25 -23
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/experimental/test_experiments.py +4 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/hooks/test_hooks.py +20 -13
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +6 -4
- {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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[basic-post].raw +6 -11
- 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
- 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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-Authorization-200].raw +6 -11
- 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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +7 -5
- schemathesis-4.0.0a5/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +52 -0
- {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
- {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
- {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
- {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
- 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
- {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
- {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
- 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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_invalid_parameter_reference.raw +7 -5
- {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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_missing_body_parameter.raw +11 -9
- {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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__snapshots__/test_cli/test_non_json_response[].raw +7 -5
- {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
- {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
- {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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/conftest.py +8 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/test_cli.py +23 -18
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_checks.py +2 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_examples.py +3 -3
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_ignored_auth.py +3 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_patterns.py +3 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_serializing.py +9 -9
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_async.py +4 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_common_parameters.py +11 -8
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_dereferencing.py +13 -11
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_filters.py +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_hypothesis.py +3 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_lazy.py +11 -10
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_parameters.py +5 -3
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_parametrization.py +19 -17
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_petstore.py +24 -37
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_pytest.py +11 -22
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_required.py +2 -2
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/utils.py +9 -3
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test-corpus/test_corpus.py +2 -0
- schemathesis-4.0.0a4/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -39
- schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_long_operation_output.raw +0 -39
- schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -39
- schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -39
- schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -7
- schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -7
- schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -7
- schemathesis-4.0.0a4/test/cli/__snapshots__/test_commands/test_skip_not_negated_tests[Open API 3.0].raw +0 -41
- schemathesis-4.0.0a4/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -39
- schemathesis-4.0.0a4/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -39
- schemathesis-4.0.0a4/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -39
- schemathesis-4.0.0a4/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -39
- schemathesis-4.0.0a4/test/contrib/openapi/test_fill_missing_examples.py +0 -9
- schemathesis-4.0.0a4/test/coverage/__snapshots__/test_phase/test_unspecified_http_methods.raw +0 -131
- schemathesis-4.0.0a4/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[success-get].raw +0 -46
- schemathesis-4.0.0a4/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[basic-Authorization-406].raw +0 -46
- schemathesis-4.0.0a4/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-200].raw +0 -46
- schemathesis-4.0.0a4/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -39
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.dockerignore +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/FUNDING.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/dependabot.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/build.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/codspeed.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/commit.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/example-build.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/example-no-build.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/master_update.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/release.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/test-corpus.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/test-hypothesis.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.github/workflows/update-pre-commit.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.gitignore +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.readthedocs.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.rstcheck.cfg +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/.yamllint +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/ARCHITECTURE.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/CITATION.cff +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/CONTRIBUTING.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/Dockerfile +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/Dockerfile.bookworm +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/LICENSE +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/SECURITY.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/benches/cli.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/benches/coverage_phase.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/benches/references.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/benches/schema.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/changelog.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/codecov.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/corpus/data/graphql.tar.gz +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/corpus/data/openapi-3.0.tar.gz +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/corpus/data/openapi-3.1.tar.gz +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/corpus/data/swagger-2.0.tar.gz +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/corpus/tools.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/Makefile +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/additional-content.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/api.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/auth.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/cli.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/conf.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/continuous_integration.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/data-generation.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/examples.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/extending.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/faq.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/getting-started.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/graphql.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/index.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/python.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/recipes.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/requirements.txt +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/sanitizing.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/service.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/stateful.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/docs/targeted.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/Dockerfile +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/README.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/compose.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/openapi.json +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/requirements-app.in +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/requirements-app.txt +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/requirements-pytest.in +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/requirements-pytest.txt +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/tests/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/tests/conftest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/tests/extensions.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/example/tests/test_app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/img/demo.gif +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/mypy.ini +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/auths.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/checks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/__main__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/events.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/filters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/handlers/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/handlers/base.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/handlers/cassettes.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/handlers/junitxml.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/loaders.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/reports.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/commands/run/validation.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/core.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/ext/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/ext/fs.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/ext/groups.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/ext/options.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/cli/hooks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/contrib/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/contrib/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/compat.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/control.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/curl.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/deserialization.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/errors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/failures.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/fs.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/lazy_import.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/loaders.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/marks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/media_types.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/output/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/output/sanitization.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/rate_limit.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/registries.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/result.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/transforms.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/transport.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/validation.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/core/version.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/context.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/control.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/errors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/probes.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/stateful/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/stateful/_executor.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/phases/stateful/context.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/engine/recorder.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/errors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/filters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/case.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/coverage.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/hypothesis/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/hypothesis/examples.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/hypothesis/given.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/hypothesis/reporting.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/hypothesis/strategies.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/meta.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/modes.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/overrides.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/stateful/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/stateful/state_machine.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/generation/targets.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/graphql/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/graphql/checks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/graphql/loaders.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/hooks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/openapi/generation/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/openapi/generation/filters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/openapi/loaders.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/py.typed +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/pytest/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/pytest/control_flow.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/pytest/loaders.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/python/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/python/asgi.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/python/wsgi.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/schemas.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/graphql/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/graphql/_cache.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/graphql/schemas.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/_cache.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/converter.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/formats.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/media_types.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/schemas.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/security.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/stateful/control.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/stateful/links.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/specs/openapi/utils.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/transport/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/transport/asgi.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/transport/prepare.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/transport/requests.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/transport/serialization.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/src/schemathesis/transport/wsgi.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/_pytest/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/_pytest/test_markers.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/cp1252_app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/hooks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/conftest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/test_cli.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/test_provider.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/auth/test_pytest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__init__.py +0 -0
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args8].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args9].raw +0 -0
- {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
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
- /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
- /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
- /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
- /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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
- /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
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/cert.pem +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_hooks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_options.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_targeted.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/cli/test_validation.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/code_samples/test_curl.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/core/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/core/test_deserialization.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/core/test_media_types.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/coverage/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/coverage/test_combinations.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/coverage/test_examples.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/relative_files/components/parameters.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/relative_files/components/responses.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/relative_files/components/schemas.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/relative_files/main.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/relative_files/paths/user-account.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/engine/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/engine/test_errors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/engine/test_probes.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/engine/test_simulation.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/experimental/conftest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/experimental/test_openapi_3_1.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/filters/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/filters/test_expressions.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/filters/test_matching.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/fixtures/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/fixtures/app_runner.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/fixtures/ctx.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/hooks/test_filters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/loaders/conftest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/loaders/test_common.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/loaders/test_graphql.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/loaders/test_openapi.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/openapi/test_filters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/test_basic.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/graphql/test_pytest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/blank.pdf +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/parameters/test_forms.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/parameters/test_non_payload.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/test_engine.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/stateful/test_stateful.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_hypothesis.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_media_types.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_negative.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_randomized.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_security.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_asgi.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_converter.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_direct_access.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_examples.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_models.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_output.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_package.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_rate_limit.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_recoverable_errors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_sanitizing_output.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_schemas.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_serialization.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_stateful.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_unittest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test/test_wsgi.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test-corpus/conftest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/test_server.sh +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a5}/tox.ini +0 -0
- {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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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
|
-
-
|
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
|
-
|
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
|
-
-
|
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
|
-
|
148
|
+
- 🐞 **Simplifies Debugging**: Detailed reports and reproducible test cases with cURL commands streamline troubleshooting.
|
151
149
|
|
152
|
-
-
|
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
|
-
-
|
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
|
-
|
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
|
-
-
|
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
|
-
|
52
|
+
- 🐞 **Simplifies Debugging**: Detailed reports and reproducible test cases with cURL commands streamline troubleshooting.
|
55
53
|
|
56
|
-
-
|
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
|
+
: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
|
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.
|
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 = ("
|
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(
|
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="
|
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(
|
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
|
-
|
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
|
-
|
73
|
-
from schemathesis.specs.openapi.checks import unsupported_method
|
72
|
+
from schemathesis.specs.openapi.checks import unsupported_method
|
74
73
|
|
75
|
-
|
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
|
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
|
-
|
84
|
-
|
84
|
+
current_case_failures = []
|
85
|
+
last_failure_info = None
|
85
86
|
|
86
|
-
|
87
|
+
for check in checks:
|
87
88
|
if check.failure_info is not None:
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
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.
|
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
|
)
|