schemathesis 4.0.0a4__tar.gz → 4.0.0a6__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.0a6}/.github/workflows/build.yml +0 -11
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/workflows/codeql-analysis.yml +3 -3
- schemathesis-4.0.0a6/.github/workflows/docs.yml +30 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.pre-commit-config.yaml +4 -5
- schemathesis-4.0.0a6/ARCHITECTURE.md +83 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/LICENSE +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/PKG-INFO +47 -91
- schemathesis-4.0.0a6/README.md +157 -0
- schemathesis-4.0.0a6/docs/advanced/targeted.md +61 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/docs/auth.rst +0 -23
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/docs/changelog.rst +56 -1
- schemathesis-4.0.0a6/docs/ci/github-actions.md +129 -0
- schemathesis-4.0.0a6/docs/ci/gitlab-ci.md +18 -0
- schemathesis-4.0.0a6/docs/ci/overview.md +78 -0
- schemathesis-4.0.0a6/docs/core-concepts.md +12 -0
- schemathesis-4.0.0a6/docs/extending/auth.md +1 -0
- schemathesis-4.0.0a6/docs/extending/checks.md +1 -0
- schemathesis-4.0.0a6/docs/extending/data-generation.md +1 -0
- schemathesis-4.0.0a6/docs/extending/hooks.md +1 -0
- schemathesis-4.0.0a6/docs/extending/overview.md +1 -0
- schemathesis-4.0.0a6/docs/faq.md +98 -0
- schemathesis-4.0.0a6/docs/faq.rst +185 -0
- schemathesis-4.0.0a6/docs/getting-started.md +211 -0
- schemathesis-4.0.0a6/docs/graphql.rst +40 -0
- schemathesis-4.0.0a6/docs/index.md +88 -0
- schemathesis-4.0.0a6/docs/openapi/examples.md +167 -0
- schemathesis-4.0.0a6/docs/recipes.rst +43 -0
- schemathesis-4.0.0a6/docs/reference/checks.md +1 -0
- schemathesis-4.0.0a6/docs/reference/cli.md +602 -0
- schemathesis-4.0.0a6/docs/reference/configuration.md +795 -0
- schemathesis-4.0.0a6/docs/reference/python.md +1 -0
- schemathesis-4.0.0a6/docs/reference/reporting.md +1 -0
- schemathesis-4.0.0a6/docs/resources.md +107 -0
- schemathesis-4.0.0a6/docs/troubleshooting.md +1 -0
- schemathesis-4.0.0a6/docs/using/cli.md +586 -0
- schemathesis-4.0.0a6/docs/using/configuration.md +643 -0
- schemathesis-4.0.0a6/docs/using/python-integration.md +1 -0
- schemathesis-4.0.0a6/mkdocs.yml +88 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/pyproject.toml +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/__init__.py +15 -45
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/checks.py +2 -3
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/context.py +30 -17
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/executor.py +1 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/handlers/output.py +168 -88
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/hypothesis.py +7 -45
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/__init__.py +7 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/config.py +2 -2
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/core.py +11 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/events.py +7 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/phases/__init__.py +16 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/phases/unit/__init__.py +77 -52
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/phases/unit/_executor.py +14 -12
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/phases/unit/_pool.py +8 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/experimental/__init__.py +0 -6
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/hypothesis/builder.py +222 -97
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/openapi/checks.py +3 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/pytest/lazy.py +41 -2
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/pytest/plugin.py +2 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/checks.py +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/examples.py +39 -25
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/patterns.py +39 -7
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/serialization.py +14 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/transport/requests.py +10 -1
- schemathesis-4.0.0a6/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +60 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +26 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +26 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/openapi/_aiohttp/handlers.py +8 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/openapi/schema.py +2 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +14 -8
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +14 -4
- schemathesis-4.0.0a6/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +49 -0
- schemathesis-4.0.0a6/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +60 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +25 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 2.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_cassettes/test_run_subprocess[Open API 3.0].raw +14 -4
- schemathesis-4.0.0a6/test/cli/__snapshots__/test_checks/test_negative_data_rejection_displays_all_cases.raw +99 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args0].raw +25 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args10].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args1].raw +25 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args2].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args3].raw +25 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args4].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args5].raw +25 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args6].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args7].raw +25 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance_with_env_vars.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/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.0a6}/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.0a6}/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.0a6}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/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.0a6}/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.0a6}/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.0a6}/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.0a6}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +7 -5
- schemathesis-4.0.0a6/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +53 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/test/cli/__snapshots__/test_commands/test_empty_schema_file.raw +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_exit_first[Open API 3.0].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/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.0a6}/test/cli/__snapshots__/test_commands/test_filter_case_sensitivity[Open API 3.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_group_errors.raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 2.0-1].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_invalid_operation[Open API 3.0-1].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 2.0-1].raw +13 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt[Open API 3.0-1].raw +13 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_during_schema_loading.raw +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 2.0].raw +8 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_keyboard_interrupt_threaded[Open API 3.0].raw +8 -5
- schemathesis-4.0.0a6/test/cli/__snapshots__/test_commands/test_long_operation_output.raw +61 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_long_payload.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[Open API 3.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/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.0a6}/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.0a6}/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.0a6}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +14 -4
- schemathesis-4.0.0a6/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +60 -0
- schemathesis-4.0.0a6/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.0a6}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +16 -6
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/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.0a6}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_reserved_characters_in_operation_name.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 2.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[Open API 3.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[Open API 2.0].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +9 -15
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +1 -1
- schemathesis-4.0.0a6/test/cli/__snapshots__/test_commands/test_skip_not_negated_tests[Open API 3.0].raw +49 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_skipped_on_no_explicit_examples.raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 2.0-1].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 2.0-2].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 3.0-1].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_status_code_conformance[Open API 3.0-2].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +19 -9
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-1].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 2.0-2].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-1].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_unsatisfiable[Open API 3.0-2].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +26 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +15 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_warning_on_all_not_found.raw +26 -4
- schemathesis-4.0.0a6/test/cli/__snapshots__/test_commands/test_warning_on_no_2xx.raw +60 -0
- schemathesis-4.0.0a6/test/cli/__snapshots__/test_commands/test_warning_on_no_2xx_options_only.raw +52 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_warning_on_unauthorized.raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_hooks/test_after_call[Open API 3.0].raw +14 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/test_cassettes.py +3 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/test_checks.py +75 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/test_commands.py +29 -39
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/test_crashes.py +9 -6
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/test_junitxml.py +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/conftest.py +22 -15
- schemathesis-4.0.0a6/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +56 -0
- schemathesis-4.0.0a6/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +56 -0
- schemathesis-4.0.0a6/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +56 -0
- schemathesis-4.0.0a6/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +56 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +10 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +10 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +6 -4
- schemathesis-4.0.0a6/test/contrib/openapi/test_fill_missing_examples.py +6 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/contrib/test_unique_data.py +2 -2
- schemathesis-4.0.0a6/test/coverage/__snapshots__/test_phase/test_negative_data_rejection.raw +60 -0
- schemathesis-4.0.0a6/test/coverage/__snapshots__/test_phase/test_unspecified_http_methods.raw +84 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/coverage/test_phase.py +52 -23
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/engine/test_checks.py +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/engine/test_engine.py +25 -23
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/experimental/test_experiments.py +4 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/hooks/test_hooks.py +20 -13
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/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.0a6}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6/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.0a6/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[basic-Authorization-406].raw +6 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6/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.0a6}/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.0a6}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +7 -5
- schemathesis-4.0.0a6/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +52 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/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.0a6}/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.0a6}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +15 -5
- schemathesis-4.0.0a6/test/specs/openapi/stateful/__init__.py +0 -0
- schemathesis-4.0.0a4/test/specs/openapi/stateful/__snapshots__/test_cli/test_generation_config[Open API 3.0].raw → schemathesis-4.0.0a6/test/specs/openapi/stateful/__snapshots__/test_cli/test_default[Open API 3.0-1].raw +32 -6
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/stateful/__snapshots__/test_cli/test_default[Open API 3.0-2].raw +28 -6
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6/test/specs/openapi/stateful/__snapshots__/test_cli/test_generation_config[Open API 3.0].raw +7 -9
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/stateful/__snapshots__/test_cli/test_invalid_parameter_reference.raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/stateful/__snapshots__/test_cli/test_keyboard_interrupt[Open API 3.0].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/stateful/__snapshots__/test_cli/test_max_failures[Open API 3.0].raw +20 -6
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/stateful/__snapshots__/test_cli/test_missing_body_parameter.raw +11 -9
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/stateful/__snapshots__/test_cli/test_missing_link[Open API 3.0].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/test/specs/openapi/stateful/__snapshots__/test_cli/test_non_json_response[].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/test/specs/openapi/stateful/__snapshots__/test_cli/test_proxy_error[Open API 3.0].raw +8 -6
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/stateful/__snapshots__/test_cli/test_stateful_only[Open API 3.0].raw +7 -5
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/test/specs/openapi/stateful/conftest.py +8 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/stateful/test_cli.py +23 -18
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_checks.py +2 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_examples.py +15 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_ignored_auth.py +3 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_patterns.py +5 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_serializing.py +9 -9
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_async.py +4 -4
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_common_parameters.py +11 -8
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_dereferencing.py +13 -11
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_filters.py +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_hypothesis.py +3 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_lazy.py +11 -10
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_models.py +1 -1
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_parameters.py +5 -3
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_parametrization.py +19 -17
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_petstore.py +24 -37
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_pytest.py +11 -22
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_required.py +2 -2
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/utils.py +9 -3
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test-corpus/test_corpus.py +2 -0
- schemathesis-4.0.0a4/ARCHITECTURE.md +0 -121
- schemathesis-4.0.0a4/README.md +0 -201
- schemathesis-4.0.0a4/docs/additional-content.rst +0 -102
- schemathesis-4.0.0a4/docs/cli.rst +0 -781
- schemathesis-4.0.0a4/docs/continuous_integration.rst +0 -116
- schemathesis-4.0.0a4/docs/contrib.rst +0 -51
- schemathesis-4.0.0a4/docs/examples.rst +0 -82
- schemathesis-4.0.0a4/docs/experimental.rst +0 -214
- schemathesis-4.0.0a4/docs/faq.rst +0 -318
- schemathesis-4.0.0a4/docs/getting-started.rst +0 -83
- schemathesis-4.0.0a4/docs/graphql.rst +0 -91
- schemathesis-4.0.0a4/docs/index.rst +0 -101
- schemathesis-4.0.0a4/docs/recipes.rst +0 -122
- schemathesis-4.0.0a4/docs/service.rst +0 -75
- schemathesis-4.0.0a4/docs/targeted.rst +0 -94
- 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.0a6}/.dockerignore +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/FUNDING.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/dependabot.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/workflows/codspeed.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/workflows/commit.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/workflows/example-build.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/workflows/example-no-build.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/workflows/master_update.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/workflows/release.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/workflows/test-corpus.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/workflows/test-hypothesis.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.github/workflows/update-pre-commit.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.gitignore +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.readthedocs.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.rstcheck.cfg +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/.yamllint +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/CITATION.cff +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/CONTRIBUTING.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/Dockerfile +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/Dockerfile.bookworm +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/SECURITY.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/benches/cli.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/benches/coverage_phase.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/benches/references.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/benches/schema.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/changelog.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/codecov.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/corpus/data/graphql.tar.gz +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/corpus/data/openapi-3.0.tar.gz +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/corpus/data/openapi-3.1.tar.gz +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/corpus/data/swagger-2.0.tar.gz +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/corpus/tools.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/docs/Makefile +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/docs/api.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/docs/conf.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/docs/data-generation.rst +0 -0
- /schemathesis-4.0.0a4/example/tests/__init__.py → /schemathesis-4.0.0a6/docs/extending/metrics.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/docs/extending.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/docs/python.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/docs/requirements.txt +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/docs/sanitizing.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/docs/stateful.rst +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/example/Dockerfile +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/example/README.md +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/example/app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/example/compose.yml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/example/openapi.json +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/example/requirements-app.in +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/example/requirements-app.txt +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/example/requirements-pytest.in +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/example/requirements-pytest.txt +0 -0
- {schemathesis-4.0.0a4/src/schemathesis/cli/ext → schemathesis-4.0.0a6/example/tests}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/example/tests/conftest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/example/tests/extensions.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/example/tests/test_app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/img/demo.gif +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/mypy.ini +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/auths.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/checks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/__main__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/events.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/filters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/handlers/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/handlers/base.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/handlers/cassettes.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/handlers/junitxml.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/loaders.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/reports.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/commands/run/validation.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/core.py +0 -0
- {schemathesis-4.0.0a4/src/schemathesis/openapi/generation → schemathesis-4.0.0a6/src/schemathesis/cli/ext}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/ext/fs.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/ext/groups.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/ext/options.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/cli/hooks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/contrib/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/contrib/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/compat.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/control.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/curl.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/deserialization.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/errors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/failures.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/fs.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/lazy_import.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/loaders.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/marks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/media_types.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/output/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/output/sanitization.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/rate_limit.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/registries.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/result.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/transforms.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/transport.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/validation.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/core/version.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/context.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/control.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/errors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/phases/probes.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/phases/stateful/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/phases/stateful/_executor.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/phases/stateful/context.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/engine/recorder.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/errors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/filters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/case.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/coverage.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/hypothesis/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/hypothesis/examples.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/hypothesis/given.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/hypothesis/reporting.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/hypothesis/strategies.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/meta.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/modes.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/overrides.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/stateful/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/stateful/state_machine.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/generation/targets.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/graphql/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/graphql/checks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/graphql/loaders.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/hooks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a4/src/schemathesis/python → schemathesis-4.0.0a6/src/schemathesis/openapi/generation}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/openapi/generation/filters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/openapi/loaders.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/py.typed +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/pytest/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/pytest/control_flow.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/pytest/loaders.py +0 -0
- {schemathesis-4.0.0a4/src/schemathesis/specs → schemathesis-4.0.0a6/src/schemathesis/python}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/python/asgi.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/python/wsgi.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/schemas.py +0 -0
- {schemathesis-4.0.0a4/src/schemathesis/specs/graphql → schemathesis-4.0.0a6/src/schemathesis/specs}/__init__.py +0 -0
- {schemathesis-4.0.0a4/test → schemathesis-4.0.0a6/src/schemathesis/specs/graphql}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/graphql/_cache.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/graphql/schemas.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/_cache.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/converter.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/formats.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/media_types.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/schemas.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/security.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/stateful/control.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/stateful/links.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/specs/openapi/utils.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/transport/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/transport/asgi.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/transport/prepare.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/transport/serialization.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/src/schemathesis/transport/wsgi.py +0 -0
- {schemathesis-4.0.0a4/test/_pytest → schemathesis-4.0.0a6/test}/__init__.py +0 -0
- {schemathesis-4.0.0a4/test/auth → schemathesis-4.0.0a6/test/_pytest}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/_pytest/test_markers.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/cp1252_app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/hooks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-4.0.0a4/test/cli → schemathesis-4.0.0a6/test/auth}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/auth/conftest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/auth/test_cli.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/auth/test_provider.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/auth/test_pytest.py +0 -0
- {schemathesis-4.0.0a4/test/core → schemathesis-4.0.0a6/test/cli}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args8].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args9].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6}/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.0a6}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6/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.0a6/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.0a6/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.0a6/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6/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.0a6/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.0a6/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.0a6/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.0a6/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.0a6/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.0a6/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.0a6/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.0a6/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.0a6/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/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.0a6/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/cert.pem +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/test_hooks.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/test_options.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/test_targeted.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/cli/test_validation.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/code_samples/test_curl.py +0 -0
- {schemathesis-4.0.0a4/test/coverage → schemathesis-4.0.0a6/test/core}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/core/test_deserialization.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/core/test_media_types.py +0 -0
- {schemathesis-4.0.0a4/test/engine → schemathesis-4.0.0a6/test/coverage}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/coverage/test_combinations.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/coverage/test_examples.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/data/relative_files/components/parameters.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/data/relative_files/components/responses.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/data/relative_files/components/schemas.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/data/relative_files/main.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/data/relative_files/paths/user-account.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-4.0.0a4/test/filters → schemathesis-4.0.0a6/test/engine}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/engine/test_errors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/engine/test_probes.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/engine/test_simulation.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/experimental/conftest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/experimental/test_openapi_3_1.py +0 -0
- {schemathesis-4.0.0a4/test/fixtures → schemathesis-4.0.0a6/test/filters}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/filters/test_expressions.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/filters/test_matching.py +0 -0
- {schemathesis-4.0.0a4/test/openapi → schemathesis-4.0.0a6/test/fixtures}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/fixtures/app_runner.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/fixtures/ctx.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/hooks/test_filters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/loaders/conftest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/loaders/test_common.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/loaders/test_graphql.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/loaders/test_openapi.py +0 -0
- {schemathesis-4.0.0a4/test/specs/openapi/stateful → schemathesis-4.0.0a6/test/openapi}/__init__.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/openapi/test_filters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/graphql/test_basic.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/graphql/test_pytest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/blank.pdf +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/parameters/test_forms.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/parameters/test_non_payload.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/stateful/test_engine.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/stateful/test_stateful.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_hypothesis.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_media_types.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_negative.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_randomized.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_security.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_app.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_asgi.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_converter.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_direct_access.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_examples.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_output.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_package.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_rate_limit.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_recoverable_errors.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_sanitizing_output.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_schemas.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_serialization.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_stateful.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_unittest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test/test_wsgi.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test-corpus/conftest.py +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/test_server.sh +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/tox.ini +0 -0
- {schemathesis-4.0.0a4 → schemathesis-4.0.0a6}/typos.toml +0 -0
@@ -37,17 +37,6 @@ jobs:
|
|
37
37
|
|
38
38
|
- run: uvx pre-commit run --all-files
|
39
39
|
|
40
|
-
docs:
|
41
|
-
name: Documentation
|
42
|
-
runs-on: ubuntu-22.04
|
43
|
-
steps:
|
44
|
-
- uses: actions/checkout@v4.2.1
|
45
|
-
with:
|
46
|
-
fetch-depth: 1
|
47
|
-
- uses: ammaraskar/sphinx-action@8.1.3
|
48
|
-
with:
|
49
|
-
docs-folder: "docs/"
|
50
|
-
|
51
40
|
tests:
|
52
41
|
strategy:
|
53
42
|
matrix:
|
@@ -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.10
|
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.10
|
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.10
|
@@ -0,0 +1,30 @@
|
|
1
|
+
name: Docs
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
branches:
|
5
|
+
- master
|
6
|
+
|
7
|
+
permissions:
|
8
|
+
contents: write
|
9
|
+
|
10
|
+
jobs:
|
11
|
+
deploy:
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v4
|
15
|
+
- name: Configure Git Credentials
|
16
|
+
run: |
|
17
|
+
git config --local user.email "action@github.com"
|
18
|
+
git config --local user.name "GitHub Action"
|
19
|
+
- uses: actions/setup-python@v5
|
20
|
+
with:
|
21
|
+
python-version: 3.x
|
22
|
+
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
23
|
+
- uses: actions/cache@v4
|
24
|
+
with:
|
25
|
+
key: mkdocs-material-${{ env.cache_id }}
|
26
|
+
path: .cache
|
27
|
+
restore-keys: |
|
28
|
+
mkdocs-material-
|
29
|
+
- run: pip install mkdocs-material
|
30
|
+
- run: mkdocs gh-deploy --force
|
@@ -5,7 +5,6 @@ repos:
|
|
5
5
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
6
6
|
rev: v5.0.0
|
7
7
|
hooks:
|
8
|
-
- id: check-yaml
|
9
8
|
- id: end-of-file-fixer
|
10
9
|
- id: trailing-whitespace
|
11
10
|
exclude: ^.*\.(md|rst|raw)$
|
@@ -20,12 +19,12 @@ repos:
|
|
20
19
|
- id: gitlint
|
21
20
|
|
22
21
|
- repo: https://github.com/adrienverge/yamllint
|
23
|
-
rev: v1.
|
22
|
+
rev: v1.36.1
|
24
23
|
hooks:
|
25
24
|
- id: yamllint
|
26
25
|
|
27
26
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
28
|
-
rev: v1.
|
27
|
+
rev: v1.15.0
|
29
28
|
hooks:
|
30
29
|
- id: mypy
|
31
30
|
exclude: ^(docs/|test/|test-corpus/|example/|benches/).*$
|
@@ -33,12 +32,12 @@ repos:
|
|
33
32
|
additional_dependencies: [types-requests, types-PyYAML]
|
34
33
|
|
35
34
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
36
|
-
rev: v0.
|
35
|
+
rev: v0.11.0
|
37
36
|
hooks:
|
38
37
|
- id: ruff-format
|
39
38
|
|
40
39
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
41
|
-
rev: v0.
|
40
|
+
rev: v0.11.0
|
42
41
|
hooks:
|
43
42
|
- id: ruff
|
44
43
|
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# Architecture
|
2
|
+
|
3
|
+
This document outlines the internal structure of Schemathesis for developers working on the core codebase.
|
4
|
+
|
5
|
+
## Overview
|
6
|
+
|
7
|
+
- **Core**: Foundation layer with no external dependencies
|
8
|
+
- **Intermediate**: Hypothesis-powered primitives
|
9
|
+
- **Internal subsystems**: Engine, OpenAPI, and GraphQL
|
10
|
+
- **Public API**: Curated interface combining functionality from all layers
|
11
|
+
|
12
|
+
## Core Layer
|
13
|
+
|
14
|
+
Independent utilities that form the foundation of Schemathesis without external dependencies.
|
15
|
+
|
16
|
+
### `core/marks`
|
17
|
+
|
18
|
+
Attaches Schemathesis-specific metadata to test functions, enabling integration with external testing frameworks (Hypothesis, pytest).
|
19
|
+
|
20
|
+
### `core/loaders`
|
21
|
+
|
22
|
+
Schema loading functionality, supporting multiple sources:
|
23
|
+
|
24
|
+
- File-based schemas
|
25
|
+
- HTTP-based schema retrieval
|
26
|
+
|
27
|
+
### `core/transports`
|
28
|
+
|
29
|
+
Network communication primitives for test execution
|
30
|
+
|
31
|
+
- Unified response structure
|
32
|
+
|
33
|
+
### `core/output`
|
34
|
+
|
35
|
+
Output processing utilities:
|
36
|
+
|
37
|
+
- Response formatting
|
38
|
+
- Data sanitization
|
39
|
+
|
40
|
+
## Intermediate Layer
|
41
|
+
|
42
|
+
Building blocks for test generation and execution:
|
43
|
+
|
44
|
+
### `generation/hypothesis`
|
45
|
+
|
46
|
+
Core test generation machinery:
|
47
|
+
|
48
|
+
- Hypothesis test creation
|
49
|
+
- Example generation
|
50
|
+
- Test execution control
|
51
|
+
|
52
|
+
### `generation/case`
|
53
|
+
|
54
|
+
Defines the `Case` class - the fundamental container for test data that flows through the system.
|
55
|
+
|
56
|
+
### `generation/stateful`
|
57
|
+
|
58
|
+
State machine implementations for API sequence testing.
|
59
|
+
|
60
|
+
### `transport`
|
61
|
+
|
62
|
+
Higher-level transport implementations building on core primitives.
|
63
|
+
|
64
|
+
## Internal Subsystems
|
65
|
+
|
66
|
+
### Engine
|
67
|
+
|
68
|
+
- Test execution orchestration
|
69
|
+
- Event system for tracking test progress
|
70
|
+
- Testing phases management
|
71
|
+
|
72
|
+
### API Specifications
|
73
|
+
|
74
|
+
- OpenAPI implementation
|
75
|
+
- GraphQL implementation
|
76
|
+
|
77
|
+
## Public API
|
78
|
+
|
79
|
+
Python API for end users:
|
80
|
+
|
81
|
+
- Re-exports from lower layers
|
82
|
+
- Common extension points
|
83
|
+
- Entry points for running tests
|
@@ -1,7 +1,7 @@
|
|
1
1
|
MIT License
|
2
2
|
|
3
3
|
Copyright (c) 2019 Kiwi.com
|
4
|
-
Copyright (c) 2020-
|
4
|
+
Copyright (c) 2020-2025 Dmitry Dygalo & Schemathesis.io
|
5
5
|
|
6
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
7
|
of this software and associated documentation files (the "Software"), to deal
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: schemathesis
|
3
|
-
Version: 4.0.
|
3
|
+
Version: 4.0.0a6
|
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
|
@@ -117,81 +117,47 @@ Description-Content-Type: text/markdown
|
|
117
117
|
|
118
118
|
## Schemathesis
|
119
119
|
|
120
|
-
|
121
|
-
|
122
|
-
> This branch is under active development, with substantial changes expected before stabilization. While V4 is fully functional and passing tests, some features are missing, and the documentation may be outdated.
|
123
|
-
|
124
|
-
> For the stable release, see the [V3 branch](https://github.com/schemathesis/schemathesis/tree/v3).
|
125
|
-
|
126
|
-
> 💡 Have feedback? Share your thoughts in [this discussion](https://github.com/schemathesis/schemathesis/discussions/2677)!
|
127
|
-
|
128
|
-
Schemathesis is an API testing tool that automatically finds crashes and validates spec compliance.
|
120
|
+
Schemathesis automatically generates and runs API tests from your OpenAPI or GraphQL schema to find bugs and spec violations.
|
129
121
|
|
130
122
|
<p align="center">
|
131
|
-
<img src="https://raw.githubusercontent.com/schemathesis/schemathesis/master/img/demo.gif" alt="Schemathesis
|
123
|
+
<img src="https://raw.githubusercontent.com/schemathesis/schemathesis/master/img/demo.gif" alt="Schemathesis automatically finding a server error"/>
|
124
|
+
<br>
|
125
|
+
<i>Automatically finding specification violations and server errors</i>
|
132
126
|
</p>
|
133
127
|
|
134
|
-
|
135
|
-
<i>Finding server crashes in the Demo API.</i>
|
136
|
-
</p>
|
137
|
-
|
138
|
-
### Highlights
|
139
|
-
|
140
|
-
🎯 **Catches Hard-to-Find Bugs**
|
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
|
144
|
-
|
145
|
-
⚡ **Accelerates Testing Cycles**
|
146
|
-
|
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
|
128
|
+
> **Note:** This is the V4 branch under active development. While fully functional and passing tests, some features may be missing, and documentation is being updated. For the stable release, see the [V3 branch](https://github.com/schemathesis/schemathesis/tree/v3).
|
149
129
|
|
150
|
-
|
130
|
+
## Why Schemathesis?
|
151
131
|
|
152
|
-
-
|
153
|
-
-
|
154
|
-
|
155
|
-
|
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
|
132
|
+
- 📑 **Schema-Based Testing** - Transform API documentation into a comprehensive test suite
|
133
|
+
- 🚀 **Zero Configuration** - Begin testing immediately with a valid OpenAPI or GraphQL schema
|
134
|
+
- ⚙️ **CI-Ready** - Integrate API testing into existing pipelines without complex configuration
|
135
|
+
- 🛡️ **Effective Coverage** - Find edge cases no manual testing could uncover
|
136
|
+
- 🔬 **Research-Backed**: [Recognized](https://dl.acm.org/doi/10.1145/3617175) in [academic research](https://ieeexplore.ieee.org/document/9793781) as a state-of-the-art API testing tool
|
170
137
|
|
171
138
|
## Installation
|
172
139
|
|
173
|
-
Use Schemathesis via Docker, or install it from [PyPI](https://pypi.org/project/schemathesis/)
|
174
|
-
|
175
140
|
```console
|
176
|
-
#
|
177
|
-
$
|
141
|
+
# Using uv (recommended)
|
142
|
+
$ uv pip install schemathesis
|
178
143
|
|
179
|
-
#
|
144
|
+
# Using pip
|
180
145
|
$ pip install schemathesis
|
146
|
+
|
147
|
+
# Using Docker
|
148
|
+
$ docker pull schemathesis/schemathesis:stable
|
181
149
|
```
|
182
150
|
|
183
|
-
##
|
151
|
+
## Usage
|
184
152
|
|
185
|
-
|
153
|
+
### Command Line
|
186
154
|
|
187
155
|
```console
|
188
|
-
|
189
|
-
|
190
|
-
# Or when installed with pip
|
191
|
-
schemathesis run --checks all https://example.schemathesis.io/openapi.json
|
156
|
+
# Run tests against a schema URL
|
157
|
+
$ st run https://example.schemathesis.io/openapi.json
|
192
158
|
```
|
193
159
|
|
194
|
-
|
160
|
+
### Python Library
|
195
161
|
|
196
162
|
```python
|
197
163
|
import schemathesis
|
@@ -204,36 +170,35 @@ def test_api(case):
|
|
204
170
|
case.call_and_validate()
|
205
171
|
```
|
206
172
|
|
207
|
-
|
208
|
-
|
209
|
-
Schemathesis can be easily integrated into your CI/CD pipeline using GitHub Actions. Add this block to your GitHub Actions to run Schemathesis against your API:
|
173
|
+
### CI/CD Integration
|
210
174
|
|
211
175
|
```yaml
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
schema: "https://example.schemathesis.io/openapi.json"
|
176
|
+
# GitHub Actions example
|
177
|
+
steps:
|
178
|
+
- uses: schemathesis/action@v1
|
179
|
+
with:
|
180
|
+
schema: "https://example.schemathesis.io/openapi.json"
|
218
181
|
```
|
219
182
|
|
220
|
-
|
183
|
+
## Documentation
|
184
|
+
|
185
|
+
📚 **[Read the full documentation](https://schemathesis.readthedocs.io/)** for guides, examples, and reference material.
|
221
186
|
|
222
187
|
## Who's Using Schemathesis?
|
223
188
|
|
224
|
-
Schemathesis is used by
|
189
|
+
Schemathesis is used by companies and open-source projects including:
|
225
190
|
|
226
|
-
- Abstract Machines ([Magistrala](https://github.com/absmach/magistrala))
|
227
|
-
- Bundesstelle für Open Data ([smard-api](https://github.com/bundesAPI/smard-api))
|
228
|
-
- [CheckMK](https://github.com/Checkmk/checkmk)
|
229
|
-
- Chronosphere.io ([Calyptia](https://github.com/chronosphereio/calyptia-api))
|
230
|
-
- HXSecurity ([DongTai](https://github.com/HXSecurity/DongTai))
|
231
191
|
- Netflix ([Dispatch](https://github.com/Netflix/dispatch))
|
232
|
-
- [Pixie](https://github.com/pixie-io/pixie)
|
233
|
-
- [Qdrant](https://github.com/qdrant/qdrant)
|
234
192
|
- Spotify ([Backstage](https://github.com/backstage/backstage))
|
235
|
-
- [Weechat](https://github.com/weechat/weechat)
|
236
193
|
- WordPress ([OpenVerse](https://github.com/WordPress/openverse))
|
194
|
+
- Chronosphere.io ([Calyptia](https://github.com/chronosphereio/calyptia-api))
|
195
|
+
- [Qdrant](https://github.com/qdrant/qdrant)
|
196
|
+
- [Pixie](https://github.com/pixie-io/pixie)
|
197
|
+
- [CheckMK](https://github.com/Checkmk/checkmk)
|
198
|
+
- [Weechat](https://github.com/weechat/weechat)
|
199
|
+
- HXSecurity ([DongTai](https://github.com/HXSecurity/DongTai))
|
200
|
+
- Abstract Machines ([Magistrala](https://github.com/absmach/magistrala))
|
201
|
+
- Bundesstelle für Open Data ([smard-api](https://github.com/bundesAPI/smard-api))
|
237
202
|
|
238
203
|
## Testimonials
|
239
204
|
|
@@ -249,7 +214,7 @@ Schemathesis is used by a number of projects and companies, including direct usa
|
|
249
214
|
|
250
215
|
---
|
251
216
|
|
252
|
-
"_The tool is
|
217
|
+
"_The tool is amazing as it can test negative scenarios instead of me and much faster!_"
|
253
218
|
|
254
219
|
<div>Luděk Nový - <strong>JetBrains</strong></div>
|
255
220
|
|
@@ -269,24 +234,15 @@ Schemathesis is used by a number of projects and companies, including direct usa
|
|
269
234
|
|
270
235
|
## Contributing
|
271
236
|
|
272
|
-
We welcome contributions
|
273
|
-
|
274
|
-
### How to Contribute
|
275
|
-
|
276
|
-
1. Discuss ideas and questions through [GitHub issues](https://github.com/schemathesis/schemathesis/issues) or on our [Discord channel](https://discord.gg/R9ASRAmHnA).
|
277
|
-
2. For code contributions, see our [contributing guidelines](https://github.com/schemathesis/schemathesis/blob/master/CONTRIBUTING.rst).
|
278
|
-
3. Share your experience and thoughts using [this feedback form](https://forms.gle/kJ4hSxc1Yp6Ga96t5).
|
279
|
-
|
280
|
-
### Why Your Input Matters
|
281
|
-
|
282
|
-
- Enables us to develop useful features and fix bugs faster
|
283
|
-
- Improves our test suite and documentation
|
237
|
+
We welcome contributions! Your input directly influences Schemathesis development.
|
284
238
|
|
285
|
-
|
239
|
+
- Discuss ideas in [GitHub issues](https://github.com/schemathesis/schemathesis/issues) or our [Discord server](https://discord.gg/R9ASRAmHnA)
|
240
|
+
- See our [contributing guidelines](https://github.com/schemathesis/schemathesis/blob/master/CONTRIBUTING.rst) for code contributions
|
241
|
+
- Share your experience using [this feedback form](https://forms.gle/kJ4hSxc1Yp6Ga96t5)
|
286
242
|
|
287
243
|
## Get in Touch
|
288
244
|
|
289
|
-
|
245
|
+
Need assistance with integration or have specific questions? Contact us at <a href="mailto:support@schemathesis.io">support@schemathesis.io</a>.
|
290
246
|
|
291
247
|
## Acknowledgements
|
292
248
|
|
@@ -0,0 +1,157 @@
|
|
1
|
+
<p align="center">
|
2
|
+
<a href="https://github.com/schemathesis/schemathesis/actions" target="_blank">
|
3
|
+
<img src="https://github.com/schemathesis/schemathesis/actions/workflows/build.yml/badge.svg" alt="Build">
|
4
|
+
</a>
|
5
|
+
<a href="https://codecov.io/gh/schemathesis/schemathesis/branch/master" target="_blank">
|
6
|
+
<img src="https://codecov.io/gh/schemathesis/schemathesis/branch/master/graph/badge.svg" alt="Coverage">
|
7
|
+
</a>
|
8
|
+
<a href="https://pypi.org/project/schemathesis/" target="_blank">
|
9
|
+
<img src="https://img.shields.io/pypi/v/schemathesis.svg" alt="Version">
|
10
|
+
</a>
|
11
|
+
<a href="https://pypi.org/project/schemathesis/" target="_blank">
|
12
|
+
<img src="https://img.shields.io/pypi/pyversions/schemathesis.svg" alt="Python versions">
|
13
|
+
</a>
|
14
|
+
<a href="https://discord.gg/R9ASRAmHnA" target="_blank">
|
15
|
+
<img src="https://img.shields.io/discord/938139740912369755" alt="Discord">
|
16
|
+
</a>
|
17
|
+
<a href="https://opensource.org/licenses/MIT" target="_blank">
|
18
|
+
<img src="https://img.shields.io/pypi/l/schemathesis.svg" alt="License">
|
19
|
+
</a>
|
20
|
+
</p>
|
21
|
+
|
22
|
+
## Schemathesis
|
23
|
+
|
24
|
+
Schemathesis automatically generates and runs API tests from your OpenAPI or GraphQL schema to find bugs and spec violations.
|
25
|
+
|
26
|
+
<p align="center">
|
27
|
+
<img src="https://raw.githubusercontent.com/schemathesis/schemathesis/master/img/demo.gif" alt="Schemathesis automatically finding a server error"/>
|
28
|
+
<br>
|
29
|
+
<i>Automatically finding specification violations and server errors</i>
|
30
|
+
</p>
|
31
|
+
|
32
|
+
> **Note:** This is the V4 branch under active development. While fully functional and passing tests, some features may be missing, and documentation is being updated. For the stable release, see the [V3 branch](https://github.com/schemathesis/schemathesis/tree/v3).
|
33
|
+
|
34
|
+
## Why Schemathesis?
|
35
|
+
|
36
|
+
- 📑 **Schema-Based Testing** - Transform API documentation into a comprehensive test suite
|
37
|
+
- 🚀 **Zero Configuration** - Begin testing immediately with a valid OpenAPI or GraphQL schema
|
38
|
+
- ⚙️ **CI-Ready** - Integrate API testing into existing pipelines without complex configuration
|
39
|
+
- 🛡️ **Effective Coverage** - Find edge cases no manual testing could uncover
|
40
|
+
- 🔬 **Research-Backed**: [Recognized](https://dl.acm.org/doi/10.1145/3617175) in [academic research](https://ieeexplore.ieee.org/document/9793781) as a state-of-the-art API testing tool
|
41
|
+
|
42
|
+
## Installation
|
43
|
+
|
44
|
+
```console
|
45
|
+
# Using uv (recommended)
|
46
|
+
$ uv pip install schemathesis
|
47
|
+
|
48
|
+
# Using pip
|
49
|
+
$ pip install schemathesis
|
50
|
+
|
51
|
+
# Using Docker
|
52
|
+
$ docker pull schemathesis/schemathesis:stable
|
53
|
+
```
|
54
|
+
|
55
|
+
## Usage
|
56
|
+
|
57
|
+
### Command Line
|
58
|
+
|
59
|
+
```console
|
60
|
+
# Run tests against a schema URL
|
61
|
+
$ st run https://example.schemathesis.io/openapi.json
|
62
|
+
```
|
63
|
+
|
64
|
+
### Python Library
|
65
|
+
|
66
|
+
```python
|
67
|
+
import schemathesis
|
68
|
+
|
69
|
+
schema = schemathesis.openapi.from_url("https://example.schemathesis.io/openapi.json")
|
70
|
+
|
71
|
+
|
72
|
+
@schema.parametrize()
|
73
|
+
def test_api(case):
|
74
|
+
case.call_and_validate()
|
75
|
+
```
|
76
|
+
|
77
|
+
### CI/CD Integration
|
78
|
+
|
79
|
+
```yaml
|
80
|
+
# GitHub Actions example
|
81
|
+
steps:
|
82
|
+
- uses: schemathesis/action@v1
|
83
|
+
with:
|
84
|
+
schema: "https://example.schemathesis.io/openapi.json"
|
85
|
+
```
|
86
|
+
|
87
|
+
## Documentation
|
88
|
+
|
89
|
+
📚 **[Read the full documentation](https://schemathesis.readthedocs.io/)** for guides, examples, and reference material.
|
90
|
+
|
91
|
+
## Who's Using Schemathesis?
|
92
|
+
|
93
|
+
Schemathesis is used by companies and open-source projects including:
|
94
|
+
|
95
|
+
- Netflix ([Dispatch](https://github.com/Netflix/dispatch))
|
96
|
+
- Spotify ([Backstage](https://github.com/backstage/backstage))
|
97
|
+
- WordPress ([OpenVerse](https://github.com/WordPress/openverse))
|
98
|
+
- Chronosphere.io ([Calyptia](https://github.com/chronosphereio/calyptia-api))
|
99
|
+
- [Qdrant](https://github.com/qdrant/qdrant)
|
100
|
+
- [Pixie](https://github.com/pixie-io/pixie)
|
101
|
+
- [CheckMK](https://github.com/Checkmk/checkmk)
|
102
|
+
- [Weechat](https://github.com/weechat/weechat)
|
103
|
+
- HXSecurity ([DongTai](https://github.com/HXSecurity/DongTai))
|
104
|
+
- Abstract Machines ([Magistrala](https://github.com/absmach/magistrala))
|
105
|
+
- Bundesstelle für Open Data ([smard-api](https://github.com/bundesAPI/smard-api))
|
106
|
+
|
107
|
+
## Testimonials
|
108
|
+
|
109
|
+
"_The world needs modern, spec-based API tests, so we can deliver APIs as-designed. Schemathesis is the right tool for that job._"
|
110
|
+
|
111
|
+
<div>Emmanuel Paraskakis - <strong>Level 250</strong></div>
|
112
|
+
|
113
|
+
---
|
114
|
+
|
115
|
+
"_Schemathesis is the only sane way to thoroughly test an API._"
|
116
|
+
|
117
|
+
<div>Zdenek Nemec - <strong>superface.ai</strong></div>
|
118
|
+
|
119
|
+
---
|
120
|
+
|
121
|
+
"_The tool is amazing as it can test negative scenarios instead of me and much faster!_"
|
122
|
+
|
123
|
+
<div>Luděk Nový - <strong>JetBrains</strong></div>
|
124
|
+
|
125
|
+
---
|
126
|
+
|
127
|
+
"_Schemathesis is the best tool for fuzz testing of REST API on the market. We are at Red Hat use it for examining our applications in functional and integrations testing levels._"
|
128
|
+
|
129
|
+
<div>Dmitry Misharov - <strong>RedHat</strong></div>
|
130
|
+
|
131
|
+
---
|
132
|
+
|
133
|
+
"_There are different levels of usability and documentation quality among these tools which have been reported, where Schemathesis clearly stands out among the most user-friendly and industry-strength tools._"
|
134
|
+
|
135
|
+
<div>Testing RESTful APIs: A Survey - <strong>a research paper by Golmohammadi, at al</strong></div>
|
136
|
+
|
137
|
+
---
|
138
|
+
|
139
|
+
## Contributing
|
140
|
+
|
141
|
+
We welcome contributions! Your input directly influences Schemathesis development.
|
142
|
+
|
143
|
+
- Discuss ideas in [GitHub issues](https://github.com/schemathesis/schemathesis/issues) or our [Discord server](https://discord.gg/R9ASRAmHnA)
|
144
|
+
- See our [contributing guidelines](https://github.com/schemathesis/schemathesis/blob/master/CONTRIBUTING.rst) for code contributions
|
145
|
+
- Share your experience using [this feedback form](https://forms.gle/kJ4hSxc1Yp6Ga96t5)
|
146
|
+
|
147
|
+
## Get in Touch
|
148
|
+
|
149
|
+
Need assistance with integration or have specific questions? Contact us at <a href="mailto:support@schemathesis.io">support@schemathesis.io</a>.
|
150
|
+
|
151
|
+
## Acknowledgements
|
152
|
+
|
153
|
+
Schemathesis is built on top of <a href="https://hypothesis.works/" target="_blank">Hypothesis</a>, a powerful property-based testing library for Python.
|
154
|
+
|
155
|
+
## License
|
156
|
+
|
157
|
+
This project is licensed under the terms of the [MIT license](https://opensource.org/licenses/MIT).
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# Targeted Property-Based Testing
|
2
|
+
|
3
|
+
Schemathesis supports targeted property-based testing to guide test data generation toward specific goals. This technique helps find problematic inputs faster by directing the test generator toward areas more likely to reveal issues.
|
4
|
+
|
5
|
+
## Maximizing Metrics
|
6
|
+
|
7
|
+
The `--generation-maximize` option instructs Schemathesis to favor inputs that maximize a specific metric:
|
8
|
+
|
9
|
+
```console
|
10
|
+
$ st run openapi.yaml --generation-maximize response_time
|
11
|
+
```
|
12
|
+
|
13
|
+
Currently supported metrics:
|
14
|
+
|
15
|
+
- `response_time`: Favors inputs that result in longer API response times
|
16
|
+
|
17
|
+
This approach is particularly useful for detecting:
|
18
|
+
|
19
|
+
- Performance bottlenecks
|
20
|
+
- Inputs that cause excessive processing
|
21
|
+
- Potential denial-of-service vulnerabilities
|
22
|
+
|
23
|
+
!!! info "Custom Metrics"
|
24
|
+
|
25
|
+
See [Extending Metrics](../extending/metrics.md) for details on implementing custom metrics for targeted testing.
|
26
|
+
|
27
|
+
## Example Scenario
|
28
|
+
|
29
|
+
Consider an API endpoint with a hidden performance issue where inputs containing many zeros cause progressively slower responses. At a certain threshold, the endpoint fails completely:
|
30
|
+
|
31
|
+
```python
|
32
|
+
async def performance(request):
|
33
|
+
decoded = await request.json()
|
34
|
+
number = str(decoded).count("0")
|
35
|
+
if number > 0:
|
36
|
+
# Progressively slower as zeros increase
|
37
|
+
await asyncio.sleep(0.01 * number)
|
38
|
+
if number > 10:
|
39
|
+
# Fails with too many zeros
|
40
|
+
raise ServerError()
|
41
|
+
return {"result": "success"}
|
42
|
+
```
|
43
|
+
|
44
|
+
When testing this endpoint:
|
45
|
+
|
46
|
+
- **Standard testing** might need many examples to stumble upon problematic inputs
|
47
|
+
- **Targeted testing** will progressively favor inputs with more zeros, finding the issue faster
|
48
|
+
|
49
|
+
## Performance Advantage
|
50
|
+
|
51
|
+
In practice, targeted testing can significantly reduce the time needed to discover issues:
|
52
|
+
|
53
|
+
```console
|
54
|
+
# Standard testing might require many examples
|
55
|
+
$ st run openapi.yaml --max-examples=10000
|
56
|
+
|
57
|
+
# Targeted testing often finds issues with fewer examples
|
58
|
+
$ st run openapi.yaml --max-examples=10000 --generation-maximize response_time
|
59
|
+
```
|
60
|
+
|
61
|
+
While results vary due to the random nature of property-based testing, targeted testing consistently improves efficiency on APIs with performance-related vulnerabilities.
|
@@ -8,25 +8,6 @@ Then, we'll move on to more advanced topics, including HTTP Basic, Digest Authen
|
|
8
8
|
Setting credentials
|
9
9
|
-------------------
|
10
10
|
|
11
|
-
To set authentication credentials manually, you can pass a key-value pairs to Schemathesis when running tests.
|
12
|
-
Here's an example command for setting a custom header or cookie using the CLI:
|
13
|
-
|
14
|
-
.. code:: text
|
15
|
-
|
16
|
-
st run -H "Authorization: Bearer TOKEN" ...
|
17
|
-
st run -H "Cookie: session=SECRET" ...
|
18
|
-
|
19
|
-
You can also provide multiple headers by using the ``-H`` option multiple times:
|
20
|
-
|
21
|
-
.. code:: text
|
22
|
-
|
23
|
-
st run -H "Authorization: Bearer TOKEN" -H "X-Session-Id: SECRET" ...
|
24
|
-
|
25
|
-
.. note::
|
26
|
-
|
27
|
-
Query string authentication is not yet supported in the Schemathesis CLI, however, you can use custom authentication mechanisms to set authentication in a query string parameter.
|
28
|
-
Details on how to do this are described in the :ref:`Custom Authentication <custom-auth>` section below.
|
29
|
-
|
30
11
|
For Python tests you can set a header, cookie or a query parameter inside your test function:
|
31
12
|
|
32
13
|
.. code-block:: python
|
@@ -50,10 +31,6 @@ Built-In Authentication mechanisms
|
|
50
31
|
|
51
32
|
`HTTP Basic <https://datatracker.ietf.org/doc/html/rfc7617>`_ is supported by Schemathesis out of the box.
|
52
33
|
|
53
|
-
.. code:: text
|
54
|
-
|
55
|
-
st run --auth user:pass
|
56
|
-
|
57
34
|
In Python tests, you can use the `requests <https://github.com/psf/requests>`_ library to send requests with HTTP Basic or HTTP Digest authentication.
|
58
35
|
You can pass the authentication credentials using the ``auth`` arguments of the ``call`` or ``call_and_validate`` methods:
|
59
36
|
|