schemathesis 3.25.6__tar.gz → 3.26.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/build.yml +4 -4
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/codeql-analysis.yml +4 -4
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/codspeed.yml +1 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/commit.yml +1 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/example-build.yml +1 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/master_update.yml +1 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/release.yml +2 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/test-corpus.yml +1 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/test-hypothesis.yml +1 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/update-corpus.yml +2 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/update-pre-commit.yml +2 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.pre-commit-config.yaml +4 -4
- {schemathesis-3.25.6 → schemathesis-3.26.0}/PKG-INFO +8 -5
- {schemathesis-3.25.6 → schemathesis-3.26.0}/README.md +3 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/changelog.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/api.rst +4 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/changelog.rst +20 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/data-generation.rst +119 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/experimental.rst +29 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/extending.rst +29 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/faq.rst +7 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/service.rst +21 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/pyproject.toml +5 -4
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/_dependency_versions.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/_hypothesis.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/_xml.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/auths.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/__init__.py +26 -18
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/cassettes.py +4 -4
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/context.py +4 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/output/default.py +154 -39
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/output/short.py +4 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/experimental/__init__.py +7 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/filters.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/parameters.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/__init__.py +12 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/events.py +12 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/impl/core.py +29 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/probes.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/serialization.py +4 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/schemas.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/serializers.py +1 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/client.py +35 -2
- schemathesis-3.26.0/src/schemathesis/service/extensions.py +224 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/hosts.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/metadata.py +24 -0
- schemathesis-3.26.0/src/schemathesis/service/models.py +257 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/serialization.py +29 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/__init__.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/_hypothesis.py +8 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/expressions/__init__.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/expressions/lexer.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/expressions/nodes.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/links.py +1 -0
- schemathesis-3.26.0/src/schemathesis/specs/openapi/media_types.py +34 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/negative/mutations.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/security.py +5 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_group_errors.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +2 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +2 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +2 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +2 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +2 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +2 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +2 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +2 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2-The provided definition doesn't match any of the expected formats or types.].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0-'type' is a required property].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_long_payload.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +3 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +3 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +3 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +3 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +3 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +3 -2
- schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1-.....].raw +25 -0
- schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5-......].raw +25 -0
- schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1-.....].raw +25 -0
- schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5-......].raw +25 -0
- schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1-.....].raw +25 -0
- schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5-......].raw +25 -0
- schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1-.....].raw +25 -0
- schemathesis-3.26.0/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5-......].raw +25 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +2 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +1 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/output/test_default.py +1 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_asgi.py +2 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_cassettes.py +4 -4
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_commands.py +44 -36
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/conftest.py +28 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +4 -3
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +3 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +3 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +3 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +2 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +3 -2
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/test_unique_data.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/loaders/test_common.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/loaders/test_graphql.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/loaders/test_openapi.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/runner/test_runner.py +11 -9
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +9 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +12 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +59 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_custom_format.raw +47 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +39 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +55 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +49 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +58 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +75 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +64 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +64 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +47 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +47 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +56 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +47 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +47 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +47 -0
- schemathesis-3.26.0/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +62 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/conftest.py +36 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/test_cli.py +17 -22
- schemathesis-3.26.0/test/service/test_extensions.py +537 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/test_report.py +3 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/test_serialization.py +6 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +1 -0
- schemathesis-3.26.0/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +35 -0
- schemathesis-3.26.0/test/specs/openapi/blank.pdf +154 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/parameters/test_forms.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/parameters/test_non_payload.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/parameters/test_simple_payloads.py +1 -0
- schemathesis-3.26.0/test/specs/openapi/test_media_types.py +78 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_security.py +16 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_serialization.py +1 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test-corpus/test_corpus.py +26 -1
- {schemathesis-3.25.6 → schemathesis-3.26.0}/tox.ini +1 -1
- schemathesis-3.25.6/src/schemathesis/service/models.py +0 -49
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.dockerignore +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/FUNDING.yml +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/dependabot.yml +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.github/workflows/example-no-build.yml +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.gitignore +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.gitmodules +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.readthedocs.yml +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.relint.yml +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.rstcheck.cfg +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/.yamllint +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/CITATION.cff +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/CONTRIBUTING.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/Dockerfile +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/Dockerfile.bookworm +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/LICENSE +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/benches/cli.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/benches/references.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/codecov.yml +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/Makefile +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/additional-content.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/auth.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/cli.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/compatibility.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/conf.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/continuous_integration.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/contrib.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/examples.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/getting-started.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/graphql.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/index.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/python.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/recipes.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/requirements.txt +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/sanitizing.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/stateful.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/docs/targeted.rst +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/example/Dockerfile +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/example/README.md +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/example/app.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/example/compose.yml +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/example/openapi.json +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/example/requirements-app.in +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/example/requirements-app.txt +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/example/requirements-pytest.in +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/example/requirements-pytest.txt +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/example/tests/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/example/tests/conftest.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/example/tests/extensions.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/example/tests/test_app.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/img/demo.gif +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/img/service_github_report.png +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/mypy.ini +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/_compat.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/_lazy_import.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/_override.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/checks.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/callbacks.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/debug.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/handlers.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/junitxml.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/options.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/output/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/cli/sanitization.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/code_samples.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/constants.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/contrib/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/contrib/openapi/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/contrib/unique_data.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/exceptions.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/extra/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/extra/_aiohttp.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/extra/_flask.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/extra/_server.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/extra/pytest_plugin.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/failures.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/fixups/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/fixups/fast_api.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/fixups/utf8_bom.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/generation/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/graphql.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/hooks.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/copy.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/datetime.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/deprecation.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/jsonschema.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/result.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/transformation.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/internal/validation.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/lazy.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/loaders.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/models.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/py.typed +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/impl/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/impl/solo.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/runner/impl/threadpool.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/sanitization.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/auth.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/ci.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/constants.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/events.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/report.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/service/usage.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/graphql/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/graphql/loaders.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/graphql/schemas.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/checks.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/converter.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/examples.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/filters.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/formats.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/loaders.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/schemas.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/serialization.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/stateful/links.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/utils.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/specs/openapi/validation.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/stateful/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/stateful/state_machine.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/targets.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/throttling.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/transports/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/transports/auth.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/transports/content_types.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/transports/headers.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/transports/responses.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/types.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/src/schemathesis/utils.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_aiohttp/handlers.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/apps/openapi/schema.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/conftest.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/test_cli.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/test_provider.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/auth/test_pytest.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/cert.pem +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/conftest.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/output/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_callbacks.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_checks.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_crashes.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_hooks.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_junitxml.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_options.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/cli/test_targeted.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/code_samples/conftest.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/code_samples/test_curl.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/code_samples/test_python.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/openapi/formats/test_uuid.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/contrib/test_install.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/experimental/conftest.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/experimental/test_experiments.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/experimental/test_openapi_3_1.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/extra/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/extra/test_aiohttp.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/filters/test_matching.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/hooks/test_filter_operations.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/hooks/test_hooks.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/loaders/conftest.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/loaders/test_app.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/loaders/test_yaml.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/runner/test_checks.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/runner/test_events.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/runner/test_probes.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__init__.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_client_error_on_project_details[Open API 3.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_unauthorized[Open API 3.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/test_auth.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/test_ci.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/service/test_usage.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/test_basic.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/graphql/test_pytest.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_examples.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_hypothesis.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_links.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_negative.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_serializing.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_stateful.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/specs/openapi/test_validation.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_app.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_asgi.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_async.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_common_parameters.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_converter.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_dereferencing.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_direct_access.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_errors.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_examples.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_filters.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_fixups.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_hypothesis.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_internal.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_lazy.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_models.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_package.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_parameters.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_parametrization.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_petstore.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_pytest.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_rate_limit.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_recoverable_errors.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_required.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_sanitizing_output.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_schemas.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_stateful.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_unittest.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_utils.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/test_wsgi.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/transports/test_content_types.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test/utils.py +0 -0
- {schemathesis-3.25.6 → schemathesis-3.26.0}/test_server.sh +0 -0
|
@@ -26,7 +26,7 @@ jobs:
|
|
|
26
26
|
name: Generic pre-commit checks
|
|
27
27
|
runs-on: ubuntu-22.04
|
|
28
28
|
steps:
|
|
29
|
-
- uses: actions/checkout@v4.1.
|
|
29
|
+
- uses: actions/checkout@v4.1.2
|
|
30
30
|
with:
|
|
31
31
|
fetch-depth: 1
|
|
32
32
|
|
|
@@ -41,7 +41,7 @@ jobs:
|
|
|
41
41
|
name: Documentation
|
|
42
42
|
runs-on: ubuntu-22.04
|
|
43
43
|
steps:
|
|
44
|
-
- uses: actions/checkout@v4.1.
|
|
44
|
+
- uses: actions/checkout@v4.1.2
|
|
45
45
|
with:
|
|
46
46
|
fetch-depth: 1
|
|
47
47
|
- uses: ammaraskar/sphinx-action@master
|
|
@@ -66,7 +66,7 @@ jobs:
|
|
|
66
66
|
name: Tests (Python ${{ matrix.python }} on ${{ matrix.os }} ${{ matrix.tox_env }})
|
|
67
67
|
runs-on: ${{ matrix.os }}
|
|
68
68
|
steps:
|
|
69
|
-
- uses: actions/checkout@v4.1.
|
|
69
|
+
- uses: actions/checkout@v4.1.2
|
|
70
70
|
with:
|
|
71
71
|
fetch-depth: 1
|
|
72
72
|
|
|
@@ -83,6 +83,6 @@ jobs:
|
|
|
83
83
|
run: python -m tox
|
|
84
84
|
|
|
85
85
|
- name: Upload coverage to Codecov
|
|
86
|
-
uses: codecov/codecov-action@v4.0
|
|
86
|
+
uses: codecov/codecov-action@v4.1.0
|
|
87
87
|
with:
|
|
88
88
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
@@ -30,7 +30,7 @@ jobs:
|
|
|
30
30
|
|
|
31
31
|
steps:
|
|
32
32
|
- name: Checkout repository
|
|
33
|
-
uses: actions/checkout@v4.1.
|
|
33
|
+
uses: actions/checkout@v4.1.2
|
|
34
34
|
with:
|
|
35
35
|
# We must fetch at least the immediate parents so that if this is
|
|
36
36
|
# a pull request then we can checkout the head.
|
|
@@ -38,7 +38,7 @@ jobs:
|
|
|
38
38
|
|
|
39
39
|
# Initializes the CodeQL tools for scanning.
|
|
40
40
|
- name: Initialize CodeQL
|
|
41
|
-
uses: github/codeql-action/init@v3.24.
|
|
41
|
+
uses: github/codeql-action/init@v3.24.7
|
|
42
42
|
with:
|
|
43
43
|
languages: ${{ matrix.language }}
|
|
44
44
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
@@ -49,7 +49,7 @@ jobs:
|
|
|
49
49
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
50
50
|
# If this step fails, then you should remove it and run the build manually (see below)
|
|
51
51
|
- name: Autobuild
|
|
52
|
-
uses: github/codeql-action/autobuild@v3.24.
|
|
52
|
+
uses: github/codeql-action/autobuild@v3.24.7
|
|
53
53
|
|
|
54
54
|
# ℹ️ Command-line programs to run using the OS shell.
|
|
55
55
|
# 📚 https://git.io/JvXDl
|
|
@@ -63,4 +63,4 @@ jobs:
|
|
|
63
63
|
# make release
|
|
64
64
|
|
|
65
65
|
- name: Perform CodeQL Analysis
|
|
66
|
-
uses: github/codeql-action/analyze@v3.24.
|
|
66
|
+
uses: github/codeql-action/analyze@v3.24.7
|
|
@@ -19,7 +19,7 @@ jobs:
|
|
|
19
19
|
tag-suffix: "-bookworm"
|
|
20
20
|
|
|
21
21
|
steps:
|
|
22
|
-
- uses: actions/checkout@v4.1.
|
|
22
|
+
- uses: actions/checkout@v4.1.2
|
|
23
23
|
|
|
24
24
|
- name: Docker meta
|
|
25
25
|
id: meta
|
|
@@ -68,7 +68,7 @@ jobs:
|
|
|
68
68
|
name: Build and publish package to pypi.org
|
|
69
69
|
runs-on: ubuntu-22.04
|
|
70
70
|
steps:
|
|
71
|
-
- uses: actions/checkout@v4.1.
|
|
71
|
+
- uses: actions/checkout@v4.1.2
|
|
72
72
|
with:
|
|
73
73
|
fetch-depth: 1
|
|
74
74
|
|
|
@@ -10,7 +10,7 @@ jobs:
|
|
|
10
10
|
name: Update test corpus
|
|
11
11
|
runs-on: ubuntu-22.04
|
|
12
12
|
steps:
|
|
13
|
-
- uses: actions/checkout@v4.1.
|
|
13
|
+
- uses: actions/checkout@v4.1.2
|
|
14
14
|
with:
|
|
15
15
|
fetch-depth: 1
|
|
16
16
|
submodules: true
|
|
@@ -27,3 +27,4 @@ jobs:
|
|
|
27
27
|
commit-message: 'chore: Update test corpus'
|
|
28
28
|
committer: 'CI on behalf of the Schemathesis team <team@schemathesis.io>'
|
|
29
29
|
author: 'CI on behalf of the Schemathesis team <team@schemathesis.io>'
|
|
30
|
+
branch: "create-pull-request/update-test-corpus"
|
|
@@ -10,7 +10,7 @@ jobs:
|
|
|
10
10
|
name: Update pre-commit
|
|
11
11
|
runs-on: ubuntu-22.04
|
|
12
12
|
steps:
|
|
13
|
-
- uses: actions/checkout@v4.1.
|
|
13
|
+
- uses: actions/checkout@v4.1.2
|
|
14
14
|
with:
|
|
15
15
|
fetch-depth: 1
|
|
16
16
|
submodules: true
|
|
@@ -28,3 +28,4 @@ jobs:
|
|
|
28
28
|
commit-message: 'chore: Update pre-commit'
|
|
29
29
|
committer: 'CI on behalf of the Schemathesis team <team@schemathesis.io>'
|
|
30
30
|
author: 'CI on behalf of the Schemathesis team <team@schemathesis.io>'
|
|
31
|
+
branch: "create-pull-request/update-pre-commit"
|
|
@@ -20,7 +20,7 @@ repos:
|
|
|
20
20
|
- id: gitlint
|
|
21
21
|
|
|
22
22
|
- repo: https://github.com/adrienverge/yamllint
|
|
23
|
-
rev: v1.
|
|
23
|
+
rev: v1.35.1
|
|
24
24
|
hooks:
|
|
25
25
|
- id: yamllint
|
|
26
26
|
|
|
@@ -30,7 +30,7 @@ repos:
|
|
|
30
30
|
- id: relint
|
|
31
31
|
|
|
32
32
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
33
|
-
rev: v1.
|
|
33
|
+
rev: v1.9.0
|
|
34
34
|
hooks:
|
|
35
35
|
- id: mypy
|
|
36
36
|
exclude: ^(docs/|test/|test-corpus/|example/|benches/).*$
|
|
@@ -38,12 +38,12 @@ repos:
|
|
|
38
38
|
additional_dependencies: [types-click, types-requests, types-PyYAML]
|
|
39
39
|
|
|
40
40
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
41
|
-
rev: v0.
|
|
41
|
+
rev: v0.3.3
|
|
42
42
|
hooks:
|
|
43
43
|
- id: ruff-format
|
|
44
44
|
|
|
45
45
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
46
|
-
rev: v0.
|
|
46
|
+
rev: v0.3.3
|
|
47
47
|
hooks:
|
|
48
48
|
- id: ruff
|
|
49
49
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: schemathesis
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.26.0
|
|
4
4
|
Summary: Property-based testing framework for Open API and GraphQL based apps
|
|
5
5
|
Project-URL: Documentation, https://schemathesis.readthedocs.io/en/stable/
|
|
6
6
|
Project-URL: Changelog, https://schemathesis.readthedocs.io/en/stable/changelog.html
|
|
7
7
|
Project-URL: Bug Tracker, https://github.com/schemathesis/schemathesis
|
|
8
8
|
Project-URL: Funding, https://github.com/sponsors/Stranger6667
|
|
9
9
|
Project-URL: Source Code, https://github.com/schemathesis/schemathesis
|
|
10
|
-
Author-email: Dmitry Dygalo <
|
|
11
|
-
Maintainer-email: Dmitry Dygalo <
|
|
10
|
+
Author-email: Dmitry Dygalo <dmitry@dygalo.dev>
|
|
11
|
+
Maintainer-email: Dmitry Dygalo <dmitry@dygalo.dev>
|
|
12
12
|
License-Expression: MIT
|
|
13
13
|
License-File: LICENSE
|
|
14
14
|
Keywords: graphql,hypothesis,openapi,pytest,testing
|
|
@@ -35,7 +35,8 @@ Requires-Dist: colorama<1.0,>=0.4
|
|
|
35
35
|
Requires-Dist: httpx<1.0,>=0.22.0
|
|
36
36
|
Requires-Dist: hypothesis-graphql<1,>=0.11.0
|
|
37
37
|
Requires-Dist: hypothesis-jsonschema<0.24,>=0.23.1
|
|
38
|
-
Requires-Dist: hypothesis<7,>=6.84.3
|
|
38
|
+
Requires-Dist: hypothesis<7,>=6.84.3; python_version > '3.8'
|
|
39
|
+
Requires-Dist: hypothesis[zoneinfo]<7,>=6.84.3; python_version == '3.8'
|
|
39
40
|
Requires-Dist: jsonschema<5.0,>=4.18.0
|
|
40
41
|
Requires-Dist: junit-xml<2.0,>=1.9
|
|
41
42
|
Requires-Dist: pyrate-limiter<3.0,>=2.10
|
|
@@ -224,7 +225,9 @@ Receive automatic comments in your pull requests and updates on GitHub checks st
|
|
|
224
225
|
|
|
225
226
|
### Software as a Service
|
|
226
227
|
|
|
227
|
-
|
|
228
|
+
Schemathesis CLI integrates with Schemathesis.io to enhance bug detection by optimizing test case generation for efficiency and realism. It leverages various techniques to infer appropriate data generation strategies, provide support for uncommon media types, and adjust schemas for faster data generation. The integration also detects the web server being used to generate more targeted test data.
|
|
229
|
+
|
|
230
|
+
Schemathesis.io offers a user-friendly UI that simplifies viewing and analyzing test results. If you prefer an all-in-one solution with quick setup, we have a [free tier](https://schemathesis.io/#pricing) available.
|
|
228
231
|
|
|
229
232
|
## How it works
|
|
230
233
|
|
|
@@ -146,7 +146,9 @@ Receive automatic comments in your pull requests and updates on GitHub checks st
|
|
|
146
146
|
|
|
147
147
|
### Software as a Service
|
|
148
148
|
|
|
149
|
-
|
|
149
|
+
Schemathesis CLI integrates with Schemathesis.io to enhance bug detection by optimizing test case generation for efficiency and realism. It leverages various techniques to infer appropriate data generation strategies, provide support for uncommon media types, and adjust schemas for faster data generation. The integration also detects the web server being used to generate more targeted test data.
|
|
150
|
+
|
|
151
|
+
Schemathesis.io offers a user-friendly UI that simplifies viewing and analyzing test results. If you prefer an all-in-one solution with quick setup, we have a [free tier](https://schemathesis.io/#pricing) available.
|
|
150
152
|
|
|
151
153
|
## How it works
|
|
152
154
|
|
|
@@ -92,6 +92,10 @@ Custom strategies for Open API "format" keyword
|
|
|
92
92
|
|
|
93
93
|
.. autofunction:: schemathesis.openapi.format
|
|
94
94
|
|
|
95
|
+
Custom strategies for Open API media types
|
|
96
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
97
|
+
|
|
98
|
+
.. autofunction:: schemathesis.openapi.media_type
|
|
95
99
|
|
|
96
100
|
Custom scalars for GraphQL
|
|
97
101
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
-
:version:`Unreleased <v3.
|
|
4
|
+
:version:`Unreleased <v3.26.0...HEAD>` - TBD
|
|
5
5
|
--------------------------------------------
|
|
6
6
|
|
|
7
|
+
.. _v3.26.0:
|
|
8
|
+
|
|
9
|
+
:version:`3.26.0 <v3.25.6...v3.26.0>` - 2024-03-21
|
|
10
|
+
--------------------------------------------------
|
|
11
|
+
|
|
12
|
+
**Added**
|
|
13
|
+
|
|
14
|
+
- Support for per-media type data generators. :issue:`962`
|
|
15
|
+
- Support for ``application/yaml`` & ``text/yml`` media types in ``YAMLSerializer``.
|
|
16
|
+
- **EXPERIMENTAL**: Run automatic schema optimization & format inference if CLI is authenticated in Schemathesis.io.
|
|
17
|
+
|
|
18
|
+
**Fixed**
|
|
19
|
+
|
|
20
|
+
- Not resolving references in nested security schemes. :issue:`2073`
|
|
21
|
+
|
|
22
|
+
**Changed**
|
|
23
|
+
|
|
24
|
+
- Improve error message when the minimum possible example is too large.
|
|
25
|
+
|
|
7
26
|
.. _v3.25.6:
|
|
8
27
|
|
|
9
28
|
:version:`3.25.6 <v3.25.5...v3.25.6>` - 2024-03-02
|
|
@@ -12,6 +12,125 @@ Schemathesis converts Open API schemas to compatible JSON Schemas and passes the
|
|
|
12
12
|
There are many tradeoffs in this process, and Hypothesis tries to give reasonable defaults for a typical case
|
|
13
13
|
and not be too slow for pathological cases.
|
|
14
14
|
|
|
15
|
+
.. _data-generation-overview:
|
|
16
|
+
|
|
17
|
+
Overview
|
|
18
|
+
--------
|
|
19
|
+
|
|
20
|
+
For each API operation, Schemathesis follows a strict order in its test generation process, which includes several phases: explicit examples usage, rerunning previously failed tests, random test generation, and test case minimization (shrinking).
|
|
21
|
+
Each phase targets distinct testing aspects:
|
|
22
|
+
|
|
23
|
+
- **Explicit examples** (`explicit`): Uses predefined examples from the schema.
|
|
24
|
+
- **Rerunning known failures** (`reuse`): Reuses previously failed test cases to check whether they are still failing.
|
|
25
|
+
- **Random generation** (`generate`): Generates random test cases based on the schema.
|
|
26
|
+
- **Shrinking** (`shrink`): Minimizes the failing test cases to make them easier to understand and debug.
|
|
27
|
+
|
|
28
|
+
These phases can be selectively enabled or disabled to configure the testing process:
|
|
29
|
+
|
|
30
|
+
.. code:: shell
|
|
31
|
+
|
|
32
|
+
# To disable the shrinking phase
|
|
33
|
+
--hypothesis-no-phases=shrink
|
|
34
|
+
|
|
35
|
+
# To only include the generate and shrink phases
|
|
36
|
+
--hypothesis-phases=generate,shrink
|
|
37
|
+
|
|
38
|
+
Additionally, you can control the upper limit of generated test cases (only for the ``generate`` phase) via the ``--hypothesis-max-examples`` option.
|
|
39
|
+
|
|
40
|
+
.. code:: shell
|
|
41
|
+
|
|
42
|
+
# Raise the upper cap for generated test cases per operation
|
|
43
|
+
--hypothesis-max-examples=1000
|
|
44
|
+
|
|
45
|
+
The generation process is inherently randomized and is designed for efficient testing, favoring speed and maintaining reasonable coverage over exhaustive testing.
|
|
46
|
+
It also means that Schemathesis does not guarantee the full coverage of all possible variants, but will do its best to generate a diverse set of test cases with minimal duplication.
|
|
47
|
+
|
|
48
|
+
The number of generated tests is affected by the schema's complexity and the distinctness of possible test cases.
|
|
49
|
+
Simple schemas with a clear set of distinct values, like a boolean, naturally limit the total number of unique test cases.
|
|
50
|
+
Conversely, complex schemas with many nested objects and arrays can produce a large number of unique test cases.
|
|
51
|
+
|
|
52
|
+
When Schemathesis finds a minimal failing test case, it stops the test case generation process and verifies whether the failure could be consistently reproduced by rerunning it one more time.
|
|
53
|
+
It also caches distinct minimized failures for reuse in subsequent runs, aiding in catching regressions.
|
|
54
|
+
|
|
55
|
+
Explicit examples
|
|
56
|
+
~~~~~~~~~~~~~~~~~
|
|
57
|
+
|
|
58
|
+
This phase uses examples directly from the API schema, filling missing parts with random data.
|
|
59
|
+
If the schema specifies multiple examples for a parameter, then Schemathesis will use a round-robin strategy to ensure all examples are tested.
|
|
60
|
+
|
|
61
|
+
.. code:: shell
|
|
62
|
+
|
|
63
|
+
# Schema
|
|
64
|
+
{
|
|
65
|
+
"type": "object",
|
|
66
|
+
"properties": {
|
|
67
|
+
"name": {"type": "string", "example": "John"},
|
|
68
|
+
"age": {"type": "integer", "examples": [42, 43]},
|
|
69
|
+
"street": {"type": "string"}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
# Test cases
|
|
73
|
+
{"name": "John", "age": 42, "street": "<RANDOM STRING>"}
|
|
74
|
+
{"name": "John", "age": 43, "street": "<ANOTHER RANDOM STRING>"}
|
|
75
|
+
|
|
76
|
+
Reusing known failures
|
|
77
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
|
78
|
+
|
|
79
|
+
Schemathesis stores failed test cases in a cache (the ``.hypothesis`` directory) and reruns them in subsequent runs to detect regressions.
|
|
80
|
+
This phase may reduce the total number of generated test cases as Schemathesis may find failures earlier.
|
|
81
|
+
|
|
82
|
+
Generating random test cases
|
|
83
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
84
|
+
|
|
85
|
+
The generation process is governed by the ``--data-generation-method`` CLI option, and creates valid (``positive``) or guaranteed invalid (``negative``) test cases based on the schema.
|
|
86
|
+
If negative testing is inapplicable (e.g., when any input is accepted), the tests are skipped.
|
|
87
|
+
|
|
88
|
+
Example:
|
|
89
|
+
|
|
90
|
+
.. code:: shell
|
|
91
|
+
|
|
92
|
+
# Schema
|
|
93
|
+
{
|
|
94
|
+
"type": "object",
|
|
95
|
+
"properties": {
|
|
96
|
+
"name": {"type": "string"}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
# Positive testing
|
|
101
|
+
{"name": "John"}
|
|
102
|
+
|
|
103
|
+
# Negative testing
|
|
104
|
+
{"name": 42}
|
|
105
|
+
|
|
106
|
+
The upper limit of generated test cases could be controlled via the ``--hypothesis-max-examples`` option.
|
|
107
|
+
|
|
108
|
+
Test case minimization
|
|
109
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
|
110
|
+
|
|
111
|
+
This phase focuses on reducing the complexity of failing test cases to make them easier to understand and debug.
|
|
112
|
+
|
|
113
|
+
While beneficial for isolating issues in complex schemas, it can be time-consuming.
|
|
114
|
+
Disabling shrinking (``--hypothesis-no-phases=shrink``) may be advantageous when the source of an error is apparent and can be debugged straightforwardly.
|
|
115
|
+
|
|
116
|
+
.. code:: shell
|
|
117
|
+
|
|
118
|
+
# Schema
|
|
119
|
+
{
|
|
120
|
+
"type": "object",
|
|
121
|
+
"properties": {
|
|
122
|
+
"name": {"type": "string", "minLength": 5}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
# Failing test case
|
|
127
|
+
{"name": "Very long name"}
|
|
128
|
+
|
|
129
|
+
# Minimized test case
|
|
130
|
+
{"name": "aaaaa"}
|
|
131
|
+
|
|
132
|
+
Shrinking works for arbitrary complex structures allowing to avoid digging through large payloads.
|
|
133
|
+
|
|
15
134
|
Generating strings
|
|
16
135
|
------------------
|
|
17
136
|
|
|
@@ -110,7 +110,35 @@ To enable OpenAPI 3.1 support via environment variables, you can set:
|
|
|
110
110
|
|
|
111
111
|
export SCHEMATHESIS_EXPERIMENTAL_OPENAPI_3_1=true
|
|
112
112
|
|
|
113
|
-
For more details, join the `GitHub Discussion <https://github.com/schemathesis/schemathesis/discussions/1822>`_.
|
|
113
|
+
For more details, join the `GitHub Discussion #1822 <https://github.com/schemathesis/schemathesis/discussions/1822>`_.
|
|
114
|
+
|
|
115
|
+
Schema Analysis
|
|
116
|
+
~~~~~~~~~~~~~~~
|
|
117
|
+
|
|
118
|
+
Enables integration with Schemathesis.io to optimize test case generation for better bug detection.
|
|
119
|
+
This feature infers appropriate data generation strategies, supports uncommon media types, adjusts schemas for faster data generation, and detects the web server to generate more targeted test data.
|
|
120
|
+
|
|
121
|
+
.. _schema-analysis-cli:
|
|
122
|
+
|
|
123
|
+
In CLI
|
|
124
|
+
~~~~~~
|
|
125
|
+
|
|
126
|
+
.. code-block:: bash
|
|
127
|
+
|
|
128
|
+
st run https://example.schemathesis.io/openapi.json --experimental=schema-analysis
|
|
129
|
+
|
|
130
|
+
.. _schema-analysis-env-vars:
|
|
131
|
+
|
|
132
|
+
Using Environment Variables
|
|
133
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
134
|
+
|
|
135
|
+
To enable schema analysis support via environment variables, you can set:
|
|
136
|
+
|
|
137
|
+
.. code-block:: bash
|
|
138
|
+
|
|
139
|
+
export SCHEMATHESIS_EXPERIMENTAL_SCHEMA_ANALYSIS=true
|
|
140
|
+
|
|
141
|
+
For more details, join the `GitHub Discussion #2056 <https://github.com/schemathesis/schemathesis/discussions/2056>`_.
|
|
114
142
|
|
|
115
143
|
Stabilization of Experimental Features
|
|
116
144
|
--------------------------------------
|
|
@@ -645,6 +645,35 @@ In the example above, when Schemathesis detects a string with the "card_number"
|
|
|
645
645
|
|
|
646
646
|
For more details about creating strategies, refer to the `Hypothesis documentation <https://hypothesis.readthedocs.io/en/latest/data.html>`_.
|
|
647
647
|
|
|
648
|
+
Generating payloads for unknown media types
|
|
649
|
+
-------------------------------------------
|
|
650
|
+
|
|
651
|
+
Each request payload in Open API is associated with a media type, which defines the format of the payload content.
|
|
652
|
+
Schemathesis allows you to manage the generation of payloads by registering Hypothesis strategies for specific media types.
|
|
653
|
+
|
|
654
|
+
Schemathesis generates request payload, it first checks whether there is a custom generation strategy registered for the media type.
|
|
655
|
+
If a strategy is registered, it will be used to generate the payload content; otherwise, it will generate payloads based on the schema.
|
|
656
|
+
|
|
657
|
+
- **Create a Hypothesis Strategy**: Create a strategy that generates binary payloads compliant with the media type.
|
|
658
|
+
- **Register the Strategy**: Make it known to Schemathesis using ``schemathesis.openapi.media_type``.
|
|
659
|
+
|
|
660
|
+
.. code-block:: python
|
|
661
|
+
|
|
662
|
+
from hypothesis import strategies as st
|
|
663
|
+
import schemathesis
|
|
664
|
+
|
|
665
|
+
# Define your own strategy for generating PDFs
|
|
666
|
+
# NOTE: This is a simplified example, actual PDF generation is much more complex
|
|
667
|
+
pdfs = st.sampled_from([b"%PDF-1.5...", b"%PDF-1.6..."])
|
|
668
|
+
|
|
669
|
+
# Register the strategy for "application/pdf" media type
|
|
670
|
+
schemathesis.openapi.media_type("application/pdf", pdfs)
|
|
671
|
+
# You can also specify one or more additional aliases for the media type
|
|
672
|
+
schemathesis.openapi.media_type("application/pdf", pdfs, aliases=["application/x-pdf"])
|
|
673
|
+
|
|
674
|
+
In this example, ``pdfs`` would be a Hypothesis strategy that generates binary data compliant with the PDF format.
|
|
675
|
+
When Schemathesis encounters a request payload with the "application/pdf" media type, it uses the registered strategy to generate the payload content.
|
|
676
|
+
|
|
648
677
|
Schemathesis test runner
|
|
649
678
|
------------------------
|
|
650
679
|
|
|
@@ -15,6 +15,13 @@ This data consists of all possible data types from the JSON schema specification
|
|
|
15
15
|
We can't guarantee that the generated data will always be accepted by the application under test since there could be validation rules not covered by the API schema.
|
|
16
16
|
If you found that Schemathesis generated something that doesn't fit the API schema, consider `reporting a bug <https://github.com/schemathesis/schemathesis/issues/new?assignees=Stranger6667&labels=Status%3A+Review+Needed%2C+Type%3A+Bug&template=bug_report.md&title=%5BBUG%5D>`_
|
|
17
17
|
|
|
18
|
+
How many tests does Schemathesis execute for an API operation?
|
|
19
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
20
|
+
|
|
21
|
+
The total number of tests Schemathesis executes is influenced by the API schema's complexity, user-defined settings like ``--hypothesis-max-examples`` for the maximum tests generated, and the test generation phases (``explicit``, ``generate``, ``reuse``, and ``shrink``).
|
|
22
|
+
The process is designed to optimize coverage within a reasonable test budget rather than aiming for exhaustive coverage.
|
|
23
|
+
For detailed insights and customization options, refer to our :ref:`data generation docs <data-generation-overview>`.
|
|
24
|
+
|
|
18
25
|
What kind errors Schemathesis is capable to find?
|
|
19
26
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
20
27
|
|
|
@@ -7,6 +7,27 @@ Schemathesis as a Service on `Schemathesis.io <https://app.schemathesis.io/auth/
|
|
|
7
7
|
|
|
8
8
|
For a step-by-step guide on getting started with Schemathesis.io, visit our `Quick Start Guide <https://docs.schemathesis.io/quick-start/>`_.
|
|
9
9
|
|
|
10
|
+
Schema Analysis (Experimental)
|
|
11
|
+
------------------------------
|
|
12
|
+
|
|
13
|
+
Schemathesis CLI now includes an experimental feature that integrates with Schemathesis.io to improve the efficiency and realism of generated test cases for better bug detection. This feature optimizes test case generation by:
|
|
14
|
+
|
|
15
|
+
- Inferring "format" keywords for appropriate string data generation
|
|
16
|
+
- Providing data generation strategies for uncommon media types (e.g., application/pdf)
|
|
17
|
+
- Inferring data generation strategies for GraphQL scalars
|
|
18
|
+
- Adjusting schemas for faster data generation in Schemathesis
|
|
19
|
+
- Detecting the web server to generate more targeted test data and avoid rejected inputs
|
|
20
|
+
|
|
21
|
+
By enabling this feature, you can potentially benefit from faster achievement of higher edge case coverage and tests that reach deeper into your API implementation.
|
|
22
|
+
|
|
23
|
+
To enable schema analysis, use the ``--experimental=schema-analysis`` CLI option. It is also automatically enabled when the ``--report`` CLI option is used.
|
|
24
|
+
|
|
25
|
+
.. note::
|
|
26
|
+
|
|
27
|
+
During the experimental phase, schema analysis is available free of charge and does not require signup. By using this feature, you automatically agree to Schemathesis.io's `Terms of Service <https://schemathesis.io/legal/terms>`_ and `Privacy Policy`_.
|
|
28
|
+
|
|
29
|
+
Please note that this feature is still experimental, and its effectiveness may vary depending on the API being tested. We are actively refining the algorithms and techniques used. If you encounter any issues or have suggestions, please open an issue on our GitHub repository or reach out via our support channels.
|
|
30
|
+
|
|
10
31
|
Uploading Reports to Schemathesis.io
|
|
11
32
|
------------------------------------
|
|
12
33
|
|
|
@@ -4,11 +4,11 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "schemathesis"
|
|
7
|
-
version = "3.
|
|
7
|
+
version = "3.26.0"
|
|
8
8
|
description = "Property-based testing framework for Open API and GraphQL based apps"
|
|
9
9
|
keywords = ["pytest", "hypothesis", "openapi", "graphql", "testing"]
|
|
10
|
-
authors = [{ name = "Dmitry Dygalo", email = "
|
|
11
|
-
maintainers = [{ name = "Dmitry Dygalo", email = "
|
|
10
|
+
authors = [{ name = "Dmitry Dygalo", email = "dmitry@dygalo.dev" }]
|
|
11
|
+
maintainers = [{ name = "Dmitry Dygalo", email = "dmitry@dygalo.dev" }]
|
|
12
12
|
requires-python = ">=3.8"
|
|
13
13
|
license = "MIT"
|
|
14
14
|
readme = "README.md"
|
|
@@ -36,7 +36,8 @@ dependencies = [
|
|
|
36
36
|
"click>=7.0,<9.0",
|
|
37
37
|
"colorama>=0.4,<1.0",
|
|
38
38
|
"httpx>=0.22.0,<1.0",
|
|
39
|
-
"hypothesis>=6.84.3,<7",
|
|
39
|
+
"hypothesis>=6.84.3,<7; python_version > '3.8'",
|
|
40
|
+
"hypothesis[zoneinfo]>=6.84.3,<7; python_version == '3.8'",
|
|
40
41
|
"hypothesis_graphql>=0.11.0,<1",
|
|
41
42
|
"hypothesis_jsonschema>=0.23.1,<0.24",
|
|
42
43
|
"jsonschema>=4.18.0,<5.0",
|