elastic-arm-9a50e053: building yyacg7rilvnnrl28cqr3s0svq45bykmg-python3.14-mcp-2.3.0.drv structuredAttrs is enabled Sourcing python-remove-tests-dir-hook Sourcing python-catch-conflicts-hook.sh Sourcing python-remove-bin-bytecode-hook.sh Sourcing pypa-build-hook Using pypaBuildPhase Sourcing python-runtime-deps-check-hook Using pythonRuntimeDepsCheckHook Sourcing pypa-install-hook Using pypaInstallPhase Sourcing python-imports-check-hook.sh Using pythonImportsCheckPhase Sourcing python-metadata-check-hook.sh Using pythonMetadataCheckPhase Sourcing python-namespaces-hook Sourcing python-catch-conflicts-hook.sh Sourcing pytest-check-hook Using pytestCheckPhase Running phase: unpackPhase unpacking source archive /nix/store/prbkdf4kv543ij4r95gk96pykmcqy7xp-source source root is source setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "source/uv.lock" Running phase: patchPhase Running phase: updateAutotoolsGnuConfigScriptsPhase Running phase: configurePhase no configure script, doing nothing Running phase: buildPhase Executing pypaBuildPhase Setting UV_DYNAMIC_VERSIONING_BYPASS to 2.3.0 Creating a wheel... pypa build flags: --no-isolation --outdir dist/ --wheel * Getting build dependencies for wheel... * Building wheel... Successfully built mcp-2.3.0-py3-none-any.whl Finished creating a wheel... Finished executing pypaBuildPhase Running phase: pythonRuntimeDepsCheckHook Executing pythonRuntimeDepsCheck Checking runtime dependencies for mcp-2.3.0-py3-none-any.whl Finished executing pythonRuntimeDepsCheck Running phase: installPhase Executing pypaInstallPhase Successfully installed mcp-2.3.0-py3-none-any.whl Finished executing pypaInstallPhase Running phase: pythonOutputDistPhase Executing pythonOutputDistPhase Finished executing pythonOutputDistPhase Running phase: fixupPhase shrinking RPATHs of ELF executables and libraries in /nix/store/n0mi130qx684azzz09g1vdlbzhfhqw05-python3.14-mcp-2.3.0-dist checking for references to /build/ in /nix/store/n0mi130qx684azzz09g1vdlbzhfhqw05-python3.14-mcp-2.3.0-dist... patching script interpreter paths in /nix/store/n0mi130qx684azzz09g1vdlbzhfhqw05-python3.14-mcp-2.3.0-dist shrinking RPATHs of ELF executables and libraries in /nix/store/cfbymj1h76zr6q2478dnd7j7v6fhmmhl-python3.14-mcp-2.3.0 checking for references to /build/ in /nix/store/cfbymj1h76zr6q2478dnd7j7v6fhmmhl-python3.14-mcp-2.3.0... patching script interpreter paths in /nix/store/cfbymj1h76zr6q2478dnd7j7v6fhmmhl-python3.14-mcp-2.3.0 stripping (with command strip and flags -S -p) in /nix/store/cfbymj1h76zr6q2478dnd7j7v6fhmmhl-python3.14-mcp-2.3.0/lib /nix/store/cfbymj1h76zr6q2478dnd7j7v6fhmmhl-python3.14-mcp-2.3.0/bin Rewriting #!/nix/store/lq2fsnmg0q3y0vlxn91w8s8wvj1m6fld-python3-3.14.8/bin/python3.14 to #!/nix/store/lq2fsnmg0q3y0vlxn91w8s8wvj1m6fld-python3-3.14.8 wrapping `/nix/store/cfbymj1h76zr6q2478dnd7j7v6fhmmhl-python3.14-mcp-2.3.0/bin/mcp'... Executing pythonRemoveTestsDir Finished executing pythonRemoveTestsDir Running phase: installCheckPhase no Makefile or custom installCheckPhase, doing nothing Running phase: pythonCatchConflictsPhase Running phase: pythonRemoveBinBytecodePhase Running phase: pythonImportsCheckPhase Executing pythonImportsCheckPhase Check whether the following modules can be imported: mcp Running phase: pythonMetadataCheckPhase Executing pythonMetadataCheckPhase Running phase: pytestCheckPhase Executing pytestCheckPhase pytest flags: -m pytest -k not\ \(test_client_with_stdio_parameters_launches_the_server_as_a_subprocess\)\ and\ not\ \(test_tool_call_and_notification_round_trip_over_a_stdio_subprocess\)\ and\ not\ \(test_a_tool_spawned_childs_stdout_writes_never_reach_the_wire\)\ and\ not\ \(test_notification_validation_error\)\ and\ not\ \(test_sse_security_\)\ and\ not\ \(test_streamable_http_\)\ and\ not\ \(test_streamablehttp_\)\ and\ not\ \(test_messages_are_executed_concurrently\) --numprocesses=16 ============================= test session starts ============================== platform linux -- Python 3.14.8, pytest-9.1.1, pluggy-1.6.0 rootdir: /build/source configfile: pyproject.toml plugins: anyio-4.15.1, examples-0.0.18, inline-snapshot-0.34.2, logfire-4.41.0, asyncio-1.4.0, xdist-3.8.0 asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function 16 workers [5913 items] scheduling tests via LoadScheduling tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms tests/client/test_client_caching.py::test_a_raising_eviction_does_not_block_notification_delivery tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected tests/client/test_session.py::test_client_session_default_client_info tests/docs_src/test_cancellation.py::test_a_def_tool_nobody_cancels_indexes_every_book_and_cleans_up tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] tests/docs_src/test_media.py::test_image_return_becomes_an_image_content_block tests/docs/test_translations.py::test_reimpose_restores_fences_pins_ids_and_leaves_reordered_links_where_the_translation_put_them tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification [gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions [gw6] [ 0%] PASSED tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound tests/docs_src/test_elicitation.py::test_resolver_asks_only_when_the_folder_is_not_empty tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] [gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned [gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] [gw1] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned [gw5] [ 0%] PASSED tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected [gw11] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] [gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] [gw9] [ 0%] PASSED tests/docs/test_translations.py::test_reimpose_restores_fences_pins_ids_and_leaves_reordered_links_where_the_translation_put_them [gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token [gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] [gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code [gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] [gw3] [ 0%] PASSED tests/client/test_session.py::test_client_session_default_client_info tests/client/test_session.py::test_client_session_version_negotiation_success [gw5] [ 0%] PASSED tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected tests/client/test_session_claims.py::test_empty_claim_sequence_rejected tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope [gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope [gw1] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code [gw11] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] tests/docs/test_translations.py::test_unwrap_ends_the_reply_with_exactly_the_trailing_newlines_of_the_english [gw9] [ 0%] PASSED tests/docs/test_translations.py::test_unwrap_ends_the_reply_with_exactly_the_trailing_newlines_of_the_english tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-dropped] tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] [gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] [gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] [gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed tests/cli/test_claude.py::test_generates_uv_run_command tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] [gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] [gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request [gw5] [ 0%] PASSED tests/client/test_session_claims.py::test_empty_claim_sequence_rejected tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] [gw3] [ 0%] PASSED tests/client/test_session.py::test_client_session_version_negotiation_success tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] [gw0] [ 0%] PASSED tests/cli/test_claude.py::test_generates_uv_run_command [gw5] [ 0%] PASSED tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension [gw11] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] [gw9] [ 0%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-dropped] tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-level] [gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant [gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] [gw8] [ 0%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification [gw1] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request [gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] [gw9] [ 0%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-level] tests/client/test_session.py::test_client_session_version_negotiation_failure tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present tests/cli/test_claude.py::test_file_spec_without_object_suffix [gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] [gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-added] [gw11] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] [gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present [gw5] [ 0%] PASSED tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant [gw9] [ 0%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-added] [gw0] [ 0%] PASSED tests/cli/test_claude.py::test_file_spec_without_object_suffix tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] [gw1] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token [gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-moved-to-another-section] [gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] [gw3] [ 0%] PASSED tests/client/test_session.py::test_client_session_version_negotiation_failure tests/client/test_session.py::test_client_capabilities_default [gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated [gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] [gw9] [ 0%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-moved-to-another-section] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] [gw11] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-unclosed] [gw8] [ 0%] PASSED tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages [gw3] [ 0%] PASSED tests/client/test_session.py::test_client_capabilities_default [gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none [gw0] [ 0%] PASSED tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated [gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] [gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] [gw1] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata [gw9] [ 0%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-unclosed] tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[target-mangled] [gw2] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method [gw11] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] tests/client/test_session.py::test_client_capabilities_with_custom_callbacks tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided [gw7] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] [gw9] [ 1%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[target-mangled] tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] [gw3] [ 1%] PASSED tests/client/test_session.py::test_client_capabilities_with_custom_callbacks [gw2] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided [gw0] [ 1%] PASSED tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] [gw7] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] tests/client/test_session.py::test_client_capabilities_with_sampling_tools tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[link-moved-to-another-section] [gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] [gw1] [ 1%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] [gw5] [ 1%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition tests/cli/test_claude.py::test_with_editable_adds_flag tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant [gw3] [ 1%] PASSED tests/client/test_session.py::test_client_capabilities_with_sampling_tools [gw11] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] [gw9] [ 1%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[link-moved-to-another-section] [gw2] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant tests/client/test_session.py::test_initialize_result tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] [gw7] [ 1%] PASSED tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition tests/client/test_extension.py::test_advertise_serves_captured_settings tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version [gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] tests/docs/test_translations.py::test_validate_flags_code_spans_markers_banned_terms_and_abridgement tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises [gw1] [ 1%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] [gw3] [ 1%] PASSED tests/client/test_session.py::test_initialize_result [gw7] [ 1%] PASSED tests/client/test_extension.py::test_advertise_serves_captured_settings tests/client/test_extension.py::test_advertise_defaults_to_empty_settings tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] [gw0] [ 1%] PASSED tests/cli/test_claude.py::test_with_editable_adds_flag tests/cli/test_claude.py::test_env_vars_written tests/client/test_session.py::test_client_tool_call_with_meta[None] [gw8] [ 1%] PASSED tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit [gw2] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises [gw11] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] [gw7] [ 1%] PASSED tests/client/test_extension.py::test_advertise_defaults_to_empty_settings tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event [gw9] [ 1%] PASSED tests/docs/test_translations.py::test_validate_flags_code_spans_markers_banned_terms_and_abridgement tests/docs/test_translations.py::test_validate_counts_list_items_and_table_rows_whatever_the_language_of_a_placeholder tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version [gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] [gw9] [ 1%] PASSED tests/docs/test_translations.py::test_validate_counts_list_items_and_table_rows_whatever_the_language_of_a_placeholder [gw7] [ 1%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] [gw5] [ 1%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise [gw3] [ 1%] PASSED tests/client/test_session.py::test_client_tool_call_with_meta[None] tests/client/test_session.py::test_client_tool_call_with_meta[meta1] [gw1] [ 1%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[key] [gw11] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] [gw8] [ 1%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event [gw7] [ 1%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] [gw2] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise [gw0] [ 1%] PASSED tests/cli/test_claude.py::test_env_vars_written tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] [gw7] [ 1%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event [gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result [gw3] [ 1%] PASSED tests/client/test_session.py::test_client_tool_call_with_meta[meta1] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] [gw11] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] tests/client/test_session.py::test_receive_loop_answers_malformed_inbound_request_with_invalid_params [gw1] [ 1%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins [gw2] [ 1%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] [gw7] [ 1%] PASSED tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result [gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] [gw3] [ 1%] PASSED tests/client/test_session.py::test_receive_loop_answers_malformed_inbound_request_with_invalid_params tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required [gw8] [ 1%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event tests/client/test_session.py::test_receive_loop_answers_unknown_request_method_with_method_not_found [gw11] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] [gw7] [ 1%] PASSED tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required [gw2] [ 1%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] [gw3] [ 1%] PASSED tests/client/test_session.py::test_receive_loop_answers_unknown_request_method_with_method_not_found tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] [gw5] [ 1%] PASSED tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] [gw2] [ 1%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] [gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap [gw7] [ 1%] PASSED tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error [gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new tests/client/test_session.py::test_receive_loop_drops_unknown_notification_method_without_response [gw3] [ 1%] PASSED tests/client/test_session.py::test_receive_loop_drops_unknown_notification_method_without_response tests/client/test_session.py::test_on_request_rejects_a_server_request_absent_at_the_negotiated_version [gw1] [ 1%] PASSED tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request [gw3] [ 1%] PASSED tests/client/test_session.py::test_on_request_rejects_a_server_request_absent_at_the_negotiated_version [gw7] [ 2%] PASSED tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error tests/client/test_session.py::test_on_request_validates_the_callback_result_against_the_surface_schema [gw8] [ 2%] PASSED tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add-add-False] tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] [gw15] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin [gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] tests/client/test_input_required.py::test_request_state_passes_through_byte_identical [gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new [gw7] [ 2%] PASSED tests/client/test_input_required.py::test_request_state_passes_through_byte_identical tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] [gw3] [ 2%] PASSED tests/client/test_session.py::test_on_request_validates_the_callback_result_against_the_surface_schema [gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] tests/client/test_session.py::test_on_request_callback_returning_a_surface_invalid_result_is_internal_error tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] tests/cli/test_claude.py::test_other_servers_preserved [gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] [gw8] [ 2%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add-add-False] tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] [gw1] [ 2%] PASSED tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] [gw7] [ 2%] PASSED tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] [gw5] [ 2%] PASSED tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] [gw15] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] [gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] [gw7] [ 2%] PASSED tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] [gw0] [ 2%] PASSED tests/cli/test_claude.py::test_other_servers_preserved tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently [gw8] [ 2%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[tool with spaces-tool with spaces-False] [gw6] [ 2%] PASSED tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] [gw7] [ 2%] PASSED tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently [gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] [gw5] [ 2%] PASSED tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers [gw10] [ 2%] PASSED tests/docs_src/test_media.py::test_image_return_becomes_an_image_content_block tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] tests/client/test_input_required.py::test_default_max_rounds_constant tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] [gw8] [ 2%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[tool with spaces-tool with spaces-False] [gw7] [ 2%] PASSED tests/client/test_input_required.py::test_default_max_rounds_constant tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] [gw15] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] [gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] [gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[ add-=?base64?IGFkZA==?=-True] tests/docs_src/test_media.py::test_image_result_has_no_structured_content_and_no_output_schema tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] [gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] [gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] [gw1] [ 2%] PASSED tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] [gw5] [ 2%] PASSED tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] [gw8] [ 2%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[ add-=?base64?IGFkZA==?=-True] tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add -=?base64?YWRkIA==?=-True] tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] [gw15] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers [gw7] [ 2%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] [gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] [gw1] [ 2%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] [gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] [gw8] [ 2%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add -=?base64?YWRkIA==?=-True] tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] [gw10] [ 2%] PASSED tests/docs_src/test_media.py::test_image_result_has_no_structured_content_and_no_output_schema [gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[r\xe9sum\xe9-=?base64?csOpc3Vtw6k=?=-True] [gw5] [ 2%] PASSED tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers [gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata tests/docs_src/test_media.py::test_audio_return_becomes_an_audio_content_block [gw15] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] [gw8] [ 2%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[r\xe9sum\xe9-=?base64?csOpc3Vtw6k=?=-True] [gw1] [ 2%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version tests/cli/test_claude.py::test_raises_when_config_dir_missing tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] [gw4] [ 2%] PASSED tests/client/test_client_caching.py::test_a_raising_eviction_does_not_block_notification_delivery tests/client/test_client_caching.py::test_a_second_list_tools_within_the_ttl_is_served_from_the_cache [gw7] [ 2%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] [gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] [gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch [gw0] [ 2%] PASSED tests/cli/test_claude.py::test_raises_when_config_dir_missing [gw5] [ 2%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[a\r\nb-=?base64?YQ0KYg==?=-True] tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] [gw1] [ 2%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] [gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch [gw15] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] [gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] [gw8] [ 2%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[a\r\nb-=?base64?YQ0KYg==?=-True] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] [gw4] [ 2%] PASSED tests/client/test_client_caching.py::test_a_second_list_tools_within_the_ttl_is_served_from_the_cache tests/client/test_auth.py::test_union_scopes[disjoint-union-order] tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial002.py] tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] [gw3] [ 2%] PASSED tests/client/test_session.py::test_on_request_callback_returning_a_surface_invalid_result_is_internal_error [gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] tests/client/test_client_caching.py::test_an_expired_entry_is_refetched tests/client/test_session.py::test_on_notify_drops_a_server_notification_absent_at_the_negotiated_version [gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial002.py] tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[=?base64?Zm9v?=-=?base64?PT9iYXNlNjQ/Wm05dj89?=-True] [gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[disjoint-union-order] tests/client/test_auth.py::test_union_scopes[dedup] [gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[dedup] [gw5] [ 3%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing [gw0] [ 3%] PASSED tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] tests/cli/test_claude.py::test_get_uv_path[None-uv] [gw1] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] [gw8] [ 3%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[=?base64?Zm9v?=-=?base64?PT9iYXNlNjQ/Wm05dj89?=-True] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] [gw7] [ 3%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] tests/client/test_auth.py::test_union_scopes[no-previous] tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers [gw0] [ 3%] PASSED tests/cli/test_claude.py::test_get_uv_path[None-uv] [gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[no-previous] [gw6] [ 3%] PASSED tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound [gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] [gw1] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] [gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] tests/client/test_auth.py::test_union_scopes[no-new] [gw8] [ 3%] PASSED tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound [gw5] [ 3%] PASSED tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] [gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[no-new] [gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] [gw4] [ 3%] PASSED tests/client/test_client_caching.py::test_an_expired_entry_is_refetched tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] tests/client/test_auth.py::test_union_scopes[both-empty] [gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] [gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[both-empty] [gw1] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] [gw3] [ 3%] PASSED tests/client/test_session.py::test_on_notify_drops_a_server_notification_absent_at_the_negotiated_version tests/client/test_session.py::test_on_request_elicitation_with_loose_property_schema_reaches_the_callback tests/client/test_client_caching.py::test_each_list_verb_caches_independently_under_its_own_method [gw8] [ 3%] PASSED tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] [gw7] [ 3%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] tests/client/test_auth.py::test_credentials_match_issuer_same_issuer [gw0] [ 3%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] [gw3] [ 3%] PASSED tests/client/test_session.py::test_on_request_elicitation_with_loose_property_schema_reaches_the_callback [gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] [gw1] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] tests/client/test_session.py::test_send_request_validates_the_server_result_against_the_surface_schema tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it [gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_same_issuer tests/client/test_auth.py::test_credentials_match_issuer_different_issuer [gw3] [ 3%] PASSED tests/client/test_session.py::test_send_request_validates_the_server_result_against_the_surface_schema [gw5] [ 3%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] [gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] [gw0] [ 3%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] [gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] tests/client/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version [gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_different_issuer [gw8] [ 3%] PASSED tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] [gw7] [ 3%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation [gw3] [ 3%] PASSED tests/client/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version [gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server [gw4] [ 3%] PASSED tests/client/test_client_caching.py::test_each_list_verb_caches_independently_under_its_own_method tests/client/test_session.py::test_raising_sampling_callback_answers_with_code_zero tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] [gw1] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] [gw7] [ 3%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server [gw5] [ 3%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] tests/client/test_client_caching.py::test_read_resource_caches_per_uri [gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] [gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] tests/client/test_list_roots_callback.py::test_list_roots_callback tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial001.py] tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource [gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] [gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial001.py] [gw0] [ 3%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] [gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths [gw8] [ 3%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post [gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] [gw1] [ 3%] PASSED tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] [gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] [gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] [gw5] [ 3%] PASSED tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination tests/client/test_auth.py::test_validate_resource_accepts_matching_resource [gw4] [ 3%] PASSED tests/client/test_client_caching.py::test_read_resource_caches_per_uri tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] [gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable [gw0] [ 4%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] [gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_matching_resource [gw7] [ 4%] PASSED tests/client/test_list_roots_callback.py::test_list_roots_callback [gw3] [ 4%] PASSED tests/client/test_session.py::test_raising_sampling_callback_answers_with_code_zero tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances [gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] tests/client/test_client_caching.py::test_cursor_continuations_neither_read_nor_write_the_cache [gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] [gw10] [ 4%] PASSED tests/docs_src/test_media.py::test_audio_return_becomes_an_audio_content_block tests/client/test_session.py::test_receive_loop_logs_and_drops_malformed_notification [gw2] [ 4%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable tests/cli/test_utils.py::test_parse_file_path_missing tests/client/test_logging_callback.py::test_logging_callback tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable [gw8] [ 4%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] tests/client/test_auth.py::test_validate_resource_custom_callback [gw2] [ 4%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable tests/docs_src/test_media.py::test_in_memory_bytes_with_a_format_become_the_same_image_content_block [gw5] [ 4%] PASSED tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] [gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] [gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_resource_custom_callback [gw0] [ 4%] PASSED tests/cli/test_utils.py::test_parse_file_path_missing [gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] [gw4] [ 4%] PASSED tests/client/test_client_caching.py::test_cursor_continuations_neither_read_nor_write_the_cache tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request tests/cli/test_utils.py::test_parse_file_exit_on_dir tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active [gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] [gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash [gw2] [ 4%] PASSED tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request tests/client/test_client_caching.py::test_an_expired_cursor_rejection_evicts_the_methods_entry [gw10] [ 4%] PASSED tests/docs_src/test_media.py::test_in_memory_bytes_with_a_format_become_the_same_image_content_block tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] [gw0] [ 4%] PASSED tests/cli/test_utils.py::test_parse_file_exit_on_dir [gw8] [ 4%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] [gw5] [ 4%] PASSED tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active [gw9] [ 4%] PASSED tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[key] tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body [gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash [gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] [gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] [gw3] [ 4%] PASSED tests/client/test_session.py::test_receive_loop_logs_and_drops_malformed_notification tests/client/test_session.py::test_raising_message_handler_on_transport_exception_costs_the_delivery_not_the_connection tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version tests/docs_src/test_media.py::test_path_file_is_read_when_the_result_is_built tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial001.py] tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[entry-string] [gw2] [ 4%] PASSED tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] [gw0] [ 4%] PASSED tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version [gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash [gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] [gw8] [ 4%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] [gw10] [ 4%] PASSED tests/docs_src/test_media.py::test_path_file_is_read_when_the_result_is_built [gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] [gw2] [ 4%] PASSED tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted [gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned [gw5] [ 4%] PASSED tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] [gw0] [ 4%] PASSED tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned [gw6] [ 4%] PASSED tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches tests/docs_src/test_media.py::test_raw_data_without_a_format_falls_back_to_a_default_mime_type tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values [gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] [gw10] [ 4%] PASSED tests/docs_src/test_media.py::test_raw_data_without_a_format_falls_back_to_a_default_mime_type tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages [gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] [gw1] [ 4%] PASSED tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches [gw8] [ 4%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] [gw4] [ 4%] PASSED tests/client/test_client_caching.py::test_an_expired_cursor_rejection_evicts_the_methods_entry tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] tests/docs_src/test_media.py::test_icons_are_visible_where_they_were_declared [gw2] [ 4%] PASSED tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned [gw3] [ 4%] PASSED tests/client/test_session.py::test_raising_message_handler_on_transport_exception_costs_the_delivery_not_the_connection tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed [gw0] [ 4%] PASSED tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages tests/client/test_session.py::test_message_handler_awaiting_session_traffic_on_transport_exception_completes tests/client/test_client_caching.py::test_an_expired_cursor_rejection_under_bypass_does_not_evict [gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] [gw3] [ 4%] PASSED tests/client/test_session.py::test_message_handler_awaiting_session_traffic_on_transport_exception_completes tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] tests/client/test_session.py::test_receive_loop_consumes_server_cancelled_without_reaching_message_handler tests/cli/test_utils.py::test_get_npx_unix_like [gw5] [ 4%] PASSED tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values [gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] [gw1] [ 4%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text [gw3] [ 4%] PASSED tests/client/test_session.py::test_receive_loop_consumes_server_cancelled_without_reaching_message_handler [gw2] [ 4%] PASSED tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused tests/client/test_session.py::test_request_timeout_zero_overrides_session_timeout tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically [gw10] [ 4%] PASSED tests/docs_src/test_media.py::test_icons_are_visible_where_they_were_declared [gw0] [ 4%] PASSED tests/cli/test_utils.py::test_get_npx_unix_like [gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect [gw8] [ 5%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] [gw3] [ 5%] PASSED tests/client/test_session.py::test_request_timeout_zero_overrides_session_timeout tests/cli/test_utils.py::test_get_npx_windows [gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] [gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] [gw4] [ 5%] PASSED tests/client/test_client_caching.py::test_an_expired_cursor_rejection_under_bypass_does_not_evict tests/client/test_session.py::test_progress_notification_reaches_request_callback_and_message_handler [gw1] [ 5%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] [gw3] [ 5%] PASSED tests/client/test_session.py::test_progress_notification_reaches_request_callback_and_message_handler tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] tests/client/test_session.py::test_dispatcher_keyword_runs_over_direct_dispatch tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] tests/docs_src/test_middleware.py::test_timing_record_predicate tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials [gw0] [ 5%] PASSED tests/cli/test_utils.py::test_get_npx_windows [gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] tests/client/test_client_caching.py::test_a_non_cursor_error_on_a_continuation_does_not_evict [gw3] [ 5%] PASSED tests/client/test_session.py::test_dispatcher_keyword_runs_over_direct_dispatch [gw10] [ 5%] PASSED tests/docs_src/test_middleware.py::test_timing_record_predicate tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing tests/client/test_session.py::test_direct_dispatch_roots_list_reaches_callback_with_synthesized_request_id [gw1] [ 5%] PASSED tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials tests/docs_src/test_middleware.py::test_middleware_observes_every_inbound_message [gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] [gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] [gw5] [ 5%] PASSED tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically [gw0] [ 5%] PASSED tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] [gw4] [ 5%] PASSED tests/client/test_client_caching.py::test_a_non_cursor_error_on_a_continuation_does_not_evict tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation [gw3] [ 5%] PASSED tests/client/test_session.py::test_direct_dispatch_roots_list_reaches_callback_with_synthesized_request_id [gw1] [ 5%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] tests/client/test_session.py::test_raising_notification_callbacks_over_direct_dispatch_cost_only_that_delivery [gw8] [ 5%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] tests/client/test_client_caching.py::test_bypass_neither_serves_nor_disturbs_a_warm_entry [gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] [gw5] [ 5%] PASSED tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation [gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] [gw1] [ 5%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] [gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] [gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers [gw4] [ 5%] PASSED tests/client/test_client_caching.py::test_bypass_neither_serves_nor_disturbs_a_warm_entry tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] [gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes [gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] tests/client/test_client_caching.py::test_refresh_skips_the_read_and_stores_the_refetched_result [gw8] [ 5%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] [gw1] [ 5%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] [gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too [gw6] [ 5%] PASSED tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] [gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] [gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes [gw1] [ 5%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post [gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] [gw4] [ 5%] PASSED tests/client/test_client_caching.py::test_refresh_skips_the_read_and_stores_the_refetched_result tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] tests/client/test_client_caching.py::test_refresh_storing_a_ttl_zero_result_purges_the_warm_entry [gw8] [ 5%] PASSED tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too [gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] [gw1] [ 5%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] [gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] [gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption [gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] [gw1] [ 5%] PASSED tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method [gw4] [ 5%] PASSED tests/client/test_client_caching.py::test_refresh_storing_a_ttl_zero_result_purges_the_warm_entry [gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] [gw3] [ 5%] PASSED tests/client/test_session.py::test_raising_notification_callbacks_over_direct_dispatch_cost_only_that_delivery tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] [gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials [gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] tests/client/test_client_caching.py::test_a_list_call_carrying_meta_is_fetched_and_replaces_the_warm_entry tests/client/test_session.py::test_dispatcher_keyword_send_request_before_enter_raises_runtimeerror tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] [gw8] [ 5%] PASSED tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption [gw3] [ 5%] PASSED tests/client/test_session.py::test_dispatcher_keyword_send_request_before_enter_raises_runtimeerror tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] tests/client/test_session.py::test_dispatcher_keyword_send_request_after_exit_raises_connection_closed tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id [gw1] [ 5%] PASSED tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata [gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] [gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] [gw3] [ 5%] PASSED tests/client/test_session.py::test_dispatcher_keyword_send_request_after_exit_raises_connection_closed tests/client/test_session.py::test_dispatcher_keyword_request_timeout_bounds_wait_for_never_run_peer tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end [gw1] [ 5%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata [gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id [gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] [gw4] [ 6%] PASSED tests/client/test_client_caching.py::test_a_list_call_carrying_meta_is_fetched_and_replaces_the_warm_entry tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata [gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] [gw3] [ 6%] PASSED tests/client/test_session.py::test_dispatcher_keyword_request_timeout_bounds_wait_for_never_run_peer tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] tests/client/test_session.py::test_adopt_raises_when_no_mutual_modern_version_is_supported [gw1] [ 6%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes [gw3] [ 6%] PASSED tests/client/test_session.py::test_adopt_raises_when_no_mutual_modern_version_is_supported tests/client/test_client_caching.py::test_a_read_resource_carrying_meta_is_fetched_and_replaces_the_warm_entry tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] [gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint tests/client/test_session.py::test_initialize_opts_out_of_cancel_on_abandon_while_other_requests_leave_it_unset tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] [gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] [gw3] [ 6%] PASSED tests/client/test_session.py::test_initialize_opts_out_of_cancel_on_abandon_while_other_requests_leave_it_unset [gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes tests/client/test_session.py::test_modern_stamp_leaves_cancel_on_abandon_at_the_dispatcher_default tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info [gw1] [ 6%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint [gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] tests/client/test_auth.py::test_registration_request_sends_application_type [gw3] [ 6%] PASSED tests/client/test_session.py::test_modern_stamp_leaves_cancel_on_abandon_at_the_dispatcher_default tests/client/test_session.py::test_constructor_rejects_streams_and_dispatcher_together tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] [gw3] [ 6%] PASSED tests/client/test_session.py::test_constructor_rejects_streams_and_dispatcher_together [gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] [gw4] [ 6%] PASSED tests/client/test_client_caching.py::test_a_read_resource_carrying_meta_is_fetched_and_replaces_the_warm_entry tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher [gw1] [ 6%] PASSED tests/client/test_auth.py::test_registration_request_sends_application_type [gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info [gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] [gw3] [ 6%] PASSED tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens tests/client/test_client_caching.py::test_cache_mode_is_inert_when_caching_is_disabled tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials [gw2] [ 6%] PASSED tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused [gw6] [ 6%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] [gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] [gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] [gw1] [ 6%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] [gw3] [ 6%] PASSED tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] [gw8] [ 6%] PASSED tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] [gw9] [ 6%] PASSED tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[entry-string] [gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials [gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] [gw4] [ 6%] PASSED tests/client/test_client_caching.py::test_cache_mode_is_inert_when_caching_is_disabled tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration [gw3] [ 6%] PASSED tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result [gw2] [ 6%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[keep-string] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] [gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[request_state] [gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] [gw1] [ 6%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth [gw3] [ 6%] PASSED tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] [gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] [gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] [gw2] [ 6%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] [gw1] [ 6%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth [gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] [gw4] [ 6%] PASSED tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[request_state] [gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes [gw3] [ 6%] PASSED tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] [gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[input_responses] [gw3] [ 6%] PASSED tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call [gw1] [ 6%] PASSED tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status [gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] [gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] [gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] [gw3] [ 6%] PASSED tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims [gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] [gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty [gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] [gw1] [ 6%] PASSED tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header [gw4] [ 6%] PASSED tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[input_responses] [gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims [gw3] [ 6%] PASSED tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty [gw6] [ 6%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token tests/client/test_client_caching.py::test_a_terminal_read_reached_through_driver_rounds_is_never_cached tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write [gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] [gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] [gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token [gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_middleware_observes_every_inbound_message [gw8] [ 7%] PASSED tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration [gw3] [ 7%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] [gw1] [ 7%] PASSED tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token [gw4] [ 7%] PASSED tests/client/test_client_caching.py::test_a_terminal_read_reached_through_driver_rounds_is_never_cached tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] tests/docs_src/test_middleware.py::test_the_result_passes_through_unchanged tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] tests/client/test_client_caching.py::test_a_refresh_that_resolves_to_input_required_purges_the_warm_entry tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] [gw2] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error [gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] [gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] [gw3] [ 7%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] [gw1] [ 7%] PASSED tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing [gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_the_result_passes_through_unchanged [gw8] [ 7%] PASSED tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error [gw3] [ 7%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] [gw4] [ 7%] PASSED tests/client/test_client_caching.py::test_a_refresh_that_resolves_to_input_required_purges_the_warm_entry tests/client/test_client_caching.py::test_a_listing_served_from_a_shared_store_rebuilds_output_schemas [gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] tests/docs_src/test_middleware.py::test_a_notification_has_no_request_id tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] [gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] [gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting [gw1] [ 7%] PASSED tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] [gw3] [ 7%] PASSED tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] tests/client/test_auth.py::test_build_metadata[simple-url] [gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] [gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] [gw3] [ 7%] PASSED tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] [gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_a_notification_has_no_request_id [gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] tests/docs_src/test_middleware.py::test_raising_before_call_next_refuses_the_message [gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] [gw2] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake [gw3] [ 7%] PASSED tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake [gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] tests/client/test_session.py::test_era_neutral_properties_after_discover [gw6] [ 7%] PASSED tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] [gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] [gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_raising_before_call_next_refuses_the_message tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss [gw3] [ 7%] PASSED tests/client/test_session.py::test_era_neutral_properties_after_discover tests/docs_src/test_middleware.py::test_an_unhandled_method_raises_through_the_middleware [gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp [gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] [gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_an_unhandled_method_raises_through_the_middleware tests/docs_src/test_middleware.py::test_initialize_cannot_be_replaced_only_wrapped [gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] [gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] [gw3] [ 7%] PASSED tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent [gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_initialize_cannot_be_replaced_only_wrapped tests/docs_src/test_middleware.py::test_a_tool_call_over_the_cap_is_refused_while_the_earlier_calls_still_run [gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] [gw3] [ 7%] PASSED tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] [gw8] [ 7%] PASSED tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] [gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data [gw2] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] [gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers [gw3] [ 7%] PASSED tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error [gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] [gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] [gw2] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] [gw3] [ 7%] PASSED tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged [gw8] [ 7%] PASSED tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] [gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] [gw2] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling [gw3] [ 7%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error [gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] [gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_a_tool_call_over_the_cap_is_refused_while_the_earlier_calls_still_run tests/docs_src/test_middleware.py::test_other_requests_are_answered_with_the_cap_reached tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] [gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] [gw2] [ 8%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] [gw6] [ 8%] PASSED tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] [gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] [gw3] [ 8%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise [gw10] [ 8%] PASSED tests/docs_src/test_middleware.py::test_other_requests_are_answered_with_the_cap_reached tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] [gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] [gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] tests/docs_src/test_middleware.py::test_a_refused_call_is_accepted_once_a_running_call_finishes [gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] [gw2] [ 8%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer [gw3] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] [gw10] [ 8%] PASSED tests/docs_src/test_middleware.py::test_a_refused_call_is_accepted_once_a_running_call_finishes tests/docs_src/test_middleware.py::test_a_tool_call_that_raises_gives_its_slot_back tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] [gw2] [ 8%] PASSED tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer [gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] [gw9] [ 8%] PASSED tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[keep-string] [gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] [gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[avoid-string] tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] [gw2] [ 8%] PASSED tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] [gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] [gw3] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] [gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] [gw8] [ 8%] PASSED tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] [gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] [gw2] [ 8%] PASSED tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] [gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] [gw3] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] [gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] [gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] [gw2] [ 8%] PASSED tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] [gw3] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] [gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] [gw2] [ 8%] PASSED tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] [gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] [gw2] [ 8%] PASSED tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] [gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] [gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] [gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] [gw2] [ 8%] PASSED tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction [gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] [gw10] [ 8%] PASSED tests/docs_src/test_middleware.py::test_a_tool_call_that_raises_gives_its_slot_back [gw2] [ 8%] PASSED tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] [gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] [gw3] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] tests/docs_src/test_middleware.py::test_a_cancelled_tool_call_gives_its_slot_back tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] [gw8] [ 8%] PASSED tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained [gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction [gw2] [ 8%] PASSED tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] [gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] [gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] [gw2] [ 8%] PASSED tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] [gw10] [ 8%] PASSED tests/docs_src/test_middleware.py::test_a_cancelled_tool_call_gives_its_slot_back tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] [gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] tests/docs_src/test_middleware.py::test_answering_with_an_error_result_returns_it_to_the_caller_instead_of_raising tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config [gw2] [ 8%] PASSED tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config [gw6] [ 8%] PASSED tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry [gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] [gw10] [ 8%] PASSED tests/docs_src/test_middleware.py::test_answering_with_an_error_result_returns_it_to_the_caller_instead_of_raising tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction tests/docs_src/test_middleware.py::test_calls_made_one_after_another_never_reach_the_cap [gw3] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] [gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] [gw2] [ 8%] PASSED tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction [gw8] [ 8%] PASSED tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs [gw2] [ 8%] PASSED tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] [gw10] [ 9%] PASSED tests/docs_src/test_middleware.py::test_calls_made_one_after_another_never_reach_the_cap tests/docs_src/test_mrtr.py::test_first_call_returns_an_input_required_result tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction [gw2] [ 9%] PASSED tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] [gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction [gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction [gw10] [ 9%] PASSED tests/docs_src/test_mrtr.py::test_first_call_returns_an_input_required_result [gw3] [ 9%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] tests/docs_src/test_mrtr.py::test_the_auto_loop_drives_the_call_to_completion [gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one [gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency [gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency [gw10] [ 9%] PASSED tests/docs_src/test_mrtr.py::test_the_auto_loop_drives_the_call_to_completion tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] [gw3] [ 9%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] tests/docs_src/test_mrtr.py::test_the_auto_loop_without_a_callback_raises_mcp_error tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] [gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] [gw2] [ 9%] PASSED tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] [gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap [gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] [gw10] [ 9%] PASSED tests/docs_src/test_mrtr.py::test_the_auto_loop_without_a_callback_raises_mcp_error [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] tests/client/test_caching.py::test_a_zero_cap_disables_eviction tests/docs_src/test_mrtr.py::test_retry_with_input_responses_and_request_state_completes_the_call tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] [gw3] [ 9%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] [gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_zero_cap_disables_eviction [gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] [gw2] [ 9%] PASSED tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction [gw10] [ 9%] PASSED tests/docs_src/test_mrtr.py::test_retry_with_input_responses_and_request_state_completes_the_call tests/docs_src/test_mrtr.py::test_the_manual_loop_drives_the_call_to_completion tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] [gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] [gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] [gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] [gw2] [ 9%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] [gw10] [ 9%] PASSED tests/docs_src/test_mrtr.py::test_the_manual_loop_drives_the_call_to_completion [gw2] [ 9%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] [gw3] [ 9%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] [gw3] [ 9%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] tests/docs_src/test_mrtr.py::test_the_in_memory_client_negotiates_2026_07_28 [gw6] [ 9%] PASSED tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation [gw10] [ 9%] PASSED tests/docs_src/test_mrtr.py::test_the_in_memory_client_negotiates_2026_07_28 tests/docs_src/test_mrtr.py::test_a_pre_2026_session_has_nowhere_to_put_the_result [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only [gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store [gw2] [ 9%] PASSED tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store [gw2] [ 9%] PASSED tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl [gw2] [ 9%] PASSED tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately [gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] [gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] [gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] [gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] [gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap [gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] [gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] [gw3] [ 9%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm [gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] [gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] [gw2] [ 10%] PASSED tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007_client.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] [gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default [gw3] [ 10%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007_client.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] [gw2] [ 10%] PASSED tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001_client.py] tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones [gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] [gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_a_pre_2026_session_has_nowhere_to_put_the_result [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001_client.py] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial001.py] tests/docs_src/test_mrtr.py::test_fulfil_refuses_a_request_it_cannot_answer [gw2] [ 10%] PASSED tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones [gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served [gw3] [ 10%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] [gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_fulfil_refuses_a_request_it_cannot_answer [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] [gw6] [ 10%] PASSED tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial002.py] [gw2] [ 10%] PASSED tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served tests/client/test_caching.py::test_store_failures_warn_once_per_burst tests/docs_src/test_mrtr.py::test_a_prompt_returns_an_input_required_result_on_the_first_round tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial003.py] [gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial003.py] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial004.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] [gw9] [ 10%] PASSED tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[avoid-string] tests/docs/test_translations.py::test_translate_writes_pages_with_provenance_and_a_second_run_makes_no_calls [gw2] [ 10%] PASSED tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one [gw3] [ 10%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial004.py] [gw2] [ 10%] PASSED tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial001.py] [gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own [gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] [gw2] [ 10%] PASSED tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial001.py] [gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_a_prompt_returns_an_input_required_result_on_the_first_round tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial002.py] tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated tests/docs_src/test_mrtr.py::test_the_prompt_auto_loop_returns_the_final_messages [gw3] [ 10%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] [gw2] [ 10%] PASSED tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated [gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial004.py] [gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial004.py] tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction [gw2] [ 10%] PASSED tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial003.py] [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial003.py] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] [gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_the_prompt_auto_loop_returns_the_final_messages tests/docs_src/test_mrtr.py::test_a_custom_codec_round_trips_what_it_sealed tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial001.py] [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial001.py] [gw2] [ 10%] PASSED tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial008.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial002.py] [gw8] [ 10%] PASSED tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session [gw2] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial008.py] [gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_round_trips_what_it_sealed tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial001.py] [gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial002.py] [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/index/tutorial001.py] [gw2] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial001.py] tests/docs_src/test_mrtr.py::test_a_custom_codec_raises_invalid_request_state_for_any_bad_token tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out [gw3] [ 10%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/index/tutorial001.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial002.py] [gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_raises_invalid_request_state_for_any_bad_token tests/docs_src/test_mrtr.py::test_a_custom_codec_rejects_every_alias_of_a_minted_token [gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_rejects_every_alias_of_a_minted_token [gw2] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial003.py] [gw2] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial003.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001.py] [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001_client.py] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] [gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial003.py] [gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial003.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial004.py] [gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001_client.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial002.py] [gw2] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial004.py] tests/docs_src/test_oauth_clients.py::test_in_memory_storage_satisfies_the_token_storage_protocol tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial005.py] [gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial004.py] [gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_in_memory_storage_satisfies_the_token_storage_protocol [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial005.py] [gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial004.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/whats_new/tutorial001.py] tests/docs_src/test_oauth_clients.py::test_storage_round_trips_tokens_and_client_info [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/whats_new/tutorial001.py] [gw3] [ 11%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial005.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial003.py] [gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial003.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial001.py] [gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_storage_round_trips_tokens_and_client_info [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001.py] [gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial005.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial006.py] [gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial001.py] tests/docs_src/test_oauth_clients.py::test_the_provider_is_an_httpx_auth [gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_the_provider_is_an_httpx_auth tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001_client.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial002.py] [gw3] [ 11%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] [gw1] [ 11%] XFAIL tests/client/test_auth.py::test_build_metadata[simple-url] [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001_client.py] tests/docs_src/test_oauth_clients.py::test_the_metadata_defaults_are_the_authorization_code_flow tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial002.py] [gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial006.py] tests/client/test_auth.py::test_build_metadata[with-trailing-slash] [gw0] [ 11%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial002.py] [gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_the_metadata_defaults_are_the_authorization_code_flow [gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial003.py] tests/docs_src/test_oauth_clients.py::test_redirect_uris_is_required tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial003.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial007.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/logging/tutorial001.py] tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] [gw1] [ 11%] PASSED tests/client/test_auth.py::test_build_metadata[with-trailing-slash] tests/client/test_auth.py::test_build_metadata[with-path-param] [gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_redirect_uris_is_required [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial002.py] [gw1] [ 11%] PASSED tests/client/test_auth.py::test_build_metadata[with-path-param] tests/docs_src/test_oauth_clients.py::test_the_redirect_handler_receives_the_authorization_url [gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial007.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial008.py] [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial002.py] tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_no_prm_falls_back_to_root_oauth_discovery [gw3] [ 11%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] [gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/logging/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial003.py] [gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_the_redirect_handler_receives_the_authorization_url [gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial008.py] tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial003.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial009.py] tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_has_no_human_in_the_loop [gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_has_no_human_in_the_loop [gw1] [ 11%] PASSED tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_no_prm_falls_back_to_root_oauth_discovery tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_with_different_prm_and_root_urls tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial004.py] [gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial009.py] [gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial001.py] [gw1] [ 11%] PASSED tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_with_different_prm_and_root_urls tests/client/test_auth.py::TestSEP985Discovery::test_path_based_fallback_when_no_www_authenticate [gw1] [ 11%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_path_based_fallback_when_no_www_authenticate tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial002.py] [gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial002.py] tests/client/test_auth.py::TestSEP985Discovery::test_root_based_fallback_after_path_based_404 tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_builds_its_own_metadata [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial004.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial005.py] [gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial001.py] [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial005.py] [gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_builds_its_own_metadata tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial003.py] tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[ClientCredentialsOAuthProvider] [gw1] [ 11%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_root_based_fallback_after_path_based_404 tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known [gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial003.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial006.py] [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial006.py] [gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial003.py] [gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[ClientCredentialsOAuthProvider] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial004.py] tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[PrivateKeyJWTOAuthProvider] [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial001.py] [gw1] [ 11%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] [gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial003.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_anyio.py] [gw0] [ 11%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] [gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial004.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial002.py] tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] [gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[PrivateKeyJWTOAuthProvider] [gw1] [ 11%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] [gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial002.py] [gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_anyio.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial005.py] [gw6] [ 11%] PASSED tests/client/test_caching.py::test_store_failures_warn_once_per_burst tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles tests/docs_src/test_oauth_clients.py::test_the_two_remaining_keyword_arguments_have_defaults tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_asyncio.py] [gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial005.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial001.py] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata="https://api.example.com/.well-known/oauth-protected-resource"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] [gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial001.py] [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_asyncio.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial006.py] [gw10] [ 12%] PASSED tests/docs_src/test_oauth_clients.py::test_the_two_remaining_keyword_arguments_have_defaults [gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata="https://api.example.com/.well-known/oauth-protected-resource"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_trio.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial002.py] [gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial002.py] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] tests/docs_src/test_oauth_clients.py::test_the_one_more_provider_is_private_key_jwt tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial003.py] [gw10] [ 12%] PASSED tests/docs_src/test_oauth_clients.py::test_the_one_more_provider_is_private_key_jwt [gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_trio.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial005.py] [gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial006.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial007.py] [gw8] [ 12%] PASSED tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out [gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial003.py] [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial005.py] [gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial007.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial006.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/cancellation/tutorial001.py] tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere tests/docs_src/test_oauth_clients.py::test_every_oauth_error_is_an_oauth_flow_error [gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/cancellation/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/cancellation/tutorial002.py] [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial006.py] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] [gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] [gw10] [ 12%] PASSED tests/docs_src/test_oauth_clients.py::test_every_oauth_error_is_an_oauth_flow_error tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial007.py] [gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/cancellation/tutorial002.py] [gw3] [ 12%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] tests/docs_src/test_oauth_clients.py::test_not_everything_is_a_flow_error [gw0] [ 12%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] [gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial001.py] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata=https://api.example.com/.well-known/oauth-protected-resource-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] [gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata=https://api.example.com/.well-known/oauth-protected-resource-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] [gw10] [ 12%] PASSED tests/docs_src/test_oauth_clients.py::test_not_everything_is_a_flow_error tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001.py] [gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001.py] [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial007.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/testing/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial002.py] tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/testing/tutorial001.py] [gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001_client.py] [gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001_client.py] [gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] tests/docs_src/test_opentelemetry.py::test_a_plain_server_is_traced_with_no_extra_code tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial003.py] [gw3] [ 12%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope="admin:write resource:read", error="insufficient_scope"-scope-admin:write resource:read] [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial002.py] [gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial002.py] tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits [gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope="admin:write resource:read", error="insufficient_scope"-scope-admin:write resource:read] [gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial003.py] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", resource_metadata="https://api.example.com/.well-known/oauth-protected-resource", error="insufficient_scope"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial003.py] [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial002.py] [gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", resource_metadata="https://api.example.com/.well-known/oauth-protected-resource", error="insufficient_scope"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial003.py] [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial003.py] [gw0] [ 12%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial004.py] [gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial003.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial004.py] [gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial004.py] [gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial004.py] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="resource:read resource:write user_profile"-scope-resource:read resource:write user_profile] [gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial004.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial005.py] [gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="resource:read resource:write user_profile"-scope-resource:read resource:write user_profile] [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial004.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial005.py] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata="https://api.example.com/auth/metadata?version=1"-resource_metadata-https://api.example.com/auth/metadata?version=1] [gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial005.py] [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial005.py] [gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata="https://api.example.com/auth/metadata?version=1"-resource_metadata-https://api.example.com/auth/metadata?version=1] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial005.py] [gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial005.py] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial001.py] [gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial006.py] [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial001.py] [gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial006.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial007.py] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] [gw8] [ 12%] PASSED tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere [gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial002.py] [gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] [gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial007.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial002.py] [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial002.py] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] [gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial003.py] tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error [gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial003.py] [gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial001.py] [gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial002.py] [gw0] [ 13%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] [gw6] [ 13%] PASSED tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", scope="read write"-resource_metadata-no resource_metadata parameter] [gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial004.py] [gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial004.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial005.py] [gw1] [ 13%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", scope="read write"-resource_metadata-no resource_metadata parameter] [gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial001.py] tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write [gw6] [ 13%] PASSED tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial003.py] [gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial003.py] tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation [gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial005.py] [gw1] [ 13%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial004.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial006.py] [gw6] [ 13%] PASSED tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] [gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial002.py] [gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial004.py] [gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial006.py] tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial001.py] [gw1] [ 13%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial007.py] [gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial007.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial003.py] tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] [gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] [gw6] [ 13%] PASSED tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry [gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial003.py] [gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial008.py] tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] [gw6] [ 13%] PASSED tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry [gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial004.py] tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms [gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial008.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial001.py] [gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] [gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial004.py] tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] [gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] [gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial002.py] [gw6] [ 13%] PASSED tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] [gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial003.py] [gw0] [ 13%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] [gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial003.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial005.py] [gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial002.py] [gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial004.py] [gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial005.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial003.py] tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries [gw6] [ 13%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] [gw0] [ 13%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries [gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial004.py] tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] [gw6] [ 13%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial001.py] tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted [gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial003.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial004.py] [gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial005.py] [gw8] [ 13%] PASSED tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error [gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial001.py] tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] [gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial005.py] [gw0] [ 13%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial002.py] [gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] [gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial004.py] tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] [gw6] [ 13%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial001.py] tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial005.py] tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested [gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial001.py] [gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial002.py] [gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial005.py] tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] [gw0] [ 13%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion [gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises [gw6] [ 13%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/opentelemetry/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/whats_new/tutorial001.py] [gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/whats_new/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] [gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] [gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] [gw0] [ 13%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] [gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/opentelemetry/tutorial001.py] [gw6] [ 14%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] tests/docs_src/test_shape.py::test_every_example_is_included_by_a_page tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] [gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] [gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion tests/client/test_client.py::test_client_is_initialized tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial001.py] [gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] [gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports [gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion [gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion [gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial001.py] tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] [gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial002.py] tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided [gw15] [ 14%] PASSED tests/docs_src/test_shape.py::test_every_example_is_included_by_a_page [gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial003.py] [gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial002.py] tests/docs_src/test_shape.py::test_every_included_path_exists [gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided [gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial003.py] tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata [gw6] [ 14%] PASSED tests/client/test_client.py::test_client_is_initialized [gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial001.py] tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize [gw9] [ 14%] PASSED tests/docs/test_translations.py::test_translate_writes_pages_with_provenance_and_a_second_run_makes_no_calls tests/client/test_client.py::test_client_exposes_negotiated_protocol_version [gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata [gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial001.py] [gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize [gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial001.py] tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error tests/docs/test_translations.py::test_docs_translate_model_overrides_the_registry_model_for_the_run tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial002.py] tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url [gw15] [ 14%] PASSED tests/docs_src/test_shape.py::test_every_included_path_exists tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial002.py] tests/docs_src/test_structured_output.py::test_scalar_return_is_wrapped [gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial002.py] [gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url [gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url [gw6] [ 14%] PASSED tests/client/test_client.py::test_client_exposes_negotiated_protocol_version tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial001.py] tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret tests/client/test_client.py::test_client_with_simple_server [gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial003.py] [gw8] [ 14%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested [gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url [gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial001.py] [gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing [gw6] [ 14%] PASSED tests/client/test_client.py::test_client_with_simple_server [gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial003.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial004.py] tests/client/test_client.py::test_client_send_ping tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error [gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm [gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error [gw4] [ 14%] PASSED tests/client/test_client_caching.py::test_a_listing_served_from_a_shared_store_rebuilds_output_schemas [gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial004.py] tests/client/test_client_caching.py::test_validation_from_a_served_listing_rejects_missing_structured_content tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial002.py] tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial001.py] [gw6] [ 14%] PASSED tests/client/test_client.py::test_client_send_ping [gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm tests/client/test_client.py::test_client_list_tools tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request [gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial002.py] [gw4] [ 14%] PASSED tests/client/test_client_caching.py::test_validation_from_a_served_listing_rejects_missing_structured_content [gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial001.py] [gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected tests/client/test_client_caching.py::test_a_cache_hit_listing_still_mirrors_x_mcp_headers_on_tools_call [gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial003.py] [gw6] [ 14%] PASSED tests/client/test_client.py::test_client_list_tools [gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial002.py] tests/client/test_client.py::test_client_call_tool [gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial003.py] [gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial002.py] tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected [gw4] [ 14%] PASSED tests/client/test_client_caching.py::test_a_cache_hit_listing_still_mirrors_x_mcp_headers_on_tools_call [gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial003.py] tests/client/test_client_caching.py::test_a_shared_store_hit_prunes_a_header_map_the_writers_filter_dropped tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports [gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial004.py] [gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial003.py] [gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial004.py] tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation [gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial004.py] [gw0] [ 14%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation tests/examples/test_stories.py::test_story[prompts-server-http-asgi-modern] tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial005.py] [gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial004.py] [gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial005.py] [gw0] [ 14%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial006.py] [gw12] [ 14%] PASSED tests/docs_src/test_elicitation.py::test_resolver_asks_only_when_the_folder_is_not_empty [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial002.py] [gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial006.py] [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization [gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_shared_store_hit_prunes_a_header_map_the_writers_filter_dropped tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing tests/client/test_client_caching.py::test_a_tools_list_changed_notification_makes_the_next_list_refetch [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial002.py] tests/docs_src/test_elicitation.py::test_the_resolved_parameter_is_hidden_from_the_tool_schema [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial003.py] [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking [gw12] [ 15%] PASSED tests/docs_src/test_elicitation.py::test_the_resolved_parameter_is_hidden_from_the_tool_schema [gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_tools_list_changed_notification_makes_the_next_list_refetch tests/client/test_auth.py::TestOAuthContext::test_clear_tokens [gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial001.py] tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[accept-content0-kept the folder] [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial003.py] [gw8] [ 15%] PASSED tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url tests/client/test_client_caching.py::test_a_resource_updated_notification_evicts_that_uris_read_entry tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial002.py] [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthContext::test_clear_tokens tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial004.py] [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial004.py] [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial001.py] [gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial002.py] [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial001.py] [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial003.py] tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm [gw1] [ 15%] PASSED tests/examples/test_stories.py::test_story[prompts-server-http-asgi-modern] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial002.py] [gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_resource_updated_notification_evicts_that_uris_read_entry tests/client/test_client_caching.py::test_the_modern_in_process_path_drops_the_eviction_notification [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm [gw7] [ 15%] PASSED tests/client/test_logging_callback.py::test_logging_callback tests/client/test_notification_response.py::test_non_compliant_notification_response tests/examples/test_stories.py::test_story[prompts-server-http-asgi-legacy] [gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial003.py] [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial002.py] tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path [gw12] [ 15%] PASSED tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[accept-content0-kept the folder] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003.py] [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003.py] [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial004.py] [gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_the_modern_in_process_path_drops_the_eviction_notification tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[decline-None-declined: folder not deleted] [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path [gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial004.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003_client.py] [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003_client.py] tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash [gw7] [ 15%] PASSED tests/client/test_notification_response.py::test_non_compliant_notification_response tests/client/test_client_caching.py::test_a_discover_result_never_enters_the_response_cache tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004.py] tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/real_host/tutorial001.py] [gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_discover_result_never_enters_the_response_cache [gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/real_host/tutorial001.py] tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004_client.py] tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial001.py] [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004_client.py] [gw8] [ 15%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions [gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5] [gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial001.py] tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial005.py] [gw9] [ 15%] PASSED tests/docs/test_translations.py::test_docs_translate_model_overrides_the_registry_model_for_the_run [gw12] [ 15%] PASSED tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[decline-None-declined: folder not deleted] tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[cancel-None-cancelled: folder not deleted] [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial005.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006.py] tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5.0] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial002.py] [gw8] [ 15%] PASSED tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id tests/docs/test_translations.py::test_translate_pages_retranslates_the_named_pages_from_scratch_even_when_a_translation_exists tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success [gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5.0] [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006.py] [gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial003.py] tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006_client.py] [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm [gw1] [ 15%] PASSED tests/examples/test_stories.py::test_story[prompts-server-http-asgi-legacy] tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006_client.py] [gw8] [ 15%] PASSED tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds tests/examples/test_stories.py::test_story[prompts-server_lowlevel-in-memory-modern] [gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial003.py] tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce [gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5] [gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial001.py] [gw12] [ 15%] PASSED tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[cancel-None-cancelled: folder not deleted] tests/docs_src/test_tools.py::test_call_returns_text_and_structured_content [gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007.py] tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5.0] [gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5.0] tests/interaction/auth/test_authorize_token.py::test_a_mismatched_iss_on_the_callback_aborts_the_flow [gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial002.py] tests/client/test_client_caching.py::test_each_notification_evicts_exactly_its_entries_end_to_end [gw1] [ 16%] PASSED tests/examples/test_stories.py::test_story[prompts-server_lowlevel-in-memory-modern] tests/examples/test_stories.py::test_story[prompts-server_lowlevel-in-memory-legacy] tests/docs_src/test_extensions.py::test_using_an_extension_advertises_its_capability [gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial002.py] [gw12] [ 16%] PASSED tests/docs_src/test_extensions.py::test_using_an_extension_advertises_its_capability [gw7] [ 16%] PASSED tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial003.py] tests/docs_src/test_extensions.py::test_a_prefixless_identifier_fails_at_class_definition tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error [gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial003.py] [gw12] [ 16%] PASSED tests/docs_src/test_extensions.py::test_a_prefixless_identifier_fails_at_class_definition tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial001.py] [gw1] [ 16%] PASSED tests/examples/test_stories.py::test_story[prompts-server_lowlevel-in-memory-legacy] tests/docs_src/test_extensions.py::test_extension_settings_advertised_under_capabilities [gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial001.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial002.py] [gw7] [ 16%] PASSED tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error [gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial001.py] tests/examples/test_stories.py::test_story[prompts-server_lowlevel-http-asgi-modern] [gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial001.py] tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial002.py] [gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial002.py] tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial003.py] [gw7] [ 16%] PASSED tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang [gw12] [ 16%] PASSED tests/docs_src/test_extensions.py::test_extension_settings_advertised_under_capabilities tests/docs_src/test_extensions.py::test_contributed_tool_is_listed_and_callable [gw4] [ 16%] PASSED tests/client/test_client_caching.py::test_each_notification_evicts_exactly_its_entries_end_to_end tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error [gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial003.py] tests/examples/test_story_shape.py::test_main_constructs_client_inline[prompts] tests/client/test_client_caching.py::test_private_entries_never_cross_partitions_between_clients_sharing_a_store [gw8] [ 16%] PASSED tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce tests/client/test_subscriptions.py::test_graceful_server_close_ends_the_loop_cleanly [gw11] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[prompts] tests/examples/test_story_shape.py::test_main_constructs_client_inline[reconnect] [gw4] [ 16%] PASSED tests/client/test_client_caching.py::test_private_entries_never_cross_partitions_between_clients_sharing_a_store tests/client/test_client_caching.py::test_a_server_stamped_public_entry_does_not_cross_partitions_by_default [gw8] [ 16%] PASSED tests/client/test_subscriptions.py::test_graceful_server_close_ends_the_loop_cleanly [gw11] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[reconnect] tests/client/test_subscriptions.py::test_abrupt_stream_end_raises_subscription_lost [gw12] [ 16%] PASSED tests/docs_src/test_extensions.py::test_contributed_tool_is_listed_and_callable tests/examples/test_story_shape.py::test_main_constructs_client_inline[refund_desk] tests/docs_src/test_extensions.py::test_declaring_client_gets_the_vendor_method_result [gw8] [ 16%] PASSED tests/client/test_subscriptions.py::test_abrupt_stream_end_raises_subscription_lost [gw11] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[refund_desk] [gw1] [ 16%] PASSED tests/examples/test_stories.py::test_story[prompts-server_lowlevel-http-asgi-modern] [gw4] [ 16%] PASSED tests/client/test_client_caching.py::test_a_server_stamped_public_entry_does_not_cross_partitions_by_default tests/examples/test_story_shape.py::test_main_constructs_client_inline[resources] tests/client/test_client_caching.py::test_share_public_serves_a_server_stamped_public_entry_across_partitions tests/client/test_subscriptions.py::test_listen_on_a_legacy_connection_raises_the_typed_steer [gw2] [ 16%] PASSED tests/interaction/auth/test_authorize_token.py::test_a_mismatched_iss_on_the_callback_aborts_the_flow tests/interaction/auth/test_authorize_token.py::test_the_authorization_code_token_request_carries_grant_type_code_redirect_and_resource tests/examples/test_stories.py::test_story[prompts-server_lowlevel-http-asgi-legacy] [gw12] [ 16%] PASSED tests/docs_src/test_extensions.py::test_declaring_client_gets_the_vendor_method_result tests/docs_src/test_extensions.py::test_vendor_method_rejects_a_non_declaring_client_with_32021 [gw11] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[resources] tests/examples/test_story_shape.py::test_main_constructs_client_inline[roots] [gw8] [ 16%] PASSED tests/client/test_subscriptions.py::test_listen_on_a_legacy_connection_raises_the_typed_steer [gw4] [ 16%] PASSED tests/client/test_client_caching.py::test_share_public_serves_a_server_stamped_public_entry_across_partitions [gw11] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[roots] tests/client/test_client_caching.py::test_same_partition_clients_share_read_entries_through_the_store tests/examples/test_story_shape.py::test_main_constructs_client_inline[sampling] [gw12] [ 16%] PASSED tests/docs_src/test_extensions.py::test_vendor_method_rejects_a_non_declaring_client_with_32021 tests/client/test_subscriptions.py::test_server_rejection_raises_from_enter_not_from_iteration [gw8] [ 16%] PASSED tests/client/test_subscriptions.py::test_server_rejection_raises_from_enter_not_from_iteration tests/docs_src/test_extensions.py::test_version_pinned_method_is_not_found_on_a_legacy_connection [gw11] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[sampling] tests/client/test_subscriptions.py::test_immediate_result_without_ack_opens_already_closed [gw7] [ 16%] PASSED tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error tests/examples/test_story_shape.py::test_main_constructs_client_inline[schema_validators] [gw12] [ 16%] PASSED tests/docs_src/test_extensions.py::test_version_pinned_method_is_not_found_on_a_legacy_connection [gw4] [ 16%] PASSED tests/client/test_client_caching.py::test_same_partition_clients_share_read_entries_through_the_store tests/client/test_client_caching.py::test_mutating_returned_results_never_corrupts_the_cached_entry [gw8] [ 16%] PASSED tests/client/test_subscriptions.py::test_immediate_result_without_ack_opens_already_closed tests/client/test_subscriptions.py::test_server_sent_cancelled_for_the_listen_id_raises_subscription_lost tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id [gw11] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[schema_validators] tests/docs_src/test_extensions.py::test_interceptor_observes_the_call_and_passes_the_result_through tests/examples/test_story_shape.py::test_main_constructs_client_inline[serve_one] [gw4] [ 16%] PASSED tests/client/test_client_caching.py::test_mutating_returned_results_never_corrupts_the_cached_entry [gw8] [ 16%] PASSED tests/client/test_subscriptions.py::test_server_sent_cancelled_for_the_listen_id_raises_subscription_lost tests/client/test_client_caching.py::test_a_cache_hit_still_yields_to_the_event_loop tests/client/test_subscriptions.py::test_exiting_the_context_frees_the_server_slot [gw8] [ 16%] PASSED tests/client/test_subscriptions.py::test_exiting_the_context_frees_the_server_slot [gw4] [ 16%] PASSED tests/client/test_client_caching.py::test_a_cache_hit_still_yields_to_the_event_loop [gw7] [ 16%] PASSED tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id [gw11] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[serve_one] tests/client/test_subscriptions.py::test_concurrent_subscriptions_demux_independently tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result tests/examples/test_story_shape.py::test_main_constructs_client_inline[sse_polling] tests/client/test_client_caching.py::test_a_legacy_peer_injecting_cache_hints_caches_nothing [gw8] [ 16%] PASSED tests/client/test_subscriptions.py::test_concurrent_subscriptions_demux_independently [gw11] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[sse_polling] [gw1] [ 16%] PASSED tests/examples/test_stories.py::test_story[prompts-server_lowlevel-http-asgi-legacy] tests/examples/test_stories.py::test_story[resources-server-in-memory-modern] [gw2] [ 16%] PASSED tests/interaction/auth/test_authorize_token.py::test_the_authorization_code_token_request_carries_grant_type_code_redirect_and_resource [gw4] [ 16%] PASSED tests/client/test_client_caching.py::test_a_legacy_peer_injecting_cache_hints_caches_nothing tests/client/test_client_caching.py::test_a_verb_cancelled_mid_write_leaves_no_stale_arm_pair tests/client/test_subscriptions.py::test_change_notifications_still_reach_message_handler tests/interaction/auth/test_authorize_token.py::test_every_mcp_request_after_auth_carries_the_bearer_header_and_never_a_query_token tests/examples/test_story_shape.py::test_main_constructs_client_inline[standalone_get] [gw8] [ 16%] PASSED tests/client/test_subscriptions.py::test_change_notifications_still_reach_message_handler tests/client/test_subscriptions.py::test_enter_times_out_when_the_ack_never_arrives [gw7] [ 16%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result [gw4] [ 16%] PASSED tests/client/test_client_caching.py::test_a_verb_cancelled_mid_write_leaves_no_stale_arm_pair tests/client/test_client_caching.py::test_an_eviction_landing_mid_fetch_discards_that_fetchs_write tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json [gw11] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[standalone_get] tests/examples/test_story_shape.py::test_main_constructs_client_inline[starlette_mount] [gw1] [ 16%] PASSED tests/examples/test_stories.py::test_story[resources-server-in-memory-modern] [gw11] [ 16%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[starlette_mount] [gw14] [ 16%] PASSED tests/docs_src/test_cancellation.py::test_a_def_tool_nobody_cancels_indexes_every_book_and_cleans_up [gw12] [ 17%] PASSED tests/docs_src/test_extensions.py::test_interceptor_observes_the_call_and_passes_the_result_through [gw4] [ 17%] PASSED tests/client/test_client_caching.py::test_an_eviction_landing_mid_fetch_discards_that_fetchs_write tests/client/test_client_caching.py::test_read_resource_bypass_neither_serves_nor_disturbs_a_warm_entry tests/docs_src/test_cancellation.py::test_a_def_tool_that_never_checks_runs_to_the_end tests/examples/test_stories.py::test_story[resources-server-in-memory-legacy] [gw7] [ 17%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json tests/docs_src/test_extensions.py::test_declaring_client_receives_the_redeemed_result_not_the_claimed_shape tests/examples/test_story_shape.py::test_main_constructs_client_inline[stateless_legacy] tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel [gw4] [ 17%] PASSED tests/client/test_client_caching.py::test_read_resource_bypass_neither_serves_nor_disturbs_a_warm_entry [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[stateless_legacy] [gw8] [ 17%] PASSED tests/client/test_subscriptions.py::test_enter_times_out_when_the_ack_never_arrives tests/client/test_client_caching.py::test_read_resource_refresh_refetches_and_restores [gw2] [ 17%] PASSED tests/interaction/auth/test_authorize_token.py::test_every_mcp_request_after_auth_carries_the_bearer_header_and_never_a_query_token tests/examples/test_story_shape.py::test_main_constructs_client_inline[stickynotes] tests/client/test_subscriptions.py::test_an_open_stream_outlives_the_session_read_timeout [gw4] [ 17%] PASSED tests/client/test_client_caching.py::test_read_resource_refresh_refetches_and_restores tests/interaction/auth/test_authorize_token.py::test_a_client_with_a_secret_authenticates_the_token_request_with_http_basic [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[stickynotes] [gw7] [ 17%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel tests/client/test_client_caching.py::test_a_closed_client_raises_on_every_cacheable_verb_instead_of_serving_the_cache [gw1] [ 17%] PASSED tests/examples/test_stories.py::test_story[resources-server-in-memory-legacy] [gw12] [ 17%] PASSED tests/docs_src/test_extensions.py::test_declaring_client_receives_the_redeemed_result_not_the_claimed_shape tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive tests/examples/test_stories.py::test_story[resources-server-http-asgi-modern] [gw4] [ 17%] PASSED tests/client/test_client_caching.py::test_a_closed_client_raises_on_every_cacheable_verb_instead_of_serving_the_cache tests/docs_src/test_extensions.py::test_a_client_without_the_extension_is_refused_by_the_gate tests/examples/test_story_shape.py::test_main_constructs_client_inline[streaming] tests/client/test_client_extensions.py::test_mapping_extensions_get_the_migration_error [gw7] [ 17%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive [gw12] [ 17%] PASSED tests/docs_src/test_extensions.py::test_a_client_without_the_extension_is_refused_by_the_gate [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[streaming] tests/docs_src/test_extensions.py::test_session_tier_allow_claimed_returns_the_raw_shape tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed [gw4] [ 17%] PASSED tests/client/test_client_extensions.py::test_mapping_extensions_get_the_migration_error tests/examples/test_story_shape.py::test_main_constructs_client_inline[subscriptions] tests/client/test_client_extensions.py::test_one_extension_claiming_a_tag_twice_reads_as_one_owner [gw12] [ 17%] PASSED tests/docs_src/test_extensions.py::test_session_tier_allow_claimed_returns_the_raw_shape [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[subscriptions] [gw7] [ 17%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed tests/docs_src/test_extensions.py::test_name_param_request_round_trips_with_no_client_registration [gw4] [ 17%] PASSED tests/client/test_client_extensions.py::test_one_extension_claiming_a_tag_twice_reads_as_one_owner tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required [gw2] [ 17%] PASSED tests/interaction/auth/test_authorize_token.py::test_a_client_with_a_secret_authenticates_the_token_request_with_http_basic tests/examples/test_story_shape.py::test_main_constructs_client_inline[tools] tests/interaction/auth/test_authorize_token.py::test_the_registered_auth_method_is_used_regardless_of_as_metadata_advertised_methods [gw12] [ 17%] PASSED tests/docs_src/test_extensions.py::test_name_param_request_round_trips_with_no_client_registration [gw9] [ 17%] PASSED tests/docs/test_translations.py::test_translate_pages_retranslates_the_named_pages_from_scratch_even_when_a_translation_exists tests/client/test_client_extensions.py::test_bare_extension_instance_is_rejected_with_the_fix_named [gw1] [ 17%] PASSED tests/examples/test_stories.py::test_story[resources-server-http-asgi-modern] tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive [gw7] [ 17%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required tests/docs/test_translations.py::test_outdated_page_retranslates_the_changed_section_and_carries_the_rest_forward [gw4] [ 17%] PASSED tests/client/test_client_extensions.py::test_bare_extension_instance_is_rejected_with_the_fix_named tests/examples/test_stories.py::test_story[resources-server-http-asgi-legacy] tests/client/test_client_extensions.py::test_invalid_per_instance_identifier_raises_the_validators_error tests/client/test_output_schema_validation.py::test_tool_not_listed_warning [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[tools] [gw14] [ 17%] PASSED tests/docs_src/test_cancellation.py::test_a_def_tool_that_never_checks_runs_to_the_end tests/docs_src/test_cancellation.py::test_prompt_and_resource_functions_are_cancelled_like_tools tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[apps] [gw12] [ 17%] PASSED tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive tests/docs_src/test_first_steps.py::test_call_the_tool [gw4] [ 17%] PASSED tests/client/test_client_extensions.py::test_invalid_per_instance_identifier_raises_the_validators_error [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[apps] tests/client/test_client_extensions.py::test_duplicate_extension_identifiers_are_rejected_naming_the_identifier tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[bearer_auth] [gw4] [ 17%] PASSED tests/client/test_client_extensions.py::test_duplicate_extension_identifiers_are_rejected_naming_the_identifier tests/client/test_client_extensions.py::test_conflicting_claims_across_extensions_name_both_owners [gw12] [ 17%] PASSED tests/docs_src/test_first_steps.py::test_call_the_tool tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[bearer_auth] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[custom_methods] [gw2] [ 17%] PASSED tests/interaction/auth/test_authorize_token.py::test_the_registered_auth_method_is_used_regardless_of_as_metadata_advertised_methods [gw12] [ 17%] PASSED tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource tests/docs_src/test_first_steps.py::test_read_the_resource_template [gw4] [ 17%] PASSED tests/client/test_client_extensions.py::test_conflicting_claims_across_extensions_name_both_owners tests/interaction/auth/test_authorize_token.py::test_scope_is_selected_from_the_www_authenticate_challenge_over_prm_metadata tests/client/test_client_extensions.py::test_conflicting_notification_bindings_name_both_owners [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[custom_methods] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[dual_era] [gw12] [ 17%] PASSED tests/docs_src/test_first_steps.py::test_read_the_resource_template tests/docs_src/test_first_steps.py::test_get_the_prompt [gw8] [ 17%] PASSED tests/client/test_subscriptions.py::test_an_open_stream_outlives_the_session_read_timeout [gw4] [ 17%] PASSED tests/client/test_client_extensions.py::test_conflicting_notification_bindings_name_both_owners tests/client/test_client_extensions.py::test_declarations_are_read_exactly_once_at_construction [gw7] [ 17%] PASSED tests/client/test_output_schema_validation.py::test_tool_not_listed_warning [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[dual_era] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[error_handling] tests/client/test_subscriptions.py::test_a_duplicate_ack_does_not_overwrite_the_honored_filter [gw12] [ 17%] PASSED tests/docs_src/test_first_steps.py::test_get_the_prompt [gw1] [ 17%] PASSED tests/examples/test_stories.py::test_story[resources-server-http-asgi-legacy] tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected tests/examples/test_stories.py::test_story[resources-server_lowlevel-in-memory-modern] [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[error_handling] [gw12] [ 17%] PASSED tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[extensions] tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[extensions] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[identity_assertion] [gw1] [ 17%] PASSED tests/examples/test_stories.py::test_story[resources-server_lowlevel-in-memory-modern] [gw2] [ 17%] PASSED tests/interaction/auth/test_authorize_token.py::test_scope_is_selected_from_the_www_authenticate_challenge_over_prm_metadata [gw8] [ 17%] PASSED tests/client/test_subscriptions.py::test_a_duplicate_ack_does_not_overwrite_the_honored_filter tests/client/test_subscriptions.py::test_a_non_event_frame_with_the_subscription_id_is_teed_not_delivered [gw12] [ 17%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads tests/examples/test_stories.py::test_story[resources-server_lowlevel-in-memory-legacy] [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[identity_assertion] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[json_response] tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line tests/interaction/auth/test_authorize_token.py::test_pkce_is_still_sent_when_as_metadata_omits_code_challenge_methods_supported [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[json_response] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[legacy_elicitation] [gw4] [ 17%] PASSED tests/client/test_client_extensions.py::test_declarations_are_read_exactly_once_at_construction [gw11] [ 17%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[legacy_elicitation] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[legacy_routing] [gw8] [ 17%] PASSED tests/client/test_subscriptions.py::test_a_non_event_frame_with_the_subscription_id_is_teed_not_delivered tests/client/test_client_extensions.py::test_settings_dict_is_held_by_reference_not_copied [gw1] [ 17%] PASSED tests/examples/test_stories.py::test_story[resources-server_lowlevel-in-memory-legacy] [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[legacy_routing] tests/examples/test_stories.py::test_story[resources-server_lowlevel-http-asgi-modern] [gw4] [ 18%] PASSED tests/client/test_client_extensions.py::test_settings_dict_is_held_by_reference_not_copied tests/client/test_subscriptions.py::test_session_teardown_unblocks_a_sibling_consumer_with_subscription_lost tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[lifespan] [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[lifespan] tests/client/test_client_extensions.py::test_no_extensions_keeps_tools_call_parsing_byte_identical[none] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[middleware] [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[middleware] [gw8] [ 18%] PASSED tests/client/test_subscriptions.py::test_session_teardown_unblocks_a_sibling_consumer_with_subscription_lost [gw12] [ 18%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[mrtr] tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result [gw14] [ 18%] PASSED tests/docs_src/test_cancellation.py::test_prompt_and_resource_functions_are_cancelled_like_tools tests/client/test_subscriptions.py::test_server_cancel_before_the_ack_raises_subscription_lost_from_enter tests/docs_src/test_cancellation.py::test_two_http_options_keep_the_cancellation_from_the_handler[json_response-modern] [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[mrtr] [gw2] [ 18%] PASSED tests/interaction/auth/test_authorize_token.py::test_pkce_is_still_sent_when_as_metadata_omits_code_challenge_methods_supported [gw4] [ 18%] PASSED tests/client/test_client_extensions.py::test_no_extensions_keeps_tools_call_parsing_byte_identical[none] [gw12] [ 18%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[oauth] tests/client/test_client_extensions.py::test_no_extensions_keeps_tools_call_parsing_byte_identical[empty] tests/interaction/auth/test_authorize_token.py::test_an_authorize_error_on_the_callback_aborts_the_flow_before_the_token_request [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[oauth] [gw12] [ 18%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function [gw8] [ 18%] PASSED tests/client/test_subscriptions.py::test_server_cancel_before_the_ack_raises_subscription_lost_from_enter tests/client/test_subscriptions.py::test_listen_on_an_exited_session_raises_and_leaks_no_route tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[oauth_client_credentials] [gw1] [ 18%] PASSED tests/examples/test_stories.py::test_story[resources-server_lowlevel-http-asgi-modern] tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail [gw5] [ 18%] PASSED tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client tests/examples/test_stories.py::test_story[resources-server_lowlevel-http-asgi-legacy] [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[oauth_client_credentials] [gw9] [ 18%] PASSED tests/docs/test_translations.py::test_outdated_page_retranslates_the_changed_section_and_carries_the_rest_forward [gw8] [ 18%] PASSED tests/client/test_subscriptions.py::test_listen_on_an_exited_session_raises_and_leaks_no_route [gw12] [ 18%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[pagination] tests/docs/test_translations.py::test_banned_rendering_is_a_finding_in_a_retranslated_section_but_not_in_a_carried_one tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path tests/client/test_subscriptions.py::test_listen_on_a_never_entered_session_raises_runtime_error [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[pagination] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[parallel_calls] [gw8] [ 18%] PASSED tests/client/test_subscriptions.py::test_listen_on_a_never_entered_session_raises_runtime_error [gw7] [ 18%] PASSED tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected [gw5] [ 18%] PASSED tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client tests/client/test_session_group.py::test_client_session_group_init [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[parallel_calls] tests/client/test_subscriptions.py::test_a_retained_handle_after_exit_does_not_serve_stale_events tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing [gw5] [ 18%] PASSED tests/client/test_session_group.py::test_client_session_group_init tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[prompts] tests/client/test_session_group.py::test_client_session_group_component_properties [gw5] [ 18%] PASSED tests/client/test_session_group.py::test_client_session_group_component_properties tests/client/test_session_group.py::test_client_session_group_call_tool [gw7] [ 18%] PASSED tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing [gw13] [ 18%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[prompts] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[reconnect] [gw5] [ 18%] PASSED tests/client/test_session_group.py::test_client_session_group_call_tool tests/client/test_session_group.py::test_client_session_group_call_tool_forwards_allow_input_required tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize [gw12] [ 18%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically [gw7] [ 18%] PASSED tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize [gw5] [ 18%] PASSED tests/client/test_session_group.py::test_client_session_group_call_tool_forwards_allow_input_required [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[reconnect] tests/client/test_session_group.py::test_client_session_group_connect_to_server [gw14] [ 18%] PASSED tests/docs_src/test_cancellation.py::test_two_http_options_keep_the_cancellation_from_the_handler[json_response-modern] tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[refund_desk] tests/docs_src/test_cancellation.py::test_two_http_options_keep_the_cancellation_from_the_handler[stateless_http-legacy] [gw5] [ 18%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server [gw1] [ 18%] PASSED tests/examples/test_stories.py::test_story[resources-server_lowlevel-http-asgi-legacy] [gw13] [ 18%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] tests/client/test_session_group.py::test_client_session_group_connect_to_server_with_name_hook tests/examples/test_stories.py::test_story[lifespan-server-in-memory-modern] [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[refund_desk] [gw7] [ 18%] PASSED tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize [gw5] [ 18%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server_with_name_hook tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[resources] [gw7] [ 18%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] tests/client/test_session_group.py::test_client_session_group_disconnect_from_server [gw2] [ 18%] PASSED tests/interaction/auth/test_authorize_token.py::test_an_authorize_error_on_the_callback_aborts_the_flow_before_the_token_request [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[resources] tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] tests/interaction/auth/test_bearer.py::test_a_request_with_no_authorization_header_is_challenged_with_resource_metadata [gw5] [ 18%] PASSED tests/client/test_session_group.py::test_client_session_group_disconnect_from_server tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[roots] [gw7] [ 18%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] tests/client/test_session_group.py::test_client_session_group_connect_to_server_duplicate_tool_raises_error [gw2] [ 18%] PASSED tests/interaction/auth/test_bearer.py::test_a_request_with_no_authorization_header_is_challenged_with_resource_metadata [gw8] [ 18%] PASSED tests/client/test_subscriptions.py::test_a_retained_handle_after_exit_does_not_serve_stale_events [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[roots] tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] [gw13] [ 18%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] tests/client/test_subscriptions.py::test_a_stray_ack_outside_the_driver_namespace_still_reaches_message_handler tests/interaction/auth/test_bearer.py::test_an_unrecognized_bearer_token_is_answered_401_invalid_token tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] [gw5] [ 18%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server_duplicate_tool_raises_error tests/client/test_session_group.py::test_client_session_group_disconnect_non_existent_server [gw7] [ 18%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[sampling] tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] [gw5] [ 18%] PASSED tests/client/test_session_group.py::test_client_session_group_disconnect_non_existent_server [gw11] [ 18%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[sampling] tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance0-stdio-mcp.client.session_group.mcp.stdio_client] [gw2] [ 18%] PASSED tests/interaction/auth/test_bearer.py::test_an_unrecognized_bearer_token_is_answered_401_invalid_token tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[schema_validators] [gw8] [ 18%] PASSED tests/client/test_subscriptions.py::test_a_stray_ack_outside_the_driver_namespace_still_reaches_message_handler [gw12] [ 18%] PASSED tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params [gw5] [ 18%] PASSED tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance0-stdio-mcp.client.session_group.mcp.stdio_client] tests/client/test_subscriptions.py::test_a_bare_string_for_resource_subscriptions_is_rejected [gw7] [ 19%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts tests/interaction/auth/test_bearer.py::test_an_expired_token_is_answered_401 [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[schema_validators] [gw13] [ 19%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] [gw2] [ 19%] PASSED tests/interaction/auth/test_bearer.py::test_an_expired_token_is_answered_401 tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[serve_one] tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance1-sse-mcp.client.session_group.sse_client] tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent [gw8] [ 19%] PASSED tests/client/test_subscriptions.py::test_a_bare_string_for_resource_subscriptions_is_rejected [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[serve_one] [gw12] [ 19%] PASSED tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params [gw7] [ 19%] PASSED tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts tests/interaction/auth/test_bearer.py::test_a_token_missing_a_required_scope_is_answered_403_insufficient_scope_without_a_scope_param tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize tests/client/test_subscriptions.py::test_the_route_admits_only_honored_events_and_only_while_live tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[sse_polling] [gw13] [ 19%] PASSED tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent [gw5] [ 19%] PASSED tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance1-sse-mcp.client.session_group.sse_client] [gw2] [ 19%] PASSED tests/interaction/auth/test_bearer.py::test_a_token_missing_a_required_scope_is_answered_403_insufficient_scope_without_a_scope_param [gw7] [ 19%] PASSED tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize [gw8] [ 19%] PASSED tests/client/test_subscriptions.py::test_the_route_admits_only_honored_events_and_only_while_live tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance2-streamablehttp-mcp.client.session_group.streamable_http_client] [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[sse_polling] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[standalone_get] tests/interaction/auth/test_bearer.py::test_a_token_not_issued_for_this_resource_is_answered_401[tok-wrong-aud] tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search tests/client/test_subscriptions.py::test_a_peer_flooding_distinct_uris_costs_the_subscription_not_client_memory [gw7] [ 19%] PASSED tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[standalone_get] [gw13] [ 19%] PASSED tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[starlette_mount] [gw8] [ 19%] PASSED tests/client/test_subscriptions.py::test_a_peer_flooding_distinct_uris_costs_the_subscription_not_client_memory tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] tests/client/test_subscriptions.py::test_a_cancelled_on_event_barrier_does_not_lose_the_event tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group [gw7] [ 19%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[starlette_mount] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[stateless_legacy] [gw13] [ 19%] PASSED tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[stateless_legacy] [gw5] [ 19%] PASSED tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance2-streamablehttp-mcp.client.session_group.streamable_http_client] tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[stickynotes] tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected [gw14] [ 19%] PASSED tests/docs_src/test_cancellation.py::test_two_http_options_keep_the_cancellation_from_the_handler[stateless_http-legacy] [gw7] [ 19%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] [gw8] [ 19%] PASSED tests/client/test_subscriptions.py::test_a_cancelled_on_event_barrier_does_not_lose_the_event tests/client/test_session_notification_bindings.py::test_duplicate_binding_method_rejected [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[stickynotes] tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] [gw5] [ 19%] PASSED tests/client/test_session_notification_bindings.py::test_duplicate_binding_method_rejected tests/docs_src/test_client.py::test_connected_properties_are_populated_inside_the_block tests/client/test_subscriptions.py::test_events_outside_the_honored_filter_are_never_delivered tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[streaming] [gw7] [ 19%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] [gw13] [ 19%] PASSED tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[streaming] [gw8] [ 19%] PASSED tests/client/test_subscriptions.py::test_events_outside_the_honored_filter_are_never_delivered [gw14] [ 19%] PASSED tests/docs_src/test_client.py::test_connected_properties_are_populated_inside_the_block tests/client/test_session_notification_bindings.py::test_bound_vendor_notifications_are_delivered_in_order [gw5] [ 19%] PASSED tests/client/test_session_notification_bindings.py::test_bound_vendor_notifications_are_delivered_in_order [gw12] [ 19%] PASSED tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[subscriptions] tests/client/test_session_notification_bindings.py::test_binding_handler_may_do_session_io_without_deadlock tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[subscriptions] tests/docs_src/test_client.py::test_a_client_is_not_reusable_after_the_block_ends [gw7] [ 19%] PASSED tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop tests/client/test_subscriptions.py::test_the_on_event_barrier_completes_before_each_event_is_returned [gw5] [ 19%] PASSED tests/client/test_session_notification_bindings.py::test_binding_handler_may_do_session_io_without_deadlock tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[tools] tests/client/test_session_notification_bindings.py::test_overflow_drops_oldest_event_with_a_warning [gw2] [ 19%] PASSED tests/interaction/auth/test_bearer.py::test_a_token_not_issued_for_this_resource_is_answered_401[tok-wrong-aud] [gw8] [ 19%] PASSED tests/client/test_subscriptions.py::test_the_on_event_barrier_completes_before_each_event_is_returned [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_client_harness_imports_within_allowlist[tools] tests/interaction/auth/test_bearer.py::test_a_token_not_issued_for_this_resource_is_answered_401[tok-no-aud] [gw12] [ 19%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[apps] [gw7] [ 19%] PASSED tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash [gw14] [ 19%] PASSED tests/docs_src/test_client.py::test_a_client_is_not_reusable_after_the_block_ends [gw13] [ 19%] PASSED tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name tests/client/test_subscriptions.py::test_client_listen_installs_the_cache_eviction_barrier_exactly_when_a_cache_exists tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[apps] tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[bearer_auth] [gw7] [ 19%] PASSED tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] [gw13] [ 19%] PASSED tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not tests/docs_src/test_client.py::test_list_tools_returns_the_full_definition [gw8] [ 19%] PASSED tests/client/test_subscriptions.py::test_client_listen_installs_the_cache_eviction_barrier_exactly_when_a_cache_exists tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[no-data] [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[bearer_auth] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[custom_methods] tests/client/test_subscriptions.py::test_the_cache_eviction_barrier_maps_events_and_contains_store_faults [gw13] [ 19%] PASSED tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not [gw7] [ 19%] PASSED tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[no-data] [gw14] [ 19%] PASSED tests/docs_src/test_client.py::test_list_tools_returns_the_full_definition tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[custom_methods] tests/docs_src/test_client.py::test_get_display_name_prefers_the_title tests/client/test_probe.py::test_handshake_unsupported_reprobes_at_most_once tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[dual_era] [gw6] [ 19%] PASSED tests/client/test_client.py::test_client_call_tool tests/client/test_client.py::test_read_resource [gw11] [ 19%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[dual_era] [gw14] [ 19%] PASSED tests/docs_src/test_client.py::test_get_display_name_prefers_the_title tests/docs_src/test_client.py::test_call_tool_result_has_three_things_to_read [gw7] [ 19%] PASSED tests/client/test_probe.py::test_handshake_unsupported_reprobes_at_most_once tests/client/test_probe.py::test_any_other_handshake_error_propagates_unchanged tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[error_handling] [gw12] [ 19%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash [gw5] [ 20%] PASSED tests/client/test_session_notification_bindings.py::test_overflow_drops_oldest_event_with_a_warning [gw9] [ 20%] PASSED tests/docs/test_translations.py::test_banned_rendering_is_a_finding_in_a_retranslated_section_but_not_in_a_carried_one [gw2] [ 20%] PASSED tests/interaction/auth/test_bearer.py::test_a_token_not_issued_for_this_resource_is_answered_401[tok-no-aud] tests/interaction/auth/test_bearer.py::test_a_token_for_another_resource_is_served_when_validate_token_resource_is_off tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial001] [gw11] [ 20%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[error_handling] [gw7] [ 20%] PASSED tests/client/test_probe.py::test_any_other_handshake_error_propagates_unchanged tests/docs/test_translations.py::test_link_dropped_in_a_carried_section_costs_no_repair_turn_and_the_stored_section_is_kept tests/client/test_session_notification_bindings.py::test_invalid_params_are_warned_and_dropped_without_reaching_handler [gw6] [ 20%] PASSED tests/client/test_client.py::test_read_resource tests/client/test_client.py::test_read_resource_error_propagates tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[httpx2-connect-error] [gw13] [ 20%] PASSED tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[extensions] [gw7] [ 20%] PASSED tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[httpx2-connect-error] [gw2] [ 20%] PASSED tests/interaction/auth/test_bearer.py::test_a_token_for_another_resource_is_served_when_validate_token_resource_is_off [gw6] [ 20%] PASSED tests/client/test_client.py::test_read_resource_error_propagates [gw11] [ 20%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[extensions] tests/interaction/auth/test_bearer.py::test_a_token_issued_for_this_resource_is_served tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[identity_assertion] tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[anyio-closed-resource] [gw8] [ 20%] PASSED tests/client/test_subscriptions.py::test_the_cache_eviction_barrier_maps_events_and_contains_store_faults tests/client/test_subscriptions.py::test_a_raw_request_id_collision_fails_the_subscription_not_the_session [gw7] [ 20%] PASSED tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[anyio-closed-resource] [gw6] [ 20%] PASSED tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path [gw2] [ 20%] PASSED tests/interaction/auth/test_bearer.py::test_a_token_issued_for_this_resource_is_served tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data0-expected0] [gw14] [ 20%] PASSED tests/docs_src/test_client.py::test_call_tool_result_has_three_things_to_read tests/docs_src/test_client.py::test_a_raising_tool_is_a_result_not_an_exception [gw13] [ 20%] PASSED tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path [gw12] [ 20%] PASSED tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial001] tests/interaction/auth/test_bearer.py::test_an_access_token_in_the_query_string_is_not_accepted tests/docs_src/test_shape.py::test_private_mcp_import_detector [gw13] [ 20%] PASSED tests/docs_src/test_shape.py::test_private_mcp_import_detector [gw11] [ 20%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[identity_assertion] tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial002] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[json_response] [gw7] [ 20%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data0-expected0] tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data1-expected1] tests/docs_src/test_shape.py::test_retired_name_detector [gw13] [ 20%] PASSED tests/docs_src/test_shape.py::test_retired_name_detector [gw2] [ 20%] PASSED tests/interaction/auth/test_bearer.py::test_an_access_token_in_the_query_string_is_not_accepted tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] [gw7] [ 20%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data1-expected1] [gw11] [ 20%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[json_response] tests/interaction/auth/test_discovery.py::test_prm_discovery_uses_the_resource_metadata_url_from_www_authenticate tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[None-None] [gw13] [ 20%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[legacy_elicitation] [gw14] [ 20%] PASSED tests/docs_src/test_client.py::test_a_raising_tool_is_a_result_not_an_exception [gw7] [ 20%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[None-None] [gw5] [ 20%] PASSED tests/client/test_session_notification_bindings.py::test_invalid_params_are_warned_and_dropped_without_reaching_handler tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] [gw12] [ 20%] PASSED tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial002] tests/docs_src/test_client.py::test_an_unknown_tool_name_is_a_result_not_an_exception tests/docs_src/test_header_parameters.py::test_a_call_whose_header_and_body_disagree_is_rejected [gw13] [ 20%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] tests/client/test_session_notification_bindings.py::test_unbound_vendor_notification_keeps_the_debug_drop tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data3-None] [gw7] [ 20%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data3-None] tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[not a dict-None] [gw13] [ 20%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] [gw11] [ 20%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[legacy_elicitation] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[legacy_routing] [gw7] [ 20%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[not a dict-None] tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] tests/client/test_sampling_callback.py::test_sampling_callback [gw13] [ 20%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] [gw14] [ 20%] PASSED tests/docs_src/test_client.py::test_an_unknown_tool_name_is_a_result_not_an_exception [gw11] [ 20%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[legacy_routing] tests/docs_src/test_client.py::test_resources_and_templates_are_two_separate_lists tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[lifespan] [gw13] [ 20%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] [gw6] [ 20%] PASSED tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] [gw13] [ 20%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] [gw6] [ 20%] PASSED tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] [gw11] [ 20%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[lifespan] [gw2] [ 20%] PASSED tests/interaction/auth/test_discovery.py::test_prm_discovery_uses_the_resource_metadata_url_from_www_authenticate [gw8] [ 20%] PASSED tests/client/test_subscriptions.py::test_a_raw_request_id_collision_fails_the_subscription_not_the_session tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[middleware] [gw12] [ 20%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_whose_header_and_body_disagree_is_rejected [gw13] [ 20%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] tests/client/test_client.py::test_get_prompt [gw14] [ 20%] PASSED tests/docs_src/test_client.py::test_resources_and_templates_are_two_separate_lists tests/interaction/auth/test_discovery.py::test_prm_discovery_falls_back_from_path_well_known_to_root_on_404 tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] tests/client/test_transport_stream_cleanup.py::test_sse_client_closes_all_streams_on_connection_error tests/docs_src/test_client.py::test_read_resource_fills_in_a_template tests/docs_src/test_header_parameters.py::test_a_client_that_has_not_listed_the_tool_is_rejected_then_lists_and_resends_once [gw13] [ 20%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] [gw11] [ 20%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[middleware] [gw7] [ 20%] PASSED tests/client/test_sampling_callback.py::test_sampling_callback tests/client/test_sampling_callback.py::test_create_message_backwards_compat_single_content tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[mrtr] [gw14] [ 20%] PASSED tests/docs_src/test_client.py::test_read_resource_fills_in_a_template tests/docs_src/test_client.py::test_resource_subscriptions_are_listen_based_on_the_modern_wire [gw13] [ 20%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] [gw11] [ 20%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[mrtr] [gw13] [ 20%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] [gw5] [ 20%] PASSED tests/client/test_session_notification_bindings.py::test_unbound_vendor_notification_keeps_the_debug_drop tests/client/test_session_notification_bindings.py::test_core_known_method_never_reaches_binding_and_warns_once_at_adopt tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[in-memory-2026-07-28] [gw14] [ 20%] PASSED tests/docs_src/test_client.py::test_resource_subscriptions_are_listen_based_on_the_modern_wire tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] [gw6] [ 20%] PASSED tests/client/test_client.py::test_get_prompt [gw12] [ 20%] PASSED tests/docs_src/test_header_parameters.py::test_a_client_that_has_not_listed_the_tool_is_rejected_then_lists_and_resends_once tests/client/test_client.py::test_client_session_property_before_enter tests/docs_src/test_client.py::test_list_prompts_describes_the_arguments [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] [gw7] [ 21%] PASSED tests/client/test_sampling_callback.py::test_create_message_backwards_compat_single_content tests/client/test_sampling_callback.py::test_create_message_result_with_tools_type [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] [gw11] [ 21%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[in-memory-2026-07-28] tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[streamable-http-2026-07-28] tests/docs_src/test_header_parameters.py::test_a_legacy_http_connection_ignores_the_annotation [gw14] [ 21%] PASSED tests/docs_src/test_client.py::test_list_prompts_describes_the_arguments [gw2] [ 21%] PASSED tests/interaction/auth/test_discovery.py::test_prm_discovery_falls_back_from_path_well_known_to_root_on_404 tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] tests/docs_src/test_client.py::test_get_prompt_renders_the_messages tests/interaction/auth/test_discovery.py::test_when_every_prm_probe_fails_the_client_discovers_as_metadata_at_the_server_origin [gw7] [ 21%] PASSED tests/client/test_sampling_callback.py::test_create_message_result_with_tools_type [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] [gw6] [ 21%] PASSED tests/client/test_client.py::test_client_session_property_before_enter tests/client/test_client.py::test_client_reentry_raises_runtime_error tests/client/test_scope_bug_1630.py::test_401_uses_www_auth_scope_not_resource_metadata_url tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] [gw11] [ 21%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[streamable-http-2026-07-28] tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[in-memory-2025-11-25] [gw14] [ 21%] PASSED tests/docs_src/test_client.py::test_get_prompt_renders_the_messages tests/docs_src/test_client.py::test_complete_suggests_values_for_an_argument [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] [gw7] [ 21%] PASSED tests/client/test_scope_bug_1630.py::test_401_uses_www_auth_scope_not_resource_metadata_url [gw11] [ 21%] PASSED tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[in-memory-2025-11-25] [gw6] [ 21%] PASSED tests/client/test_client.py::test_client_reentry_raises_runtime_error tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] [gw14] [ 21%] PASSED tests/docs_src/test_client.py::test_complete_suggests_values_for_an_argument [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] tests/client/test_client.py::test_client_send_progress_notification tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[sse-2025-11-25] [gw12] [ 21%] PASSED tests/docs_src/test_header_parameters.py::test_a_legacy_http_connection_ignores_the_annotation tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_modern_path tests/docs_src/test_client.py::test_the_pagination_loop_collects_every_tool_from_a_single_page_server tests/docs_src/test_header_parameters.py::test_a_connection_that_is_not_http_ignores_the_annotation [gw5] [ 21%] PASSED tests/client/test_session_notification_bindings.py::test_core_known_method_never_reaches_binding_and_warns_once_at_adopt tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] [gw6] [ 21%] PASSED tests/client/test_client.py::test_client_send_progress_notification [gw7] [ 21%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_modern_path tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] tests/client/test_client.py::test_client_subscribe_resource tests/client/test_session_notification_bindings.py::test_handler_exception_is_contained_and_later_events_deliver [gw14] [ 21%] PASSED tests/docs_src/test_client.py::test_the_pagination_loop_collects_every_tool_from_a_single_page_server [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] tests/docs_src/test_client.py::test_raise_exceptions_is_a_constructor_flag [gw2] [ 21%] PASSED tests/interaction/auth/test_discovery.py::test_when_every_prm_probe_fails_the_client_discovers_as_metadata_at_the_server_origin tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_handshake_path [gw12] [ 21%] PASSED tests/docs_src/test_header_parameters.py::test_a_connection_that_is_not_http_ignores_the_annotation tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] tests/interaction/auth/test_discovery.py::test_a_400_from_the_registration_endpoint_surfaces_as_a_registration_error [gw6] [ 21%] PASSED tests/client/test_client.py::test_client_subscribe_resource [gw11] [ 21%] PASSED tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[sse-2025-11-25] [gw7] [ 21%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_handshake_path tests/docs_src/test_header_parameters.py::test_int_and_bool_arguments_can_be_marked tests/client/test_client.py::test_client_unsubscribe_resource tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[streamable-http-2025-11-25] [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] [gw14] [ 21%] PASSED tests/docs_src/test_client.py::test_raise_exceptions_is_a_constructor_flag tests/client/test_send_request_mcp_name.py::test_name_value_passes_through_encode_header_value [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] tests/docs_src/test_client_callbacks.py::test_the_callback_answers_the_servers_question [gw6] [ 21%] PASSED tests/client/test_client.py::test_client_unsubscribe_resource [gw12] [ 21%] PASSED tests/docs_src/test_header_parameters.py::test_int_and_bool_arguments_can_be_marked tests/docs_src/test_header_parameters.py::test_any_other_type_is_refused_when_the_tool_is_registered [gw7] [ 21%] PASSED tests/client/test_send_request_mcp_name.py::test_name_value_passes_through_encode_header_value tests/client/test_client.py::test_client_set_logging_level [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] tests/client/test_send_request_mcp_name.py::test_core_tools_call_header_comes_from_the_stamp_alone tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] [gw6] [ 21%] PASSED tests/client/test_client.py::test_client_set_logging_level [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] [gw14] [ 21%] PASSED tests/docs_src/test_client_callbacks.py::test_the_callback_answers_the_servers_question tests/client/test_client.py::test_client_list_resources_with_params tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] tests/docs_src/test_client_callbacks.py::test_the_callback_receives_the_servers_question_as_form_params tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] [gw12] [ 21%] PASSED tests/docs_src/test_header_parameters.py::test_any_other_type_is_refused_when_the_tool_is_registered [gw5] [ 21%] PASSED tests/client/test_session_notification_bindings.py::test_handler_exception_is_contained_and_later_events_deliver [gw9] [ 21%] PASSED tests/docs/test_translations.py::test_link_dropped_in_a_carried_section_costs_no_repair_turn_and_the_stored_section_is_kept tests/docs/test_translations.py::test_removed_english_section_is_reassembled_with_no_client_but_an_edited_one_needs_credentials_first [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] tests/client/test_session_notification_bindings.py::test_binding_delivery_works_without_adopt [gw7] [ 21%] PASSED tests/client/test_send_request_mcp_name.py::test_core_tools_call_header_comes_from_the_stamp_alone tests/client/test_send_request_mcp_name.py::test_stamp_table_rows_win_over_name_param_by_ordering tests/docs_src/test_header_parameters.py::test_a_plain_optional_argument_is_refused_and_the_spelled_out_schema_registers [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] [gw5] [ 21%] PASSED tests/client/test_session_notification_bindings.py::test_binding_delivery_works_without_adopt tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] [gw11] [ 21%] PASSED tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[streamable-http-2025-11-25] tests/client/test_session_promotions.py::test_dispatch_input_request_routes_through_the_callback_table [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] [gw5] [ 21%] PASSED tests/client/test_session_promotions.py::test_dispatch_input_request_routes_through_the_callback_table tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[streamable-http-stateless-2025-11-25] [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] tests/client/test_session_promotions.py::test_dispatch_input_request_returns_error_data_on_refusal [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] [gw5] [ 21%] PASSED tests/client/test_session_promotions.py::test_dispatch_input_request_returns_error_data_on_refusal [gw2] [ 21%] PASSED tests/interaction/auth/test_discovery.py::test_a_400_from_the_registration_endpoint_surfaces_as_a_registration_error tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] tests/client/test_session_promotions.py::test_validate_tool_result_passes_a_conforming_result [gw7] [ 21%] PASSED tests/client/test_send_request_mcp_name.py::test_stamp_table_rows_win_over_name_param_by_ordering tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_preconnect_path tests/interaction/auth/test_discovery.py::test_a_registration_response_with_substituted_metadata_completes_the_flow [gw13] [ 21%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] [gw14] [ 22%] PASSED tests/docs_src/test_client_callbacks.py::test_the_callback_receives_the_servers_question_as_form_params [gw6] [ 22%] PASSED tests/client/test_client.py::test_client_list_resources_with_params tests/client/test_client.py::test_client_list_resource_templates [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] tests/docs_src/test_client_callbacks.py::test_returning_error_data_refuses_the_request_and_fails_the_call [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] [gw7] [ 22%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_preconnect_path tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] [gw6] [ 22%] PASSED tests/client/test_client.py::test_client_list_resource_templates [gw11] [ 22%] PASSED tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[streamable-http-stateless-2025-11-25] tests/client/test_client.py::test_list_prompts [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] [gw4] [ 22%] PASSED tests/client/test_client_extensions.py::test_no_extensions_keeps_tools_call_parsing_byte_identical[empty] tests/client/test_client_extensions.py::test_claimed_result_resolves_transparently_to_the_resolvers_result tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[in-memory-2026-07-28] [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] tests/client/test_send_request_mcp_name.py::test_missing_name_value_fails_loud_naming_method_and_key [gw5] [ 22%] PASSED tests/client/test_session_promotions.py::test_validate_tool_result_passes_a_conforming_result [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] tests/client/test_session_promotions.py::test_validate_tool_result_raises_on_schema_mismatch [gw11] [ 22%] PASSED tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[in-memory-2026-07-28] [gw6] [ 22%] PASSED tests/client/test_client.py::test_list_prompts [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] tests/client/test_client.py::test_complete_with_prompt_reference [gw12] [ 22%] PASSED tests/docs_src/test_header_parameters.py::test_a_plain_optional_argument_is_refused_and_the_spelled_out_schema_registers tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[streamable-http-2026-07-28] [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] tests/docs_src/test_header_parameters.py::test_the_low_level_server_serves_an_invalid_annotation_and_a_2026_client_leaves_the_tool_out tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] [gw5] [ 22%] PASSED tests/client/test_session_promotions.py::test_validate_tool_result_raises_on_schema_mismatch [gw4] [ 22%] PASSED tests/client/test_client_extensions.py::test_claimed_result_resolves_transparently_to_the_resolvers_result [gw2] [ 22%] PASSED tests/interaction/auth/test_discovery.py::test_a_registration_response_with_substituted_metadata_completes_the_flow [gw7] [ 22%] PASSED tests/client/test_send_request_mcp_name.py::test_missing_name_value_fails_loud_naming_method_and_key tests/interaction/auth/test_discovery.py::test_a_registration_assigning_unusable_credentials_surfaces_as_a_registration_error[unimplemented] [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] tests/client/test_session_promotions.py::test_validate_tool_result_raises_on_an_unusable_output_schema [gw6] [ 22%] PASSED tests/client/test_client.py::test_complete_with_prompt_reference tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport tests/client/test_client_extensions.py::test_claimed_shape_routes_to_its_owning_extensions_resolver [gw6] [ 22%] PASSED tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport tests/client/test_client.py::test_client_uses_transport_directly tests/client/test_send_request_mcp_name.py::test_non_string_name_value_fails_loud [gw14] [ 22%] PASSED tests/docs_src/test_client_callbacks.py::test_returning_error_data_refuses_the_request_and_fails_the_call [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] [gw5] [ 22%] PASSED tests/client/test_session_promotions.py::test_validate_tool_result_raises_on_an_unusable_output_schema [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] tests/docs_src/test_client_callbacks.py::test_without_the_callback_the_servers_request_is_refused tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] tests/client/test_session_promotions.py::test_validate_tool_result_compiles_the_output_schema_once_per_tool [gw11] [ 22%] PASSED tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[streamable-http-2026-07-28] [gw7] [ 22%] PASSED tests/client/test_send_request_mcp_name.py::test_non_string_name_value_fails_loud tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[in-memory-2025-11-25] [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] [gw4] [ 22%] PASSED tests/client/test_client_extensions.py::test_claimed_shape_routes_to_its_owning_extensions_resolver tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] [gw5] [ 22%] PASSED tests/client/test_session_promotions.py::test_validate_tool_result_compiles_the_output_schema_once_per_tool [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] [gw6] [ 22%] PASSED tests/client/test_client.py::test_client_uses_transport_directly tests/client/test_session_promotions.py::test_validate_tool_result_keeps_the_validator_across_a_relisting_of_the_same_schema tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] tests/client/test_client.py::test_context_propagation [gw11] [ 22%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[in-memory-2025-11-25] tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[sse-2025-11-25] tests/client/test_client_extensions.py::test_resolver_product_gets_the_direct_paths_output_schema_revalidation tests/client/test_send_request_mcp_name.py::test_absent_params_fails_loud_not_attribute_error [gw5] [ 22%] PASSED tests/client/test_session_promotions.py::test_validate_tool_result_keeps_the_validator_across_a_relisting_of_the_same_schema tests/client/test_session_promotions.py::test_validate_tool_result_recompiles_when_the_server_changes_the_schema [gw2] [ 22%] PASSED tests/interaction/auth/test_discovery.py::test_a_registration_assigning_unusable_credentials_surfaces_as_a_registration_error[unimplemented] tests/interaction/auth/test_discovery.py::test_a_registration_assigning_unusable_credentials_surfaces_as_a_registration_error[unsignable] [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] [gw6] [ 22%] PASSED tests/client/test_client.py::test_context_propagation tests/client/test_client.py::test_client_auto_mode_probes_discover_then_adopts [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] [gw7] [ 22%] PASSED tests/client/test_send_request_mcp_name.py::test_absent_params_fails_loud_not_attribute_error [gw11] [ 22%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[sse-2025-11-25] [gw6] [ 22%] PASSED tests/client/test_client.py::test_client_auto_mode_probes_discover_then_adopts [gw4] [ 22%] PASSED tests/client/test_client_extensions.py::test_resolver_product_gets_the_direct_paths_output_schema_revalidation tests/client/test_client.py::test_client_auto_mode_negotiates_modern_over_a_stream_loop tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[streamable-http-2025-11-25] [gw5] [ 22%] PASSED tests/client/test_session_promotions.py::test_validate_tool_result_recompiles_when_the_server_changes_the_schema tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] tests/client/test_stdio.py::test_messages_split_and_packed_across_chunks_are_reframed tests/client/test_client_extensions.py::test_resolver_error_result_is_returned_not_raised tests/client/test_send_request_mcp_name.py::test_request_without_name_param_sends_no_mcp_name tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] [gw12] [ 22%] PASSED tests/docs_src/test_header_parameters.py::test_the_low_level_server_serves_an_invalid_annotation_and_a_2026_client_leaves_the_tool_out [gw5] [ 22%] PASSED tests/client/test_stdio.py::test_messages_split_and_packed_across_chunks_are_reframed [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] [gw6] [ 22%] PASSED tests/client/test_client.py::test_client_auto_mode_negotiates_modern_over_a_stream_loop tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] tests/client/test_stdio.py::test_each_outgoing_message_is_written_as_exactly_one_line [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] [gw7] [ 22%] PASSED tests/client/test_send_request_mcp_name.py::test_request_without_name_param_sends_no_mcp_name tests/client/test_client.py::test_client_pinned_modern_mode_works_over_a_stream_loop tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial002] tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] [gw13] [ 22%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] [gw6] [ 22%] PASSED tests/client/test_client.py::test_client_pinned_modern_mode_works_over_a_stream_loop tests/client/test_client.py::test_client_legacy_mode_still_handshakes_over_a_stream_loop [gw4] [ 22%] PASSED tests/client/test_client_extensions.py::test_resolver_error_result_is_returned_not_raised [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] [gw6] [ 23%] PASSED tests/client/test_client.py::test_client_legacy_mode_still_handshakes_over_a_stream_loop [gw11] [ 23%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[streamable-http-2025-11-25] [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] tests/client/test_session.py::test_client_session_initialize tests/client/test_client_extensions.py::test_resolver_receives_the_calls_claim_context tests/client/test_client.py::test_client_auto_mode_recovers_from_a_timed_out_probe_over_a_stream_loop tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[streamable-http-stateless-2025-11-25] tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] [gw2] [ 23%] PASSED tests/interaction/auth/test_discovery.py::test_a_registration_assigning_unusable_credentials_surfaces_as_a_registration_error[unsignable] tests/interaction/auth/test_discovery.py::test_a_registration_assigning_unusable_credentials_surfaces_as_a_registration_error[secret-not-issued] [gw14] [ 23%] PASSED tests/docs_src/test_client_callbacks.py::test_without_the_callback_the_servers_request_is_refused [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] [gw3] [ 23%] PASSED tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits [gw4] [ 23%] PASSED tests/client/test_client_extensions.py::test_resolver_receives_the_calls_claim_context tests/client/test_client_extensions.py::test_resolver_exception_propagates_untouched [gw12] [ 23%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial002] tests/client/test_session.py::test_call_tool_rejects_a_null_structured_content_the_output_schema_forbids tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] tests/docs_src/test_client_callbacks.py::test_registering_the_callback_declares_the_capability [gw15] [ 23%] PASSED tests/docs_src/test_structured_output.py::test_scalar_return_is_wrapped [gw7] [ 23%] PASSED tests/client/test_session.py::test_client_session_initialize tests/client/test_session.py::test_client_session_custom_client_info tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial003] [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] tests/docs_src/test_structured_output.py::test_basemodel_is_the_schema [gw3] [ 23%] PASSED tests/client/test_session.py::test_call_tool_rejects_a_null_structured_content_the_output_schema_forbids tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] [gw11] [ 23%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[in-memory-2026-07-28] [gw11] [ 23%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[in-memory-2026-07-28] tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[streamable-http-2026-07-28] [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] tests/client/test_session.py::test_call_tool_reports_an_absent_structured_content_as_missing_even_when_null_is_permitted [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] [gw4] [ 23%] PASSED tests/client/test_client_extensions.py::test_resolver_exception_propagates_untouched tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] [gw11] [ 23%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[streamable-http-2026-07-28] [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_accepted_content_returns_to_handler[in-memory-2025-11-25] tests/client/test_client_extensions.py::test_unclaimed_result_flows_through_unchanged_with_extensions_present tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] [gw6] [ 23%] PASSED tests/client/test_client.py::test_client_auto_mode_recovers_from_a_timed_out_probe_over_a_stream_loop [gw7] [ 23%] PASSED tests/client/test_session.py::test_client_session_custom_client_info [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32601] [gw3] [ 23%] PASSED tests/client/test_session.py::test_call_tool_reports_an_absent_structured_content_as_missing_even_when_null_is_permitted tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in [gw5] [ 23%] PASSED tests/client/test_stdio.py::test_each_outgoing_message_is_written_as_exactly_one_line [gw3] [ 23%] PASSED tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params [gw2] [ 23%] PASSED tests/interaction/auth/test_discovery.py::test_a_registration_assigning_unusable_credentials_surfaces_as_a_registration_error[secret-not-issued] tests/interaction/auth/test_discovery.py::test_prm_with_a_mismatched_resource_aborts_the_flow_before_authorize [gw6] [ 23%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32601] [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] [gw14] [ 23%] PASSED tests/docs_src/test_client_callbacks.py::test_registering_the_callback_declares_the_capability tests/docs_src/test_client_callbacks.py::test_no_callbacks_means_no_capabilities tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32001] [gw12] [ 23%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial003] tests/docs_src/test_header_parameters.py::test_the_schema_the_lookup_returns_is_the_one_the_header_is_checked_against tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] [gw7] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] [gw15] [ 23%] PASSED tests/docs_src/test_structured_output.py::test_basemodel_is_the_schema [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] [gw6] [ 23%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32001] tests/client/test_stdio.py::test_invalid_json_from_the_server_surfaces_as_an_in_stream_exception tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32603] [gw11] [ 23%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_accepted_content_returns_to_handler[in-memory-2025-11-25] tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] [gw4] [ 23%] PASSED tests/client/test_client_extensions.py::test_unclaimed_result_flows_through_unchanged_with_extensions_present tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] [gw6] [ 23%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32603] [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] tests/client/test_client.py::test_modern_list_tools_drops_tools_with_invalid_x_mcp_header_but_legacy_does_not tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_accepted_content_returns_to_handler[sse-2025-11-25] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] tests/docs_src/test_structured_output.py::test_typeddict_produces_the_same_schema tests/client/test_client_extensions.py::test_input_required_then_plain_result_keeps_the_auto_loop_working [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] [gw14] [ 23%] PASSED tests/docs_src/test_client_callbacks.py::test_no_callbacks_means_no_capabilities tests/docs_src/test_client_callbacks.py::test_each_callback_declares_its_own_capability [gw7] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] [gw3] [ 23%] PASSED tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] [gw3] [ 23%] PASSED tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial001.py] [gw12] [ 23%] PASSED tests/docs_src/test_header_parameters.py::test_the_schema_the_lookup_returns_is_the_one_the_header_is_checked_against [gw7] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial001.py] tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial001.py] [gw14] [ 23%] PASSED tests/docs_src/test_client_callbacks.py::test_each_callback_declares_its_own_capability [gw15] [ 23%] PASSED tests/docs_src/test_structured_output.py::test_typeddict_produces_the_same_schema tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider [gw10] [ 23%] PASSED tests/docs_src/test_opentelemetry.py::test_a_plain_server_is_traced_with_no_extra_code [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial001.py] tests/docs_src/test_structured_output.py::test_dataclass_produces_the_same_schema tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial002.py] [gw4] [ 23%] PASSED tests/client/test_client_extensions.py::test_input_required_then_plain_result_keeps_the_auto_loop_working tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial002.py] [gw3] [ 23%] PASSED tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in [gw13] [ 23%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial002.py] tests/docs_src/test_client_callbacks.py::test_the_modern_in_memory_path_has_no_back_channel tests/docs_src/test_opentelemetry.py::test_client_and_server_share_one_trace tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in [gw12] [ 23%] PASSED tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider [gw14] [ 24%] PASSED tests/docs_src/test_client_callbacks.py::test_the_modern_in_memory_path_has_no_back_channel [gw11] [ 24%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_accepted_content_returns_to_handler[sse-2025-11-25] tests/client/test_client_extensions.py::test_input_required_then_claimed_result_on_retry_resolves_transparently tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial003.py] [gw7] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial001.py] tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_accepted_content_returns_to_handler[streamable-http-2025-11-25] [gw13] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial003.py] [gw6] [ 24%] PASSED tests/client/test_client.py::test_modern_list_tools_drops_tools_with_invalid_x_mcp_header_but_legacy_does_not tests/client/test_client.py::test_a_complete_listing_prunes_per_tool_state_for_tools_it_no_longer_contains tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page [gw7] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial001.py] [gw3] [ 24%] PASSED tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler tests/docs_src/test_client_callbacks.py::test_the_deprecated_callbacks_return_what_the_page_says tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] [gw2] [ 24%] PASSED tests/interaction/auth/test_discovery.py::test_prm_with_a_mismatched_resource_aborts_the_flow_before_authorize [gw13] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] [gw6] [ 24%] PASSED tests/client/test_client.py::test_a_complete_listing_prunes_per_tool_state_for_tools_it_no_longer_contains tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] [gw3] [ 24%] PASSED tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler tests/client/test_client.py::test_a_complete_listing_prunes_output_schemas_on_a_legacy_session_too tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial002.py] [gw4] [ 24%] PASSED tests/client/test_client_extensions.py::test_input_required_then_claimed_result_on_retry_resolves_transparently [gw15] [ 24%] PASSED tests/docs_src/test_structured_output.py::test_dataclass_produces_the_same_schema [gw13] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] tests/interaction/auth/test_discovery.py::test_as_metadata_discovery_falls_back_through_the_spec_endpoint_order[root-issuer] tests/docs_src/test_structured_output.py::test_list_return_is_wrapped [gw6] [ 24%] PASSED tests/client/test_client.py::test_a_complete_listing_prunes_output_schemas_on_a_legacy_session_too tests/client/test_client_extensions.py::test_notification_bindings_fold_into_the_session tests/client/test_client.py::test_a_listing_with_a_next_cursor_prunes_no_per_tool_state [gw13] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] [gw7] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial002.py] [gw14] [ 24%] PASSED tests/docs_src/test_client_callbacks.py::test_the_deprecated_callbacks_return_what_the_page_says tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial003.py] [gw6] [ 24%] PASSED tests/client/test_client.py::test_a_listing_with_a_next_cursor_prunes_no_per_tool_state tests/client/test_client.py::test_a_cursor_page_fetch_prunes_no_per_tool_state [gw13] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] [gw13] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] [gw3] [ 24%] PASSED tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled tests/docs_src/test_client_transports.py::test_the_in_memory_program_on_the_page_runs tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[sse-2025-11-25] [gw3] [ 24%] PASSED tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled [gw7] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial003.py] [gw6] [ 24%] PASSED tests/client/test_client.py::test_a_cursor_page_fetch_prunes_no_per_tool_state tests/client/test_client.py::test_client_rejects_handshake_era_mode_at_construction tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial004.py] [gw6] [ 24%] PASSED tests/client/test_client.py::test_client_rejects_handshake_era_mode_at_construction [gw3] [ 24%] PASSED tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones tests/client/test_client.py::test_call_tool_auto_loop_dispatches_elicitation_then_returns_final_result [gw5] [ 24%] PASSED tests/client/test_stdio.py::test_invalid_json_from_the_server_surfaces_as_an_in_stream_exception [gw3] [ 24%] PASSED tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones [gw14] [ 24%] PASSED tests/docs_src/test_client_transports.py::test_the_in_memory_program_on_the_page_runs tests/examples/test_stories.py::test_story[extensions-server-http-asgi-in-body] tests/client/test_stdio.py::test_a_server_that_dies_before_responding_fails_initialize_with_connection_closed [gw7] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial004.py] [gw5] [ 24%] PASSED tests/client/test_stdio.py::test_a_server_that_dies_before_responding_fails_initialize_with_connection_closed tests/docs_src/test_client_transports.py::test_in_memory_client_talks_to_the_server_object [gw15] [ 24%] PASSED tests/docs_src/test_structured_output.py::test_list_return_is_wrapped tests/docs_src/test_structured_output.py::test_dict_str_return_is_not_wrapped tests/client/test_stdio.py::test_a_server_that_exits_on_stdin_close_is_never_terminated [gw11] [ 24%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_accepted_content_returns_to_handler[streamable-http-2025-11-25] [gw6] [ 24%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_dispatches_elicitation_then_returns_final_result [gw13] [ 24%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[sse-2025-11-25] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial005.py] tests/client/test_client.py::test_call_tool_auto_loop_dispatches_sampling_then_returns_final_result [gw5] [ 24%] PASSED tests/client/test_stdio.py::test_a_server_that_exits_on_stdin_close_is_never_terminated tests/client/test_stdio.py::test_escalation_fires_once_and_only_after_the_grace_period tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_decline_returns_no_content[in-memory-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-2025-11-25] [gw10] [ 24%] PASSED tests/docs_src/test_opentelemetry.py::test_client_and_server_share_one_trace [gw7] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial005.py] [gw14] [ 24%] PASSED tests/docs_src/test_client_transports.py::test_in_memory_client_talks_to_the_server_object [gw2] [ 24%] PASSED tests/interaction/auth/test_discovery.py::test_as_metadata_discovery_falls_back_through_the_spec_endpoint_order[root-issuer] [gw5] [ 24%] PASSED tests/client/test_stdio.py::test_escalation_fires_once_and_only_after_the_grace_period tests/docs_src/test_pagination.py::test_mcpserver_never_pages tests/docs_src/test_client_transports.py::test_constructing_a_client_does_not_connect_it tests/client/test_stdio.py::test_a_server_dying_in_the_final_poll_interval_is_not_escalated [gw6] [ 24%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_dispatches_sampling_then_returns_final_result [gw11] [ 24%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_decline_returns_no_content[in-memory-2025-11-25] [gw14] [ 24%] PASSED tests/docs_src/test_client_transports.py::test_constructing_a_client_does_not_connect_it tests/client/test_client.py::test_call_tool_auto_loop_dispatches_list_roots_then_returns_final_result tests/interaction/auth/test_discovery.py::test_as_metadata_discovery_falls_back_through_the_spec_endpoint_order[path-issuer] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial001.py] [gw7] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial001.py] [gw15] [ 24%] PASSED tests/docs_src/test_structured_output.py::test_dict_str_return_is_not_wrapped [gw5] [ 24%] PASSED tests/client/test_stdio.py::test_a_server_dying_in_the_final_poll_interval_is_not_escalated tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial002.py] tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_decline_returns_no_content[sse-2025-11-25] tests/client/test_stdio.py::test_cancelling_the_client_still_runs_the_full_shutdown tests/docs_src/test_structured_output.py::test_return_value_is_validated_against_the_schema tests/docs_src/test_client_transports.py::test_the_timeout_on_the_page_is_the_sdk_clients_and_a_client_without_one_has_five_seconds [gw13] [ 24%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-stateless-2025-11-25] [gw7] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial002.py] [gw6] [ 24%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_dispatches_list_roots_then_returns_final_result [gw10] [ 24%] PASSED tests/docs_src/test_pagination.py::test_mcpserver_never_pages tests/client/test_client.py::test_call_tool_auto_loop_round_trips_evolving_request_state_across_three_rounds [gw4] [ 24%] PASSED tests/client/test_client_extensions.py::test_notification_bindings_fold_into_the_session tests/client/test_extension.py::test_claim_with_literal_discriminated_model_constructs tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/opentelemetry/tutorial001.py] tests/docs_src/test_pagination.py::test_first_page_has_ten_resources_and_a_cursor [gw7] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/opentelemetry/tutorial001.py] [gw4] [ 24%] PASSED tests/client/test_extension.py::test_claim_with_literal_discriminated_model_constructs tests/client/test_extension.py::test_claim_accepts_modern_protocol_versions tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial001.py] [gw6] [ 24%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_round_trips_evolving_request_state_across_three_rounds [gw10] [ 24%] PASSED tests/docs_src/test_pagination.py::test_first_page_has_ten_resources_and_a_cursor tests/client/test_client.py::test_call_tool_auto_loop_raises_mcp_error_when_no_callback_registered [gw7] [ 24%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial001.py] [gw8] [ 24%] PASSED tests/client/test_transport_stream_cleanup.py::test_sse_client_closes_all_streams_on_connection_error [gw3] [ 25%] PASSED tests/examples/test_stories.py::test_story[extensions-server-http-asgi-in-body] tests/examples/test_stories.py::test_story[subscriptions-server-in-memory-modern] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial002.py] [gw7] [ 25%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial001.py] [gw7] [ 25%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial001.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial002.py] [gw6] [ 25%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_raises_mcp_error_when_no_callback_registered tests/client/test_client.py::test_get_prompt_auto_loop_resolves_input_required_via_callbacks [gw6] [ 25%] PASSED tests/client/test_client.py::test_get_prompt_auto_loop_resolves_input_required_via_callbacks tests/client/test_client.py::test_read_resource_auto_loop_resolves_input_required_via_callbacks tests/client/test_transport_stream_cleanup.py::test_sse_client_closes_all_streams_on_http_error tests/docs_src/test_pagination.py::test_the_cursor_resumes_where_the_last_page_stopped [gw10] [ 25%] PASSED tests/docs_src/test_pagination.py::test_the_cursor_resumes_where_the_last_page_stopped tests/docs_src/test_pagination.py::test_the_last_page_carries_no_cursor [gw11] [ 25%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_decline_returns_no_content[sse-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_decline_returns_no_content[streamable-http-2025-11-25] [gw5] [ 25%] PASSED tests/client/test_stdio.py::test_cancelling_the_client_still_runs_the_full_shutdown tests/client/test_stdio.py::test_writing_after_the_server_dies_reports_clean_closure [gw5] [ 25%] PASSED tests/client/test_stdio.py::test_writing_after_the_server_dies_reports_clean_closure tests/client/test_stdio.py::test_exiting_with_an_unconsumed_server_message_does_not_raise [gw2] [ 25%] PASSED tests/interaction/auth/test_discovery.py::test_as_metadata_discovery_falls_back_through_the_spec_endpoint_order[path-issuer] tests/interaction/auth/test_discovery.py::test_the_prm_endpoint_serves_the_resource_url_and_at_least_one_authorization_server [gw13] [ 25%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[in-memory-2026-07-28] [gw4] [ 25%] PASSED tests/client/test_extension.py::test_claim_accepts_modern_protocol_versions tests/client/test_extension.py::test_claim_rejects_core_result_type_vocabulary [gw4] [ 25%] PASSED tests/client/test_extension.py::test_claim_rejects_core_result_type_vocabulary tests/client/test_extension.py::test_claim_rejects_model_subclassing_core_result_types[_ClaimedCallToolResult] [gw4] [ 25%] PASSED tests/client/test_extension.py::test_claim_rejects_model_subclassing_core_result_types[_ClaimedCallToolResult] tests/client/test_extension.py::test_claim_rejects_model_subclassing_core_result_types[_ClaimedInputRequiredResult] [gw13] [ 25%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[in-memory-2026-07-28] tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-2026-07-28] [gw7] [ 25%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial001.py] [gw6] [ 25%] PASSED tests/client/test_client.py::test_read_resource_auto_loop_resolves_input_required_via_callbacks tests/client/test_client_caching.py::test_an_explicit_target_id_overrides_both_url_and_in_process_identity [gw6] [ 25%] PASSED tests/client/test_client_caching.py::test_an_explicit_target_id_overrides_both_url_and_in_process_identity tests/client/test_client_caching.py::test_userinfo_variants_of_a_server_url_share_one_cache_identity [gw4] [ 25%] PASSED tests/client/test_extension.py::test_claim_rejects_model_subclassing_core_result_types[_ClaimedInputRequiredResult] [gw2] [ 25%] PASSED tests/interaction/auth/test_discovery.py::test_the_prm_endpoint_serves_the_resource_url_and_at_least_one_authorization_server tests/client/test_extension.py::test_claim_rejects_model_without_result_type_field [gw6] [ 25%] PASSED tests/client/test_client_caching.py::test_userinfo_variants_of_a_server_url_share_one_cache_identity tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[scheme-case] tests/interaction/auth/test_discovery.py::test_as_metadata_advertises_authorize_token_registration_and_s256 [gw7] [ 25%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial001.py] [gw14] [ 25%] PASSED tests/docs_src/test_client_transports.py::test_the_timeout_on_the_page_is_the_sdk_clients_and_a_client_without_one_has_five_seconds [gw10] [ 25%] PASSED tests/docs_src/test_pagination.py::test_the_last_page_carries_no_cursor [gw6] [ 25%] PASSED tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[scheme-case] [gw4] [ 25%] PASSED tests/client/test_extension.py::test_claim_rejects_model_without_result_type_field tests/docs_src/test_pagination.py::test_the_client_loop_collects_all_one_hundred_in_order [gw13] [ 25%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-2026-07-28] tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[empty-query] tests/docs_src/test_client_transports.py::test_stdio_parameters_go_straight_to_client [gw15] [ 25%] PASSED tests/docs_src/test_structured_output.py::test_return_value_is_validated_against_the_schema tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[in-memory-2025-11-25] [gw6] [ 25%] PASSED tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[empty-query] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial002.py] tests/client/test_extension.py::test_claim_rejects_plain_str_result_type_field tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[empty-fragment] tests/docs_src/test_structured_output.py::test_structured_output_false_opts_out [gw6] [ 25%] PASSED tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[empty-fragment] [gw2] [ 25%] PASSED tests/interaction/auth/test_discovery.py::test_as_metadata_advertises_authorize_token_registration_and_s256 [gw13] [ 25%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[in-memory-2025-11-25] [gw14] [ 25%] PASSED tests/docs_src/test_client_transports.py::test_stdio_parameters_go_straight_to_client tests/docs_src/test_client_transports.py::test_the_child_environment_is_an_allowlist [gw7] [ 25%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial002.py] tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[sse-2025-11-25] tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[tab-in-userinfo] tests/interaction/auth/test_discovery.py::test_as_metadata_with_a_mismatched_issuer_aborts_the_flow [gw4] [ 25%] PASSED tests/client/test_extension.py::test_claim_rejects_plain_str_result_type_field [gw6] [ 25%] PASSED tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[tab-in-userinfo] [gw11] [ 25%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_decline_returns_no_content[streamable-http-2025-11-25] tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[tab-in-path] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial003.py] [gw3] [ 25%] PASSED tests/examples/test_stories.py::test_story[subscriptions-server-in-memory-modern] [gw15] [ 25%] PASSED tests/docs_src/test_structured_output.py::test_structured_output_false_opts_out tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_cancel_returns_no_content[in-memory-2025-11-25] [gw12] [ 25%] PASSED tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page [gw14] [ 25%] PASSED tests/docs_src/test_client_transports.py::test_the_child_environment_is_an_allowlist [gw6] [ 25%] PASSED tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[tab-in-path] tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required tests/client/test_client_caching.py::test_a_url_without_an_authority_passes_through_unchanged tests/examples/test_stories.py::test_story[subscriptions-server-http-asgi-modern] tests/client/test_extension.py::test_claim_rejects_mismatched_result_type_literal [gw12] [ 25%] PASSED tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required tests/docs_src/test_completions.py::test_a_server_with_no_handler_has_no_completions_capability [gw6] [ 25%] PASSED tests/client/test_client_caching.py::test_a_url_without_an_authority_passes_through_unchanged tests/client/test_client_caching.py::test_the_server_url_is_sha256_hashed_before_it_enters_key_material [gw7] [ 25%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial003.py] tests/docs_src/test_structured_output.py::test_content_blocks_and_media_are_opted_out_of_structured_output [gw13] [ 25%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[sse-2025-11-25] [gw6] [ 25%] PASSED tests/client/test_client_caching.py::test_the_server_url_is_sha256_hashed_before_it_enters_key_material [gw4] [ 25%] PASSED tests/client/test_extension.py::test_claim_rejects_mismatched_result_type_literal tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[streamable-http-2025-11-25] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial004.py] tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required [gw12] [ 25%] PASSED tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists tests/client/test_client_caching.py::test_urls_differing_only_in_query_have_distinct_cache_identities tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result [gw12] [ 25%] PASSED tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists [gw6] [ 25%] PASSED tests/client/test_client_caching.py::test_urls_differing_only_in_query_have_distinct_cache_identities [gw5] [ 25%] PASSED tests/client/test_stdio.py::test_exiting_with_an_unconsumed_server_message_does_not_raise tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected tests/client/test_client_caching.py::test_two_clients_on_one_in_process_server_get_distinct_cache_identities [gw7] [ 25%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial004.py] [gw4] [ 25%] PASSED tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result [gw6] [ 25%] PASSED tests/client/test_client_caching.py::test_two_clients_on_one_in_process_server_get_distinct_cache_identities [gw10] [ 25%] PASSED tests/docs_src/test_pagination.py::test_the_client_loop_collects_all_one_hundred_in_order [gw12] [ 25%] PASSED tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected tests/client/test_stdio.py::test_spawn_failure_propagates_the_error_and_leaks_no_streams tests/client/test_client_caching.py::test_a_transport_object_gets_a_per_client_cache_identity tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected [gw14] [ 25%] PASSED tests/docs_src/test_completions.py::test_a_server_with_no_handler_has_no_completions_capability tests/docs_src/test_completions.py::test_completing_without_a_handler_is_method_not_found [gw6] [ 25%] PASSED tests/client/test_client_caching.py::test_a_transport_object_gets_a_per_client_cache_identity tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial005.py] tests/client/test_client_caching.py::test_a_custom_store_without_a_url_or_target_id_is_rejected[in-process] [gw12] [ 26%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected [gw15] [ 26%] PASSED tests/docs_src/test_structured_output.py::test_content_blocks_and_media_are_opted_out_of_structured_output tests/docs_src/test_pagination.py::test_the_client_loop_runs_once_against_a_server_that_does_not_page tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected [gw6] [ 26%] PASSED tests/client/test_client_caching.py::test_a_custom_store_without_a_url_or_target_id_is_rejected[in-process] [gw4] [ 26%] PASSED tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields tests/client/test_client_caching.py::test_a_custom_store_without_a_url_or_target_id_is_rejected[transport] [gw7] [ 26%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial005.py] tests/docs_src/test_structured_output.py::test_class_without_type_hints_is_silently_unstructured [gw12] [ 26%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected [gw6] [ 26%] PASSED tests/client/test_client_caching.py::test_a_custom_store_without_a_url_or_target_id_is_rejected[transport] tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected [gw11] [ 26%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_cancel_returns_no_content[in-memory-2025-11-25] tests/client/test_client_caching.py::test_a_custom_store_with_a_url_server_constructs_and_is_used [gw14] [ 26%] PASSED tests/docs_src/test_completions.py::test_completing_without_a_handler_is_method_not_found tests/docs_src/test_completions.py::test_registering_the_handler_advertises_the_capability tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name [gw6] [ 26%] PASSED tests/client/test_client_caching.py::test_a_custom_store_with_a_url_server_constructs_and_is_used tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial006.py] [gw12] [ 26%] PASSED tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_cancel_returns_no_content[sse-2025-11-25] tests/client/test_client_caching.py::test_a_custom_store_with_an_explicit_target_id_constructs_for_any_server tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile [gw7] [ 26%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial006.py] [gw6] [ 26%] PASSED tests/client/test_client_caching.py::test_a_custom_store_with_an_explicit_target_id_constructs_for_any_server [gw4] [ 26%] PASSED tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name tests/client/test_client_caching.py::test_cache_none_disables_the_cache_and_the_handler_wrap [gw12] [ 26%] PASSED tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile [gw14] [ 26%] PASSED tests/docs_src/test_completions.py::test_registering_the_handler_advertises_the_capability tests/docs_src/test_completions.py::test_prompt_argument_completion_filters_on_the_typed_prefix [gw10] [ 26%] PASSED tests/docs_src/test_pagination.py::test_the_client_loop_runs_once_against_a_server_that_does_not_page tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request [gw6] [ 26%] PASSED tests/client/test_client_caching.py::test_cache_none_disables_the_cache_and_the_handler_wrap tests/client/test_client_caching.py::test_the_default_cache_uses_a_per_client_in_memory_store [gw15] [ 26%] PASSED tests/docs_src/test_structured_output.py::test_class_without_type_hints_is_silently_unstructured [gw13] [ 26%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[streamable-http-2025-11-25] tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial001.py] [gw6] [ 26%] PASSED tests/client/test_client_caching.py::test_the_default_cache_uses_a_per_client_in_memory_store tests/client/test_client_caching.py::test_the_negotiated_version_supplier_tracks_the_session_lifecycle [gw4] [ 26%] PASSED tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form tests/docs_src/test_structured_output.py::test_structured_output_true_makes_the_silence_an_error tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[streamable-http-stateless-2025-11-25] [gw14] [ 26%] PASSED tests/docs_src/test_completions.py::test_prompt_argument_completion_filters_on_the_typed_prefix tests/docs_src/test_pagination.py::test_an_invented_cursor_is_an_error tests/docs_src/test_completions.py::test_empty_value_returns_every_suggestion [gw6] [ 26%] PASSED tests/client/test_client_caching.py::test_the_negotiated_version_supplier_tracks_the_session_lifecycle [gw7] [ 26%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial001.py] tests/client/test_client_caching.py::test_a_list_changed_notification_evicts_without_a_user_handler tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set [gw15] [ 26%] PASSED tests/docs_src/test_structured_output.py::test_structured_output_true_makes_the_silence_an_error [gw4] [ 26%] PASSED tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set [gw14] [ 26%] PASSED tests/docs_src/test_completions.py::test_empty_value_returns_every_suggestion tests/docs_src/test_subscriptions.py::test_publishes_reach_the_stream_filtered_and_tagged tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial002.py] [gw12] [ 26%] PASSED tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request tests/docs_src/test_index.py::test_add_tool [gw6] [ 26%] PASSED tests/client/test_client_caching.py::test_a_list_changed_notification_evicts_without_a_user_handler tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions [gw9] [ 26%] PASSED tests/docs/test_translations.py::test_removed_english_section_is_reassembled_with_no_client_but_an_edited_one_needs_credentials_first tests/docs_src/test_completions.py::test_returning_none_is_an_empty_list_not_an_error tests/client/test_client_caching.py::test_a_user_handler_receives_the_notification_the_eviction_consumed [gw7] [ 26%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial002.py] [gw13] [ 26%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[streamable-http-stateless-2025-11-25] [gw4] [ 26%] PASSED tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions [gw12] [ 26%] PASSED tests/docs_src/test_index.py::test_add_tool [gw14] [ 26%] PASSED tests/docs_src/test_completions.py::test_returning_none_is_an_empty_list_not_an_error tests/docs/test_translations.py::test_a_failing_page_does_not_stop_the_run_and_the_exit_code_is_1 [gw6] [ 26%] PASSED tests/client/test_client_caching.py::test_a_user_handler_receives_the_notification_the_eviction_consumed tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[in-memory-2026-07-28] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial003.py] [gw11] [ 26%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_cancel_returns_no_content[sse-2025-11-25] tests/client/test_client_caching.py::test_non_notification_items_pass_through_to_the_user_handler_untouched tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_cancel_returns_no_content[streamable-http-2025-11-25] tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions tests/docs_src/test_index.py::test_greeting_resource_template tests/docs_src/test_completions.py::test_context_arguments_resolve_a_dependent_parameter [gw6] [ 26%] PASSED tests/client/test_client_caching.py::test_non_notification_items_pass_through_to_the_user_handler_untouched [gw3] [ 26%] PASSED tests/examples/test_stories.py::test_story[subscriptions-server-http-asgi-modern] tests/interaction/lowlevel/test_sampling.py::test_a_client_with_a_sampling_callback_declares_the_sampling_capability[in-memory-2025-11-25] [gw13] [ 26%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[in-memory-2026-07-28] [gw4] [ 26%] PASSED tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions [gw7] [ 26%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial003.py] [gw14] [ 26%] PASSED tests/docs_src/test_completions.py::test_context_arguments_resolve_a_dependent_parameter tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[streamable-http-2026-07-28] tests/client/test_extension.py::test_result_claim_is_frozen [gw12] [ 26%] PASSED tests/docs_src/test_index.py::test_greeting_resource_template tests/examples/test_stories.py::test_story[subscriptions-server_lowlevel-in-memory-modern] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial004.py] tests/docs_src/test_completions.py::test_the_typed_prefix_still_filters_a_dependent_parameter tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once [gw6] [ 26%] PASSED tests/interaction/lowlevel/test_sampling.py::test_a_client_with_a_sampling_callback_declares_the_sampling_capability[in-memory-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_a_client_with_a_sampling_callback_declares_the_sampling_capability[sse-2025-11-25] [gw4] [ 26%] PASSED tests/client/test_extension.py::test_result_claim_is_frozen tests/client/test_extension.py::test_notification_binding_constructs [gw15] [ 26%] PASSED tests/docs_src/test_subscriptions.py::test_publishes_reach_the_stream_filtered_and_tagged [gw13] [ 26%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[streamable-http-2026-07-28] [gw7] [ 26%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial004.py] [gw14] [ 26%] PASSED tests/docs_src/test_completions.py::test_the_typed_prefix_still_filters_a_dependent_parameter tests/docs_src/test_subscriptions.py::test_publish_with_no_subscribers_is_a_no_op tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[in-memory-2025-11-25] [gw4] [ 26%] PASSED tests/client/test_extension.py::test_notification_binding_constructs tests/docs_src/test_completions.py::test_context_arguments_is_optional tests/client/test_extension.py::test_notification_binding_accepts_core_known_method tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/real_host/tutorial001.py] [gw13] [ 26%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[in-memory-2025-11-25] [gw14] [ 26%] PASSED tests/docs_src/test_completions.py::test_context_arguments_is_optional tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[sse-2025-11-25] [gw4] [ 26%] PASSED tests/client/test_extension.py::test_notification_binding_accepts_core_known_method tests/client/test_extension.py::test_notification_binding_is_frozen [gw3] [ 26%] PASSED tests/examples/test_stories.py::test_story[subscriptions-server_lowlevel-in-memory-modern] tests/examples/test_stories.py::test_story[subscriptions-server_lowlevel-http-asgi-modern] tests/docs_src/test_completions.py::test_no_context_means_no_suggestions [gw4] [ 26%] PASSED tests/client/test_extension.py::test_notification_binding_is_frozen tests/client/test_extension.py::test_extension_defaults_advertise_nothing [gw15] [ 26%] PASSED tests/docs_src/test_subscriptions.py::test_publish_with_no_subscribers_is_a_no_op [gw6] [ 26%] PASSED tests/interaction/lowlevel/test_sampling.py::test_a_client_with_a_sampling_callback_declares_the_sampling_capability[sse-2025-11-25] [gw7] [ 27%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/real_host/tutorial001.py] tests/interaction/lowlevel/test_sampling.py::test_a_client_with_a_sampling_callback_declares_the_sampling_capability[streamable-http-2025-11-25] [gw4] [ 27%] PASSED tests/client/test_extension.py::test_extension_defaults_advertise_nothing tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] [gw14] [ 27%] PASSED tests/docs_src/test_completions.py::test_no_context_means_no_suggestions [gw4] [ 27%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] [gw13] [ 27%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[sse-2025-11-25] tests/docs_src/test_subscriptions.py::test_lowlevel_composition_serves_the_same_stream tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[streamable-http-2025-11-25] tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] tests/docs_src/test_completions.py::test_the_prompt_branch_is_untouched_by_the_new_one [gw2] [ 27%] PASSED tests/interaction/auth/test_discovery.py::test_as_metadata_with_a_mismatched_issuer_aborts_the_flow [gw4] [ 27%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial001.py] tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] [gw12] [ 27%] PASSED tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once [gw4] [ 27%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] [gw14] [ 27%] PASSED tests/docs_src/test_completions.py::test_the_prompt_branch_is_untouched_by_the_new_one [gw4] [ 27%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter tests/interaction/auth/test_flow.py::test_an_unauthenticated_request_is_challenged_then_the_full_oauth_flow_connects tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] [gw7] [ 27%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial001.py] [gw15] [ 27%] PASSED tests/docs_src/test_subscriptions.py::test_lowlevel_composition_serves_the_same_stream [gw4] [ 27%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] [gw9] [ 27%] PASSED tests/docs/test_translations.py::test_a_failing_page_does_not_stop_the_run_and_the_exit_code_is_1 [gw6] [ 27%] PASSED tests/interaction/lowlevel/test_sampling.py::test_a_client_with_a_sampling_callback_declares_the_sampling_capability[streamable-http-2025-11-25] tests/docs_src/test_context.py::test_the_context_parameter_is_not_in_the_input_schema [gw4] [ 27%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_audio_content_reaches_callback[in-memory-2025-11-25] tests/docs_src/test_subscriptions.py::test_follow_board_prints_the_refetched_board_and_the_new_tool_list tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] tests/docs/test_translations.py::test_rejected_credentials_stop_the_run_with_exit_2 [gw13] [ 27%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[streamable-http-2025-11-25] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial002.py] tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[streamable-http-stateless-2025-11-25] [gw4] [ 27%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] [gw12] [ 27%] PASSED tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter [gw6] [ 27%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_audio_content_reaches_callback[in-memory-2025-11-25] tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[streamable-http-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_audio_content_reaches_callback[sse-2025-11-25] tests/docs_src/test_legacy_clients.py::test_a_legacy_session_is_minted_in_process_and_a_stray_session_id_is_a_404 [gw14] [ 27%] PASSED tests/docs_src/test_context.py::test_the_context_parameter_is_not_in_the_input_schema tests/docs_src/test_context.py::test_every_request_gets_its_own_context [gw0] [ 27%] PASSED tests/docs_src/test_tools.py::test_call_returns_text_and_structured_content [gw7] [ 27%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial002.py] [gw11] [ 27%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_cancel_returns_no_content[streamable-http-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_without_callback_is_error[in-memory-2025-11-25] [gw13] [ 27%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[streamable-http-stateless-2025-11-25] tests/docs_src/test_tools.py::test_default_value_makes_the_argument_optional tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[in-memory-2026-07-28] [gw10] [ 27%] PASSED tests/docs_src/test_pagination.py::test_an_invented_cursor_is_an_error [gw12] [ 27%] PASSED tests/docs_src/test_legacy_clients.py::test_a_legacy_session_is_minted_in_process_and_a_stray_session_id_is_a_404 tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial003.py] [gw13] [ 27%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[in-memory-2026-07-28] tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[streamable-http-2026-07-28] [gw11] [ 27%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_without_callback_is_error[in-memory-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_without_callback_is_error[sse-2025-11-25] tests/docs_src/test_progress.py::test_context_parameter_is_invisible_to_the_model tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default [gw0] [ 27%] PASSED tests/docs_src/test_tools.py::test_default_value_makes_the_argument_optional [gw12] [ 27%] PASSED tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default [gw14] [ 27%] PASSED tests/docs_src/test_context.py::test_every_request_gets_its_own_context tests/docs_src/test_context.py::test_a_tool_reads_the_servers_own_resource tests/docs_src/test_tools.py::test_field_constraints_land_in_the_schema [gw7] [ 27%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial003.py] [gw4] [ 27%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[streamable-http-2025-11-25] tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[streamable-http-stateless-2025-11-25] tests/docs_src/test_legacy_clients.py::test_stateless_http_never_mints_a_session tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial001.py] [gw6] [ 27%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_audio_content_reaches_callback[sse-2025-11-25] [gw0] [ 27%] PASSED tests/docs_src/test_tools.py::test_field_constraints_land_in_the_schema tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_audio_content_reaches_callback[streamable-http-2025-11-25] [gw3] [ 27%] PASSED tests/examples/test_stories.py::test_story[subscriptions-server_lowlevel-http-asgi-modern] [gw11] [ 27%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_without_callback_is_error[sse-2025-11-25] tests/docs_src/test_tools.py::test_constraint_violation_is_an_error_the_model_can_read tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_without_callback_is_error[streamable-http-2025-11-25] tests/examples/test_stories.py::test_story[schema_validators-server-in-memory-modern] [gw0] [ 27%] PASSED tests/docs_src/test_tools.py::test_constraint_violation_is_an_error_the_model_can_read [gw14] [ 27%] PASSED tests/docs_src/test_context.py::test_a_tool_reads_the_servers_own_resource [gw10] [ 27%] PASSED tests/docs_src/test_progress.py::test_context_parameter_is_invisible_to_the_model [gw12] [ 27%] PASSED tests/docs_src/test_legacy_clients.py::test_stateless_http_never_mints_a_session tests/docs_src/test_tools.py::test_pydantic_model_parameter [gw7] [ 27%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial001.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial002.py] tests/docs_src/test_context.py::test_a_context_only_tool_takes_no_arguments tests/docs_src/test_legacy_clients.py::test_stateless_http_kills_the_legacy_back_channel_and_only_the_legacy_one [gw13] [ 27%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_optional_fields_round_trip[streamable-http-2026-07-28] tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[in-memory-2025-11-25] [gw0] [ 27%] PASSED tests/docs_src/test_tools.py::test_pydantic_model_parameter tests/docs_src/test_progress.py::test_each_report_becomes_one_callback_invocation_in_order [gw8] [ 27%] PASSED tests/client/test_transport_stream_cleanup.py::test_sse_client_closes_all_streams_on_http_error tests/docs_src/test_tools.py::test_title_and_annotations [gw14] [ 27%] PASSED tests/docs_src/test_context.py::test_a_context_only_tool_takes_no_arguments [gw6] [ 27%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_audio_content_reaches_callback[streamable-http-2025-11-25] [gw4] [ 27%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[streamable-http-stateless-2025-11-25] [gw11] [ 27%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_without_callback_is_error[streamable-http-2025-11-25] tests/client/transports/test_memory.py::test_with_server tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[in-memory-2026-07-28] tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_delivers_url_and_returns_accept_without_content[in-memory-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_audio_content_returns_to_handler[in-memory-2025-11-25] [gw8] [ 27%] PASSED tests/client/transports/test_memory.py::test_with_server tests/docs_src/test_context.py::test_register_a_tool_at_runtime_and_notify_the_client [gw7] [ 27%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial003.py] tests/client/transports/test_memory.py::test_with_mcpserver [gw13] [ 27%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[in-memory-2025-11-25] [gw4] [ 27%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[in-memory-2026-07-28] [gw8] [ 27%] PASSED tests/client/transports/test_memory.py::test_with_mcpserver tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[sse-2025-11-25] [gw11] [ 27%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_delivers_url_and_returns_accept_without_content[in-memory-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_delivers_url_and_returns_accept_without_content[sse-2025-11-25] tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[streamable-http-2026-07-28] tests/client/transports/test_memory.py::test_server_is_running [gw0] [ 27%] PASSED tests/docs_src/test_tools.py::test_title_and_annotations tests/docs_src/test_troubleshooting.py::test_an_error_leaving_the_async_with_block_arrives_wrapped_in_an_exception_group [gw6] [ 27%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_audio_content_returns_to_handler[in-memory-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_audio_content_returns_to_handler[sse-2025-11-25] [gw10] [ 28%] PASSED tests/docs_src/test_progress.py::test_each_report_becomes_one_callback_invocation_in_order [gw7] [ 28%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial003.py] [gw9] [ 28%] PASSED tests/docs/test_translations.py::test_rejected_credentials_stop_the_run_with_exit_2 tests/docs/test_translations.py::test_jobs_keeps_that_many_pages_in_flight_and_publishes_each_before_starting_another [gw4] [ 28%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[streamable-http-2026-07-28] [gw13] [ 28%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[sse-2025-11-25] [gw8] [ 28%] PASSED tests/client/transports/test_memory.py::test_server_is_running [gw2] [ 28%] PASSED tests/interaction/auth/test_flow.py::test_an_unauthenticated_request_is_challenged_then_the_full_oauth_flow_connects tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial001.py] [gw0] [ 28%] PASSED tests/docs_src/test_troubleshooting.py::test_an_error_leaving_the_async_with_block_arrives_wrapped_in_an_exception_group tests/interaction/lowlevel/test_flows.py::test_a_tool_handler_chains_form_elicitations_feeding_each_answer_forward[in-memory-2025-11-25] tests/docs_src/test_progress.py::test_over_a_wire_dispatcher_callbacks_race_the_result tests/client/transports/test_memory.py::test_list_tools tests/docs_src/test_troubleshooting.py::test_the_same_error_caught_inside_the_block_is_the_bare_mcp_error tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[streamable-http-2025-11-25] [gw4] [ 28%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_tool_handler_chains_form_elicitations_feeding_each_answer_forward[in-memory-2025-11-25] [gw14] [ 28%] PASSED tests/docs_src/test_context.py::test_register_a_tool_at_runtime_and_notify_the_client tests/interaction/auth/test_flow.py::test_the_access_token_reaches_the_tool_handler_via_get_access_token [gw6] [ 28%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_audio_content_returns_to_handler[sse-2025-11-25] [gw0] [ 28%] PASSED tests/docs_src/test_troubleshooting.py::test_the_same_error_caught_inside_the_block_is_the_bare_mcp_error tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_audio_content_returns_to_handler[streamable-http-2025-11-25] tests/interaction/lowlevel/test_flows.py::test_a_tool_handler_chains_form_elicitations_feeding_each_answer_forward[sse-2025-11-25] [gw8] [ 28%] PASSED tests/client/transports/test_memory.py::test_list_tools [gw3] [ 28%] PASSED tests/examples/test_stories.py::test_story[schema_validators-server-in-memory-modern] tests/client/transports/test_memory.py::test_call_tool tests/examples/test_stories.py::test_story[schema_validators-server-in-memory-legacy] [gw7] [ 28%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial001.py] tests/docs_src/test_troubleshooting.py::test_a_client_outside_its_async_with_refuses_every_call [gw13] [ 28%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[streamable-http-2025-11-25] tests/docs_src/test_dependencies.py::test_the_resolver_fills_the_parameter_from_the_tools_own_argument tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[streamable-http-stateless-2025-11-25] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial002.py] [gw0] [ 28%] PASSED tests/docs_src/test_troubleshooting.py::test_a_client_outside_its_async_with_refuses_every_call [gw12] [ 28%] PASSED tests/docs_src/test_legacy_clients.py::test_stateless_http_kills_the_legacy_back_channel_and_only_the_legacy_one tests/docs_src/test_troubleshooting.py::test_a_failing_tool_returns_is_error_true_instead_of_raising [gw7] [ 28%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial001.py] [gw6] [ 28%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_audio_content_returns_to_handler[streamable-http-2025-11-25] tests/docs_src/test_legacy_clients.py::test_the_legacy_notification_verb_reaches_a_legacy_client tests/interaction/lowlevel/test_sampling.py::test_create_message_with_list_valued_message_content_reaches_callback[in-memory-2025-11-25] [gw14] [ 28%] PASSED tests/docs_src/test_dependencies.py::test_the_resolver_fills_the_parameter_from_the_tools_own_argument [gw7] [ 28%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial001.py] [gw13] [ 28%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[streamable-http-stateless-2025-11-25] [gw6] [ 28%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_list_valued_message_content_reaches_callback[in-memory-2025-11-25] [gw0] [ 28%] PASSED tests/docs_src/test_troubleshooting.py::test_a_failing_tool_returns_is_error_true_instead_of_raising [gw11] [ 28%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_delivers_url_and_returns_accept_without_content[sse-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_with_list_valued_message_content_reaches_callback[sse-2025-11-25] [gw10] [ 28%] PASSED tests/docs_src/test_progress.py::test_over_a_wire_dispatcher_callbacks_race_the_result tests/docs_src/test_dependencies.py::test_the_resolved_parameter_is_invisible_to_the_model tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[in-memory-2026-07-28] [gw12] [ 28%] PASSED tests/docs_src/test_legacy_clients.py::test_the_legacy_notification_verb_reaches_a_legacy_client [gw4] [ 28%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_tool_handler_chains_form_elicitations_feeding_each_answer_forward[sse-2025-11-25] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial002.py] tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_delivers_url_and_returns_accept_without_content[streamable-http-2025-11-25] tests/docs_src/test_troubleshooting.py::test_a_crashing_tool_is_the_bare_form_with_its_traceback_in_the_server_log tests/docs_src/test_progress.py::test_without_a_callback_report_progress_is_a_no_op tests/interaction/lowlevel/test_flows.py::test_a_tool_handler_chains_form_elicitations_feeding_each_answer_forward[streamable-http-2025-11-25] tests/docs_src/test_legacy_clients.py::test_calling_both_notification_verbs_is_safe_on_both_eras [gw13] [ 28%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[in-memory-2026-07-28] [gw7] [ 28%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial002.py] tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[streamable-http-2026-07-28] [gw14] [ 28%] PASSED tests/docs_src/test_dependencies.py::test_the_resolved_parameter_is_invisible_to_the_model [gw6] [ 28%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_list_valued_message_content_reaches_callback[sse-2025-11-25] tests/docs_src/test_dependencies.py::test_a_client_supplied_value_for_a_resolved_parameter_is_ignored [gw12] [ 28%] PASSED tests/docs_src/test_legacy_clients.py::test_calling_both_notification_verbs_is_safe_on_both_eras tests/interaction/lowlevel/test_sampling.py::test_create_message_with_list_valued_message_content_reaches_callback[streamable-http-2025-11-25] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial003.py] [gw13] [ 28%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_multiple_content_block_types[streamable-http-2026-07-28] tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[in-memory-2025-11-25] tests/docs_src/test_lifespan.py::test_lifespan_object_reaches_the_tool [gw10] [ 28%] PASSED tests/docs_src/test_progress.py::test_without_a_callback_report_progress_is_a_no_op [gw3] [ 28%] PASSED tests/examples/test_stories.py::test_story[schema_validators-server-in-memory-legacy] [gw14] [ 28%] PASSED tests/docs_src/test_dependencies.py::test_a_client_supplied_value_for_a_resolved_parameter_is_ignored [gw13] [ 28%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[in-memory-2025-11-25] tests/examples/test_stories.py::test_story[schema_validators-server-http-asgi-modern] tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[sse-2025-11-25] [gw7] [ 28%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial003.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial004.py] tests/docs_src/test_dependencies.py::test_a_resolver_can_depend_on_another_resolver tests/docs_src/test_progress.py::test_progress_callback_is_per_call_not_per_client [gw12] [ 28%] PASSED tests/docs_src/test_lifespan.py::test_lifespan_object_reaches_the_tool tests/docs_src/test_lifespan.py::test_context_parameter_never_reaches_the_input_schema [gw6] [ 28%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_list_valued_message_content_reaches_callback[streamable-http-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mismatched_tool_use_and_result_ids_is_rejected[in-memory-2025-11-25] [gw10] [ 28%] PASSED tests/docs_src/test_progress.py::test_progress_callback_is_per_call_not_per_client [gw14] [ 28%] PASSED tests/docs_src/test_dependencies.py::test_a_resolver_can_depend_on_another_resolver [gw12] [ 28%] PASSED tests/docs_src/test_lifespan.py::test_context_parameter_never_reaches_the_input_schema [gw6] [ 28%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mismatched_tool_use_and_result_ids_is_rejected[in-memory-2025-11-25] tests/docs_src/test_lifespan.py::test_startup_runs_before_the_first_request_and_shutdown_after_the_last tests/docs_src/test_dependencies.py::test_a_shared_dependency_runs_once_per_call tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mismatched_tool_use_and_result_ids_is_rejected[sse-2025-11-25] [gw4] [ 28%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_tool_handler_chains_form_elicitations_feeding_each_answer_forward[streamable-http-2025-11-25] tests/interaction/lowlevel/test_flows.py::test_a_tool_rejected_with_url_elicitation_required_succeeds_on_retry_after_completion[in-memory-2025-11-25] tests/docs_src/test_progress.py::test_omitting_total_reaches_the_callback_as_none [gw13] [ 28%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[sse-2025-11-25] [gw15] [ 28%] PASSED tests/docs_src/test_subscriptions.py::test_follow_board_prints_the_refetched_board_and_the_new_tool_list tests/docs_src/test_subscriptions.py::test_the_asyncio_watcher_runs_beside_the_main_flow [gw7] [ 28%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial004.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial001.py] [gw7] [ 28%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial001.py] [gw12] [ 28%] PASSED tests/docs_src/test_lifespan.py::test_startup_runs_before_the_first_request_and_shutdown_after_the_last [gw5] [ 28%] PASSED tests/client/test_stdio.py::test_spawn_failure_propagates_the_error_and_leaks_no_streams tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[streamable-http-2025-11-25] [gw14] [ 28%] PASSED tests/docs_src/test_dependencies.py::test_a_shared_dependency_runs_once_per_call tests/client/test_stdio.py::test_a_command_that_cannot_be_execed_raises_enoent [gw6] [ 28%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mismatched_tool_use_and_result_ids_is_rejected[sse-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mismatched_tool_use_and_result_ids_is_rejected[streamable-http-2025-11-25] tests/docs_src/test_dependencies.py::test_an_in_stock_order_asks_no_question[legacy] tests/docs_src/test_lifespan.py::test_bare_context_reaches_the_lifespan_object_in_resources_and_prompts [gw4] [ 28%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_tool_rejected_with_url_elicitation_required_succeeds_on_retry_after_completion[in-memory-2025-11-25] [gw9] [ 28%] PASSED tests/docs/test_translations.py::test_jobs_keeps_that_many_pages_in_flight_and_publishes_each_before_starting_another [gw10] [ 28%] PASSED tests/docs_src/test_progress.py::test_omitting_total_reaches_the_callback_as_none tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial002.py] tests/interaction/lowlevel/test_flows.py::test_a_tool_rejected_with_url_elicitation_required_succeeds_on_retry_after_completion[sse-2025-11-25] tests/docs/test_translations.py::test_rejected_credentials_keep_a_page_that_lands_from_the_same_flight tests/docs_src/test_prompts.py::test_function_becomes_the_prompt [gw15] [ 28%] PASSED tests/docs_src/test_subscriptions.py::test_the_asyncio_watcher_runs_beside_the_main_flow [gw2] [ 29%] PASSED tests/interaction/auth/test_flow.py::test_the_access_token_reaches_the_tool_handler_via_get_access_token tests/docs_src/test_subscriptions.py::test_the_trio_watcher_runs_beside_the_main_flow[trio] [gw14] [ 29%] PASSED tests/docs_src/test_dependencies.py::test_an_in_stock_order_asks_no_question[legacy] [gw7] [ 29%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial003.py] [gw0] [ 29%] PASSED tests/docs_src/test_troubleshooting.py::test_a_crashing_tool_is_the_bare_form_with_its_traceback_in_the_server_log tests/interaction/auth/test_flow.py::test_a_preregistered_client_skips_registration [gw6] [ 29%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mismatched_tool_use_and_result_ids_is_rejected[streamable-http-2025-11-25] [gw12] [ 29%] PASSED tests/docs_src/test_lifespan.py::test_bare_context_reaches_the_lifespan_object_in_resources_and_prompts tests/docs_src/test_lifespan.py::test_parameterized_context_reaches_the_lifespan_object_in_resources_and_prompts [gw11] [ 29%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_delivers_url_and_returns_accept_without_content[streamable-http-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_array_content_result_for_a_tool_free_request_surfaces_as_a_validation_error[in-memory-2025-11-25] tests/docs_src/test_troubleshooting.py::test_an_unknown_tool_is_the_same_kind_of_result tests/docs_src/test_dependencies.py::test_an_in_stock_order_asks_no_question[auto] [gw6] [ 29%] PASSED tests/interaction/lowlevel/test_sampling.py::test_array_content_result_for_a_tool_free_request_surfaces_as_a_validation_error[in-memory-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_array_content_result_for_a_tool_free_request_surfaces_as_a_validation_error[sse-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_decline_returns_no_content[in-memory-2025-11-25] [gw0] [ 29%] PASSED tests/docs_src/test_troubleshooting.py::test_an_unknown_tool_is_the_same_kind_of_result [gw7] [ 29%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial003.py] [gw13] [ 29%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[streamable-http-2025-11-25] [gw10] [ 29%] PASSED tests/docs_src/test_prompts.py::test_function_becomes_the_prompt tests/docs_src/test_prompts.py::test_returned_string_becomes_one_user_message tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial004.py] tests/docs_src/test_troubleshooting.py::test_the_tool_decorator_without_parentheses_raises_at_import_time [gw3] [ 29%] PASSED tests/examples/test_stories.py::test_story[schema_validators-server-http-asgi-modern] tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[streamable-http-stateless-2025-11-25] [gw14] [ 29%] PASSED tests/docs_src/test_dependencies.py::test_an_in_stock_order_asks_no_question[auto] tests/docs_src/test_dependencies.py::test_an_out_of_stock_order_asks_and_honours_the_answer[True-Backordered 'Neuromancer'; it ships in 2-3 weeks.-legacy] [gw4] [ 29%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_tool_rejected_with_url_elicitation_required_succeeds_on_retry_after_completion[sse-2025-11-25] tests/interaction/lowlevel/test_flows.py::test_a_tool_rejected_with_url_elicitation_required_succeeds_on_retry_after_completion[streamable-http-2025-11-25] tests/examples/test_stories.py::test_story[schema_validators-server-http-asgi-legacy] [gw6] [ 29%] PASSED tests/interaction/lowlevel/test_sampling.py::test_array_content_result_for_a_tool_free_request_surfaces_as_a_validation_error[sse-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_array_content_result_for_a_tool_free_request_surfaces_as_a_validation_error[streamable-http-2025-11-25] [gw0] [ 29%] PASSED tests/docs_src/test_troubleshooting.py::test_the_tool_decorator_without_parentheses_raises_at_import_time [gw7] [ 29%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial004.py] [gw12] [ 29%] PASSED tests/docs_src/test_lifespan.py::test_parameterized_context_reaches_the_lifespan_object_in_resources_and_prompts [gw11] [ 29%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_decline_returns_no_content[in-memory-2025-11-25] tests/docs_src/test_troubleshooting.py::test_an_invalid_x_mcp_header_annotation_raises_at_import_time tests/docs_src/test_lifespan.py::test_default_lifespan_yields_an_empty_dict tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial005.py] [gw10] [ 29%] PASSED tests/docs_src/test_prompts.py::test_returned_string_becomes_one_user_message tests/docs_src/test_prompts.py::test_missing_required_argument_is_a_protocol_error tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_decline_returns_no_content[sse-2025-11-25] [gw6] [ 29%] PASSED tests/interaction/lowlevel/test_sampling.py::test_array_content_result_for_a_tool_free_request_surfaces_as_a_validation_error[streamable-http-2025-11-25] [gw0] [ 29%] PASSED tests/docs_src/test_troubleshooting.py::test_an_invalid_x_mcp_header_annotation_raises_at_import_time [gw7] [ 29%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial005.py] tests/interaction/lowlevel/test_subscriptions.py::test_a_graceful_server_close_ends_iteration_after_buffered_events[in-memory-2026-07-28] tests/docs_src/test_troubleshooting.py::test_a_duplicate_tool_name_keeps_the_first_and_drops_the_second [gw14] [ 29%] PASSED tests/docs_src/test_dependencies.py::test_an_out_of_stock_order_asks_and_honours_the_answer[True-Backordered 'Neuromancer'; it ships in 2-3 weeks.-legacy] [gw12] [ 29%] PASSED tests/docs_src/test_lifespan.py::test_default_lifespan_yields_an_empty_dict [gw15] [ 29%] PASSED tests/docs_src/test_subscriptions.py::test_the_trio_watcher_runs_beside_the_main_flow[trio] [gw13] [ 29%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[in-memory-2026-07-28] [gw6] [ 29%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_a_graceful_server_close_ends_iteration_after_buffered_events[in-memory-2026-07-28] tests/docs_src/test_logging.py::test_the_tool_logs_through_the_standard_library tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial006.py] [gw13] [ 29%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[in-memory-2026-07-28] [gw0] [ 29%] PASSED tests/docs_src/test_troubleshooting.py::test_a_duplicate_tool_name_keeps_the_first_and_drops_the_second tests/interaction/lowlevel/test_subscriptions.py::test_a_graceful_server_close_ends_iteration_after_buffered_events[streamable-http-2026-07-28] tests/docs_src/test_subscriptions.py::test_the_anyio_watcher_runs_beside_the_main_flow tests/docs_src/test_dependencies.py::test_an_out_of_stock_order_asks_and_honours_the_answer[True-Backordered 'Neuromancer'; it ships in 2-3 weeks.-auto] tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[streamable-http-2026-07-28] [gw7] [ 29%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial006.py] [gw9] [ 29%] PASSED tests/docs/test_translations.py::test_rejected_credentials_keep_a_page_that_lands_from_the_same_flight tests/docs_src/test_troubleshooting.py::test_a_duplicate_registration_logs_tool_already_exists tests/docs/test_translations.py::test_rejected_credentials_with_pages_in_flight_start_no_further_page tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial007.py] [gw13] [ 29%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content[streamable-http-2026-07-28] tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[in-memory-2025-11-25] [gw6] [ 29%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_a_graceful_server_close_ends_iteration_after_buffered_events[streamable-http-2026-07-28] [gw12] [ 29%] PASSED tests/docs_src/test_logging.py::test_the_tool_logs_through_the_standard_library [gw7] [ 29%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial007.py] tests/docs_src/test_logging.py::test_the_log_line_never_reaches_the_client tests/interaction/lowlevel/test_subscriptions.py::test_a_stream_dropped_after_the_ack_raises_subscription_lost[in-memory-2026-07-28] [gw13] [ 29%] PASSED tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[in-memory-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[sse-2025-11-25] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial008.py] [gw2] [ 29%] PASSED tests/interaction/auth/test_flow.py::test_a_preregistered_client_skips_registration [gw12] [ 29%] PASSED tests/docs_src/test_logging.py::test_the_log_line_never_reaches_the_client tests/docs_src/test_logging.py::test_log_level_configures_the_root_logger [gw6] [ 29%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_a_stream_dropped_after_the_ack_raises_subscription_lost[in-memory-2026-07-28] [gw1] [ 29%] PASSED tests/examples/test_stories.py::test_story[lifespan-server-in-memory-modern] [gw7] [ 29%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial008.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial009.py] tests/interaction/auth/test_flow.py::test_the_dcr_request_carries_the_client_metadata [gw14] [ 29%] PASSED tests/docs_src/test_dependencies.py::test_an_out_of_stock_order_asks_and_honours_the_answer[True-Backordered 'Neuromancer'; it ships in 2-3 weeks.-auto] tests/docs_src/test_dependencies.py::test_an_out_of_stock_order_asks_and_honours_the_answer[False-No order placed.-legacy] [gw12] [ 29%] PASSED tests/docs_src/test_logging.py::test_log_level_configures_the_root_logger tests/docs_src/test_logging.py::test_an_existing_logging_configuration_wins tests/examples/test_stories.py::test_story[lifespan-server-in-memory-legacy] tests/interaction/lowlevel/test_subscriptions.py::test_a_stream_dropped_after_the_ack_raises_subscription_lost[streamable-http-2026-07-28] [gw12] [ 29%] PASSED tests/docs_src/test_logging.py::test_an_existing_logging_configuration_wins [gw4] [ 29%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_tool_rejected_with_url_elicitation_required_succeeds_on_retry_after_completion[streamable-http-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[in-memory-2025-11-25] [gw7] [ 29%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial009.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial001.py] tests/docs_src/test_lowlevel.py::test_the_input_schema_on_the_wire_is_the_dict_you_wrote [gw13] [ 29%] PASSED tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[sse-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[streamable-http-2025-11-25] [gw15] [ 29%] PASSED tests/docs_src/test_subscriptions.py::test_the_anyio_watcher_runs_beside_the_main_flow [gw6] [ 29%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_a_stream_dropped_after_the_ack_raises_subscription_lost[streamable-http-2026-07-28] [gw12] [ 29%] PASSED tests/docs_src/test_lowlevel.py::test_the_input_schema_on_the_wire_is_the_dict_you_wrote [gw9] [ 29%] PASSED tests/docs/test_translations.py::test_rejected_credentials_with_pages_in_flight_start_no_further_page tests/docs/test_translations.py::test_translate_without_lang_works_through_every_language_with_that_languages_own_prompt tests/docs_src/test_lowlevel.py::test_the_client_does_not_care_which_server_class_it_connects_to tests/interaction/lowlevel/test_subscriptions.py::test_the_subscription_id_is_the_listen_request_id_the_server_saw[in-memory-2026-07-28] [gw3] [ 29%] PASSED tests/examples/test_stories.py::test_story[schema_validators-server-http-asgi-legacy] [gw7] [ 29%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial001.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial002.py] tests/docs_src/test_subscriptions.py::test_the_follower_re_listens_after_the_stream_ends[trio-mockclock] [gw1] [ 29%] PASSED tests/examples/test_stories.py::test_story[lifespan-server-in-memory-legacy] [gw12] [ 29%] PASSED tests/docs_src/test_lowlevel.py::test_the_client_does_not_care_which_server_class_it_connects_to [gw0] [ 29%] PASSED tests/docs_src/test_troubleshooting.py::test_a_duplicate_registration_logs_tool_already_exists tests/examples/test_stories.py::test_story[lifespan-server-http-asgi-modern] tests/docs_src/test_troubleshooting.py::test_the_default_streamable_http_app_answers_a_real_hostname_with_421 tests/examples/test_stories.py::test_story[schema_validators-server_lowlevel-in-memory-modern] tests/docs_src/test_lowlevel.py::test_the_last_line_is_an_asgi_app_uvicorn_can_serve [gw4] [ 29%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[in-memory-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[sse-2025-11-25] [gw14] [ 30%] PASSED tests/docs_src/test_dependencies.py::test_an_out_of_stock_order_asks_and_honours_the_answer[False-No order placed.-legacy] [gw11] [ 30%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_decline_returns_no_content[sse-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_decline_returns_no_content[streamable-http-2025-11-25] [gw12] [ 30%] PASSED tests/docs_src/test_lowlevel.py::test_the_last_line_is_an_asgi_app_uvicorn_can_serve tests/docs_src/test_lowlevel.py::test_only_the_handlers_you_passed_become_capabilities [gw6] [ 30%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_the_subscription_id_is_the_listen_request_id_the_server_saw[in-memory-2026-07-28] tests/docs_src/test_dependencies.py::test_an_out_of_stock_order_asks_and_honours_the_answer[False-No order placed.-auto] [gw7] [ 30%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial002.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial003.py] [gw12] [ 30%] PASSED tests/docs_src/test_lowlevel.py::test_only_the_handlers_you_passed_become_capabilities tests/docs_src/test_lowlevel.py::test_arguments_are_not_validated_against_your_schema tests/interaction/lowlevel/test_subscriptions.py::test_the_subscription_id_is_the_listen_request_id_the_server_saw[streamable-http-2026-07-28] [gw7] [ 30%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial003.py] [gw13] [ 30%] PASSED tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[streamable-http-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[streamable-http-stateless-2025-11-25] [gw3] [ 30%] PASSED tests/examples/test_stories.py::test_story[schema_validators-server_lowlevel-in-memory-modern] [gw6] [ 30%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_the_subscription_id_is_the_listen_request_id_the_server_saw[streamable-http-2026-07-28] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_anyio.py] tests/examples/test_stories.py::test_story[schema_validators-server_lowlevel-in-memory-legacy] tests/interaction/lowlevel/test_subscriptions.py::test_concurrent_listen_streams_each_receive_their_own_ack[in-memory-2026-07-28] [gw15] [ 30%] PASSED tests/docs_src/test_subscriptions.py::test_the_follower_re_listens_after_the_stream_ends[trio-mockclock] [gw6] [ 30%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_concurrent_listen_streams_each_receive_their_own_ack[in-memory-2026-07-28] [gw14] [ 30%] PASSED tests/docs_src/test_dependencies.py::test_an_out_of_stock_order_asks_and_honours_the_answer[False-No order placed.-auto] [gw7] [ 30%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_anyio.py] [gw12] [ 30%] PASSED tests/docs_src/test_lowlevel.py::test_arguments_are_not_validated_against_your_schema [gw10] [ 30%] PASSED tests/docs_src/test_prompts.py::test_missing_required_argument_is_a_protocol_error tests/docs_src/test_prompts.py::test_message_list_becomes_a_multi_turn_template tests/interaction/lowlevel/test_subscriptions.py::test_concurrent_listen_streams_each_receive_their_own_ack[streamable-http-2026-07-28] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_asyncio.py] tests/docs_src/test_subscriptions.py::test_the_middleware_refuses_a_listen_the_caller_could_not_read [gw4] [ 30%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[sse-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[streamable-http-2025-11-25] tests/docs_src/test_lowlevel.py::test_one_handler_routes_every_tool [gw7] [ 30%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_asyncio.py] [gw3] [ 30%] PASSED tests/examples/test_stories.py::test_story[schema_validators-server_lowlevel-in-memory-legacy] tests/docs_src/test_dependencies.py::test_declining_an_unwrapped_dependency_aborts_the_call[legacy] tests/examples/test_stories.py::test_story[schema_validators-server_lowlevel-http-asgi-modern] [gw10] [ 30%] PASSED tests/docs_src/test_prompts.py::test_message_list_becomes_a_multi_turn_template [gw1] [ 30%] PASSED tests/examples/test_stories.py::test_story[lifespan-server-http-asgi-modern] tests/examples/test_stories.py::test_story[lifespan-server-http-asgi-legacy] tests/docs_src/test_prompts.py::test_title_and_argument_descriptions tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_trio.py] [gw12] [ 30%] PASSED tests/docs_src/test_lowlevel.py::test_one_handler_routes_every_tool [gw2] [ 30%] PASSED tests/interaction/auth/test_flow.py::test_the_dcr_request_carries_the_client_metadata tests/interaction/auth/test_flow.py::test_shimmed_app_serves_overrides_404s_and_otherwise_forwards_to_the_wrapped_app tests/docs_src/test_lowlevel.py::test_an_unknown_tool_name_becomes_a_protocol_error_not_a_tool_error [gw10] [ 30%] PASSED tests/docs_src/test_prompts.py::test_title_and_argument_descriptions [gw6] [ 30%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_concurrent_listen_streams_each_receive_their_own_ack[streamable-http-2026-07-28] [gw13] [ 30%] PASSED tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[streamable-http-stateless-2025-11-25] [gw7] [ 30%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_trio.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial005.py] [gw7] [ 30%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial005.py] [gw14] [ 30%] PASSED tests/docs_src/test_dependencies.py::test_declining_an_unwrapped_dependency_aborts_the_call[legacy] tests/docs_src/test_prompts.py::test_default_value_makes_the_argument_optional tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[in-memory-2026-07-28] tests/interaction/lowlevel/test_timeouts.py::test_request_timeout_fails_the_pending_call [gw15] [ 30%] PASSED tests/docs_src/test_subscriptions.py::test_the_middleware_refuses_a_listen_the_caller_could_not_read tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial006.py] [gw11] [ 30%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_decline_returns_no_content[streamable-http-2025-11-25] tests/docs_src/test_dependencies.py::test_declining_an_unwrapped_dependency_aborts_the_call[auto] tests/docs_src/test_subscriptions.py::test_a_publish_on_another_replica_never_reaches_the_stream [gw13] [ 30%] PASSED tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[in-memory-2026-07-28] [gw2] [ 30%] PASSED tests/interaction/auth/test_flow.py::test_shimmed_app_serves_overrides_404s_and_otherwise_forwards_to_the_wrapped_app tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[streamable-http-2026-07-28] [gw10] [ 30%] PASSED tests/docs_src/test_prompts.py::test_default_value_makes_the_argument_optional tests/docs_src/test_protocol_versions.py::test_auto_lands_on_the_modern_version [gw4] [ 30%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[streamable-http-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_cancel_returns_no_content[in-memory-2025-11-25] [gw6] [ 30%] PASSED tests/interaction/lowlevel/test_timeouts.py::test_request_timeout_fails_the_pending_call [gw0] [ 30%] PASSED tests/docs_src/test_troubleshooting.py::test_the_default_streamable_http_app_answers_a_real_hostname_with_421 tests/interaction/auth/test_identity_assertion.py::test_identity_assertion_obtains_a_token_and_authorizes_the_request tests/docs_src/test_troubleshooting.py::test_an_allowlisted_hostname_connects_and_calls_a_tool [gw7] [ 30%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial006.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial007.py] [gw10] [ 30%] PASSED tests/docs_src/test_protocol_versions.py::test_auto_lands_on_the_modern_version tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_timeouts.py::test_server_request_timeout_sends_cancellation_to_the_client [gw13] [ 30%] PASSED tests/interaction/lowlevel/test_tools.py::test_concurrent_tool_calls_complete_independently[streamable-http-2026-07-28] tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[in-memory-2025-11-25] [gw3] [ 30%] PASSED tests/examples/test_stories.py::test_story[schema_validators-server_lowlevel-http-asgi-modern] [gw7] [ 30%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial007.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/testing/tutorial001.py] [gw14] [ 30%] PASSED tests/docs_src/test_dependencies.py::test_declining_an_unwrapped_dependency_aborts_the_call[auto] tests/docs_src/test_protocol_versions.py::test_legacy_forces_the_initialize_handshake tests/docs_src/test_dependencies.py::test_a_resolver_can_sample_the_clients_llm[legacy] tests/examples/test_stories.py::test_story[schema_validators-server_lowlevel-http-asgi-legacy] [gw13] [ 30%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[in-memory-2025-11-25] [gw11] [ 30%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_cancel_returns_no_content[in-memory-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[sse-2025-11-25] [gw0] [ 30%] PASSED tests/docs_src/test_troubleshooting.py::test_an_allowlisted_hostname_connects_and_calls_a_tool [gw6] [ 30%] PASSED tests/interaction/lowlevel/test_timeouts.py::test_server_request_timeout_sends_cancellation_to_the_client [gw10] [ 30%] PASSED tests/docs_src/test_protocol_versions.py::test_legacy_forces_the_initialize_handshake tests/docs_src/test_troubleshooting.py::test_a_mounted_app_without_a_lifespan_fails_on_the_first_request [gw7] [ 30%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/testing/tutorial001.py] tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_cancel_returns_no_content[sse-2025-11-25] [gw0] [ 30%] PASSED tests/docs_src/test_troubleshooting.py::test_a_mounted_app_without_a_lifespan_fails_on_the_first_request tests/docs_src/test_troubleshooting.py::test_a_session_id_the_server_never_issued_gets_a_404_session_not_found tests/interaction/lowlevel/test_timeouts.py::test_session_serves_requests_after_timeout tests/docs_src/test_protocol_versions.py::test_version_pin_sends_nothing_and_knows_nothing tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial001.py] [gw0] [ 30%] PASSED tests/docs_src/test_troubleshooting.py::test_a_session_id_the_server_never_issued_gets_a_404_session_not_found [gw15] [ 30%] PASSED tests/docs_src/test_subscriptions.py::test_a_publish_on_another_replica_never_reaches_the_stream tests/docs_src/test_troubleshooting.py::test_ctx_elicit_at_2026_has_no_back_channel [gw7] [ 30%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial001.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial002.py] [gw1] [ 30%] PASSED tests/examples/test_stories.py::test_story[lifespan-server-http-asgi-legacy] [gw0] [ 30%] PASSED tests/docs_src/test_troubleshooting.py::test_ctx_elicit_at_2026_has_no_back_channel tests/docs_src/test_subscriptions.py::test_a_server_with_subscriptions_off_advertises_nothing_and_refuses_listen tests/docs_src/test_troubleshooting.py::test_an_elicitation_callback_does_not_fix_ctx_elicit_at_2026 [gw13] [ 30%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[sse-2025-11-25] [gw14] [ 30%] PASSED tests/docs_src/test_dependencies.py::test_a_resolver_can_sample_the_clients_llm[legacy] tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[streamable-http-2025-11-25] [gw7] [ 30%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial002.py] [gw0] [ 30%] PASSED tests/docs_src/test_troubleshooting.py::test_an_elicitation_callback_does_not_fix_ctx_elicit_at_2026 [gw10] [ 30%] PASSED tests/docs_src/test_protocol_versions.py::test_version_pin_sends_nothing_and_knows_nothing tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin tests/examples/test_stories.py::test_story[lifespan-server_lowlevel-in-memory-modern] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial003.py] [gw10] [ 31%] PASSED tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin [gw2] [ 31%] PASSED tests/interaction/auth/test_identity_assertion.py::test_identity_assertion_obtains_a_token_and_authorizes_the_request tests/docs_src/test_dependencies.py::test_a_resolver_can_sample_the_clients_llm[auto] tests/docs_src/test_troubleshooting.py::test_ctx_elicit_on_a_legacy_connection_works [gw0] [ 31%] PASSED tests/docs_src/test_troubleshooting.py::test_ctx_elicit_on_a_legacy_connection_works tests/docs_src/test_troubleshooting.py::test_the_resolver_form_works_on_a_2026_connection [gw6] [ 31%] PASSED tests/interaction/lowlevel/test_timeouts.py::test_session_serves_requests_after_timeout [gw7] [ 31%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial003.py] tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips [gw12] [ 31%] PASSED tests/docs_src/test_lowlevel.py::test_an_unknown_tool_name_becomes_a_protocol_error_not_a_tool_error tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial004.py] [gw13] [ 31%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[streamable-http-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[streamable-http-stateless-2025-11-25] [gw4] [ 31%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_timeouts.py::test_session_level_timeout_applies_to_every_request[trio-mockclock] tests/interaction/auth/test_identity_assertion.py::test_configured_scope_is_sent_regardless_of_server_advertised_scopes [gw10] [ 31%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips [gw1] [ 31%] PASSED tests/examples/test_stories.py::test_story[lifespan-server_lowlevel-in-memory-modern] [gw15] [ 31%] PASSED tests/docs_src/test_subscriptions.py::test_a_server_with_subscriptions_off_advertises_nothing_and_refuses_listen tests/docs_src/test_subscriptions.py::test_a_publishing_handler_runs_unchanged_with_subscriptions_off tests/docs_src/test_lowlevel.py::test_output_schema_and_structured_content_are_both_yours_to_build [gw0] [ 31%] PASSED tests/docs_src/test_troubleshooting.py::test_the_resolver_form_works_on_a_2026_connection tests/docs_src/test_troubleshooting.py::test_the_resolver_form_without_a_callback_names_the_missing_capability [gw7] [ 31%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial004.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial005.py] [gw7] [ 31%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial005.py] tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json [gw11] [ 31%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_cancel_returns_no_content[sse-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[in-memory-2025-11-25] tests/examples/test_stories.py::test_story[lifespan-server_lowlevel-in-memory-legacy] [gw0] [ 31%] PASSED tests/docs_src/test_troubleshooting.py::test_the_resolver_form_without_a_callback_names_the_missing_capability [gw10] [ 31%] PASSED tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json tests/docs_src/test_troubleshooting.py::test_a_legacy_ctx_elicit_without_a_callback_says_elicitation_not_supported [gw13] [ 31%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[in-memory-2026-07-28] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial001.py] [gw7] [ 31%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial001.py] [gw14] [ 31%] PASSED tests/docs_src/test_dependencies.py::test_a_resolver_can_sample_the_clients_llm[auto] tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_cancel_returns_no_content[streamable-http-2025-11-25] [gw15] [ 31%] PASSED tests/docs_src/test_subscriptions.py::test_a_publishing_handler_runs_unchanged_with_subscriptions_off [gw0] [ 31%] PASSED tests/docs_src/test_troubleshooting.py::test_a_legacy_ctx_elicit_without_a_callback_says_elicitation_not_supported tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial002.py] tests/docs_src/test_deploy.py::test_the_default_app_rejects_a_real_hostname_before_mcp_runs [gw13] [ 31%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[in-memory-2026-07-28] tests/docs_src/test_troubleshooting.py::test_ctx_elicit_over_stateless_http_has_no_back_channel [gw6] [ 31%] PASSED tests/interaction/lowlevel/test_timeouts.py::test_session_level_timeout_applies_to_every_request[trio-mockclock] tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[streamable-http-2026-07-28] [gw7] [ 31%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial002.py] tests/docs_src/test_subscriptions.py::test_subscriptions_off_changes_nothing_for_an_earlier_protocol_version [gw12] [ 31%] PASSED tests/docs_src/test_lowlevel.py::test_output_schema_and_structured_content_are_both_yours_to_build [gw1] [ 31%] PASSED tests/examples/test_stories.py::test_story[lifespan-server_lowlevel-in-memory-legacy] [gw10] [ 31%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[in-memory-2025-11-25] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial003.py] [gw7] [ 31%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial003.py] tests/docs_src/test_lowlevel.py::test_the_client_checks_the_schema_you_promised tests/examples/test_stories.py::test_story[lifespan-server_lowlevel-http-asgi-modern] tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered [gw13] [ 31%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_structured_content_violating_output_schema_is_rejected_by_the_client[streamable-http-2026-07-28] [gw4] [ 31%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[in-memory-2025-11-25] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial004.py] [gw0] [ 31%] PASSED tests/docs_src/test_troubleshooting.py::test_ctx_elicit_over_stateless_http_has_no_back_channel tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[in-memory-2025-11-25] tests/docs_src/test_troubleshooting.py::test_a_request_state_the_server_did_not_mint_is_rejected [gw6] [ 31%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[in-memory-2025-11-25] [gw13] [ 31%] PASSED tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[in-memory-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[sse-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[sse-2025-11-25] [gw10] [ 31%] PASSED tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered [gw11] [ 31%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_cancel_returns_no_content[streamable-http-2025-11-25] [gw7] [ 31%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial004.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial005.py] tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_notification_carries_the_elicited_id_back_to_the_client[in-memory-2025-11-25] [gw12] [ 31%] PASSED tests/docs_src/test_lowlevel.py::test_the_client_checks_the_schema_you_promised tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[sse-2025-11-25] tests/docs_src/test_lowlevel.py::test_meta_reaches_the_client_application [gw3] [ 31%] PASSED tests/examples/test_stories.py::test_story[schema_validators-server_lowlevel-http-asgi-legacy] [gw7] [ 31%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial005.py] [gw11] [ 31%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_notification_carries_the_elicited_id_back_to_the_client[in-memory-2025-11-25] tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it [gw13] [ 31%] PASSED tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[sse-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_notification_carries_the_elicited_id_back_to_the_client[sse-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[streamable-http-2025-11-25] tests/examples/test_stories.py::test_story[middleware-server-in-memory-modern] [gw1] [ 31%] PASSED tests/examples/test_stories.py::test_story[lifespan-server_lowlevel-http-asgi-modern] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial006.py] [gw12] [ 31%] PASSED tests/docs_src/test_lowlevel.py::test_meta_reaches_the_client_application [gw2] [ 31%] PASSED tests/interaction/auth/test_identity_assertion.py::test_configured_scope_is_sent_regardless_of_server_advertised_scopes tests/interaction/auth/test_identity_assertion.py::test_assertion_callback_receives_issuer_audience_and_resource tests/examples/test_stories.py::test_story[lifespan-server_lowlevel-http-asgi-legacy] [gw15] [ 31%] PASSED tests/docs_src/test_subscriptions.py::test_subscriptions_off_changes_nothing_for_an_earlier_protocol_version [gw7] [ 31%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial006.py] tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial007.py] [gw10] [ 31%] PASSED tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it [gw0] [ 31%] PASSED tests/docs_src/test_troubleshooting.py::test_a_request_state_the_server_did_not_mint_is_rejected tests/docs_src/test_testing.py::test_call_add_tool tests/docs_src/test_lowlevel.py::test_the_lifespan_object_reaches_every_handler_with_its_type tests/docs_src/test_troubleshooting.py::test_a_short_request_state_key_is_rejected_at_construction tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context [gw7] [ 31%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial007.py] [gw0] [ 31%] PASSED tests/docs_src/test_troubleshooting.py::test_a_short_request_state_key_is_rejected_at_construction [gw11] [ 31%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_notification_carries_the_elicited_id_back_to_the_client[sse-2025-11-25] tests/docs_src/test_uri_templates.py::test_simple_expansion_maps_the_segment_to_the_argument [gw12] [ 31%] PASSED tests/docs_src/test_lowlevel.py::test_the_lifespan_object_reaches_every_handler_with_its_type tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_notification_carries_the_elicited_id_back_to_the_client[streamable-http-2025-11-25] [gw13] [ 31%] PASSED tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[streamable-http-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_list_static_and_templated_resources[in-memory-2025-11-25] tests/docs_src/test_lowlevel.py::test_add_request_handler_registers_a_method_the_constructor_does_not_know [gw12] [ 31%] PASSED tests/docs_src/test_lowlevel.py::test_add_request_handler_registers_a_method_the_constructor_does_not_know [gw3] [ 31%] PASSED tests/examples/test_stories.py::test_story[middleware-server-in-memory-modern] [gw2] [ 31%] PASSED tests/interaction/auth/test_identity_assertion.py::test_assertion_callback_receives_issuer_audience_and_resource tests/docs_src/test_lowlevel.py::test_a_custom_method_never_changes_the_advertised_capabilities [gw15] [ 31%] PASSED tests/docs_src/test_testing.py::test_call_add_tool tests/interaction/auth/test_identity_assertion.py::test_unexpected_issuer_aborts_before_sending_credentials [gw12] [ 31%] PASSED tests/docs_src/test_lowlevel.py::test_a_custom_method_never_changes_the_advertised_capabilities [gw10] [ 32%] PASSED tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context tests/docs_src/test_lowlevel.py::test_initialize_is_reserved tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource [gw12] [ 32%] PASSED tests/docs_src/test_lowlevel.py::test_initialize_is_reserved [gw0] [ 32%] PASSED tests/docs_src/test_uri_templates.py::test_simple_expansion_maps_the_segment_to_the_argument tests/docs_src/test_uri_templates.py::test_an_int_parameter_is_converted_from_the_uri_string tests/interaction/lowlevel/test_resources.py::test_subscribe_resource_delivers_uri_to_handler[sse-2025-11-25] [gw2] [ 32%] PASSED tests/interaction/auth/test_identity_assertion.py::test_unexpected_issuer_aborts_before_sending_credentials tests/examples/test_stories.py::test_story[middleware-server-in-memory-legacy] tests/docs_src/test_tools.py::test_signature_becomes_the_schema [gw13] [ 32%] PASSED tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[streamable-http-stateless-2025-11-25] tests/interaction/auth/test_identity_assertion.py::test_identity_assertion_is_rejected_when_disabled_on_the_server [gw7] [ 32%] PASSED tests/interaction/mcpserver/test_resources.py::test_list_static_and_templated_resources[in-memory-2025-11-25] [gw11] [ 32%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_notification_carries_the_elicited_id_back_to_the_client[streamable-http-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[in-memory-2026-07-28] [gw13] [ 32%] PASSED tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[in-memory-2026-07-28] tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[streamable-http-2026-07-28] tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[in-memory-2025-11-25] [gw11] [ 32%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[in-memory-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[sse-2025-11-25] [gw11] [ 32%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[sse-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[streamable-http-2025-11-25] [gw10] [ 32%] PASSED tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text [gw14] [ 32%] PASSED tests/docs_src/test_deploy.py::test_the_default_app_rejects_a_real_hostname_before_mcp_runs tests/docs_src/test_deploy.py::test_the_allowlisted_app_serves_its_hostname_and_still_rejects_others [gw2] [ 32%] PASSED tests/interaction/auth/test_identity_assertion.py::test_identity_assertion_is_rejected_when_disabled_on_the_server tests/interaction/auth/test_identity_assertion.py::test_a_rejected_assertion_aborts_the_flow [gw2] [ 32%] PASSED tests/interaction/auth/test_identity_assertion.py::test_a_rejected_assertion_aborts_the_flow tests/interaction/auth/test_identity_assertion.py::test_metadata_advertises_jwt_bearer_grant_and_id_jag_profile [gw2] [ 32%] PASSED tests/interaction/auth/test_identity_assertion.py::test_metadata_advertises_jwt_bearer_grant_and_id_jag_profile tests/interaction/auth/test_lifecycle.py::test_an_expired_access_token_is_transparently_refreshed_before_the_next_request [gw12] [ 32%] PASSED tests/interaction/lowlevel/test_resources.py::test_subscribe_resource_delivers_uri_to_handler[sse-2025-11-25] tests/interaction/lowlevel/test_resources.py::test_subscribe_resource_delivers_uri_to_handler[streamable-http-2025-11-25] [gw1] [ 32%] PASSED tests/examples/test_stories.py::test_story[lifespan-server_lowlevel-http-asgi-legacy] tests/examples/test_stories.py::test_story[dual_era-server-in-memory-in-body] [gw4] [ 32%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[sse-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[streamable-http-2025-11-25] [gw9] [ 32%] PASSED tests/docs/test_translations.py::test_translate_without_lang_works_through_every_language_with_that_languages_own_prompt [gw15] [ 32%] PASSED tests/docs_src/test_tools.py::test_signature_becomes_the_schema tests/interaction/auth/test_login_time.py::test_a_read_timeout_shorter_than_the_login_does_not_fail_the_challenged_request[2026-07-28-trio-mockclock] [gw5] [ 32%] PASSED tests/client/test_stdio.py::test_a_command_that_cannot_be_execed_raises_enoent tests/client/test_stdio.py::test_cancellation_during_windows_command_resolution_returns_before_resolution_finishes [gw0] [ 32%] PASSED tests/docs_src/test_uri_templates.py::test_an_int_parameter_is_converted_from_the_uri_string tests/docs_src/test_uri_templates.py::test_plus_keeps_the_slashes_in_the_captured_value [gw0] [ 32%] PASSED tests/docs_src/test_uri_templates.py::test_plus_keeps_the_slashes_in_the_captured_value tests/docs_src/test_uri_templates.py::test_omitted_query_params_fall_through_to_function_defaults [gw0] [ 32%] PASSED tests/docs_src/test_uri_templates.py::test_omitted_query_params_fall_through_to_function_defaults tests/docs_src/test_uri_templates.py::test_a_query_param_overrides_only_the_default_it_names [gw0] [ 32%] PASSED tests/docs_src/test_uri_templates.py::test_a_query_param_overrides_only_the_default_it_names tests/docs_src/test_uri_templates.py::test_exploded_path_arrives_as_a_list_of_segments [gw12] [ 32%] PASSED tests/interaction/lowlevel/test_resources.py::test_subscribe_resource_delivers_uri_to_handler[streamable-http-2025-11-25] [gw3] [ 32%] PASSED tests/examples/test_stories.py::test_story[middleware-server-in-memory-legacy] tests/examples/test_stories.py::test_story[middleware-server-http-asgi-modern] tests/docs/test_translations.py::test_repair_turn_feeds_the_findings_back_and_accepts_the_fixed_reply tests/interaction/lowlevel/test_resources.py::test_subscribe_resource_delivers_uri_to_handler[streamable-http-stateless-2025-11-25] [gw13] [ 32%] PASSED tests/interaction/lowlevel/test_tools.py::test_is_error_result_bypasses_client_output_schema_validation[streamable-http-2026-07-28] [gw0] [ 32%] PASSED tests/docs_src/test_uri_templates.py::test_exploded_path_arrives_as_a_list_of_segments tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[in-memory-2025-11-25] [gw5] [ 32%] PASSED tests/client/test_stdio.py::test_cancellation_during_windows_command_resolution_returns_before_resolution_finishes tests/client/test_stdio.py::test_cancellation_during_spawn_leaks_no_streams [gw10] [ 32%] PASSED tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources tests/interaction/mcpserver/test_resources.py::test_list_static_and_templated_resources[sse-2025-11-25] [gw13] [ 32%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[in-memory-2025-11-25] [gw11] [ 32%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[streamable-http-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[sse-2025-11-25] [gw12] [ 32%] PASSED tests/interaction/lowlevel/test_resources.py::test_subscribe_resource_delivers_uri_to_handler[streamable-http-stateless-2025-11-25] tests/docs_src/test_uri_templates.py::test_two_adjacent_variables_are_rejected_at_parse_time [gw0] [ 32%] PASSED tests/docs_src/test_uri_templates.py::test_two_adjacent_variables_are_rejected_at_parse_time tests/docs_src/test_uri_templates.py::test_a_self_delimiting_operator_supplies_the_separator [gw0] [ 32%] PASSED tests/docs_src/test_uri_templates.py::test_a_self_delimiting_operator_supplies_the_separator [gw10] [ 32%] PASSED tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources tests/interaction/lowlevel/test_resources.py::test_subscribe_without_a_subscribe_handler_is_method_not_found[in-memory-2025-11-25] tests/docs_src/test_uri_templates.py::test_a_second_multi_segment_variable_is_rejected_at_parse_time tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder [gw2] [ 32%] PASSED tests/interaction/auth/test_lifecycle.py::test_an_expired_access_token_is_transparently_refreshed_before_the_next_request [gw1] [ 32%] PASSED tests/examples/test_stories.py::test_story[dual_era-server-in-memory-in-body] [gw12] [ 32%] PASSED tests/interaction/lowlevel/test_resources.py::test_subscribe_without_a_subscribe_handler_is_method_not_found[in-memory-2025-11-25] [gw0] [ 32%] PASSED tests/docs_src/test_uri_templates.py::test_a_second_multi_segment_variable_is_rejected_at_parse_time tests/interaction/lowlevel/test_resources.py::test_subscribe_without_a_subscribe_handler_is_method_not_found[sse-2025-11-25] tests/docs_src/test_uri_templates.py::test_a_query_parameter_without_a_python_default_is_rejected_at_decoration_time tests/interaction/auth/test_lifecycle.py::test_a_refreshed_access_token_is_still_accepted_when_the_server_validates_token_resource [gw11] [ 32%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[streamable-http-stateless-2025-11-25] [gw13] [ 32%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[sse-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_schema_with_every_primitive_and_enum_type_reaches_the_callback_as_sent[in-memory-2025-11-25] [gw10] [ 32%] PASSED tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-2025-11-25] tests/examples/test_stories.py::test_story[dual_era-server-http-asgi-in-body] [gw0] [ 32%] PASSED tests/docs_src/test_uri_templates.py::test_a_query_parameter_without_a_python_default_is_rejected_at_decoration_time tests/docs_src/test_uri_templates.py::test_traversal_is_rejected_before_the_handler_runs tests/docs_src/test_resources.py::test_uri_params_must_match_function_params [gw11] [ 32%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_schema_with_every_primitive_and_enum_type_reaches_the_callback_as_sent[in-memory-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_schema_with_every_primitive_and_enum_type_reaches_the_callback_as_sent[sse-2025-11-25] [gw0] [ 32%] PASSED tests/docs_src/test_uri_templates.py::test_traversal_is_rejected_before_the_handler_runs [gw3] [ 32%] PASSED tests/examples/test_stories.py::test_story[middleware-server-http-asgi-modern] [gw10] [ 32%] PASSED tests/docs_src/test_resources.py::test_uri_params_must_match_function_params tests/docs_src/test_uri_templates.py::test_dotdot_is_a_component_check_not_a_substring_scan [gw15] [ 32%] PASSED tests/interaction/auth/test_login_time.py::test_a_read_timeout_shorter_than_the_login_does_not_fail_the_challenged_request[2026-07-28-trio-mockclock] [gw12] [ 32%] PASSED tests/interaction/lowlevel/test_resources.py::test_subscribe_without_a_subscribe_handler_is_method_not_found[sse-2025-11-25] tests/interaction/lowlevel/test_resources.py::test_subscribe_without_a_subscribe_handler_is_method_not_found[streamable-http-2025-11-25] [gw2] [ 32%] PASSED tests/interaction/auth/test_lifecycle.py::test_a_refreshed_access_token_is_still_accepted_when_the_server_validates_token_resource tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare tests/examples/test_stories.py::test_story[middleware-server-http-asgi-legacy] [gw13] [ 32%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-2025-11-25] tests/interaction/auth/test_lifecycle.py::test_a_403_insufficient_scope_triggers_one_reauthorize_with_the_challenged_scope tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-stateless-2025-11-25] [gw0] [ 32%] PASSED tests/docs_src/test_uri_templates.py::test_dotdot_is_a_component_check_not_a_substring_scan tests/docs_src/test_uri_templates.py::test_safe_join_serves_a_file_inside_the_base_directory tests/interaction/auth/test_login_time.py::test_an_authorization_server_that_hangs_still_times_the_request_out[/register-0-5.0-trio-mockclock] [gw7] [ 32%] PASSED tests/interaction/mcpserver/test_resources.py::test_list_static_and_templated_resources[sse-2025-11-25] [gw11] [ 32%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_schema_with_every_primitive_and_enum_type_reaches_the_callback_as_sent[sse-2025-11-25] [gw10] [ 32%] PASSED tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare tests/docs_src/test_resources.py::test_str_return_is_sent_as_is tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_schema_with_every_primitive_and_enum_type_reaches_the_callback_as_sent[streamable-http-2025-11-25] [gw12] [ 32%] PASSED tests/interaction/lowlevel/test_resources.py::test_subscribe_without_a_subscribe_handler_is_method_not_found[streamable-http-2025-11-25] [gw13] [ 32%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-stateless-2025-11-25] [gw14] [ 33%] PASSED tests/docs_src/test_deploy.py::test_the_allowlisted_app_serves_its_hostname_and_still_rejects_others tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[in-memory-2026-07-28] tests/interaction/lowlevel/test_resources.py::test_subscribe_without_a_subscribe_handler_is_method_not_found[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_list_static_and_templated_resources[streamable-http-2025-11-25] tests/docs_src/test_deploy.py::test_a_retry_that_reaches_a_different_worker_is_rejected_by_default [gw13] [ 33%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[in-memory-2026-07-28] [gw10] [ 33%] PASSED tests/docs_src/test_resources.py::test_str_return_is_sent_as_is [gw4] [ 33%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[streamable-http-2025-11-25] [gw2] [ 33%] PASSED tests/interaction/auth/test_lifecycle.py::test_a_403_insufficient_scope_triggers_one_reauthorize_with_the_challenged_scope tests/interaction/mcpserver/test_extensions.py::test_claimed_result_is_finished_by_the_owning_extensions_resolver[in-memory-2026-07-28] tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[streamable-http-stateless-2025-11-25] tests/interaction/auth/test_lifecycle.py::test_a_403_step_up_re_authorizes_with_the_union_of_prior_and_challenged_scopes [gw12] [ 33%] PASSED tests/interaction/lowlevel/test_resources.py::test_subscribe_without_a_subscribe_handler_is_method_not_found[streamable-http-stateless-2025-11-25] tests/docs_src/test_resources.py::test_dict_return_becomes_json_text [gw11] [ 33%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_schema_with_every_primitive_and_enum_type_reaches_the_callback_as_sent[streamable-http-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_with_a_nested_schema_is_forwarded_unchanged[in-memory-2025-11-25] tests/interaction/lowlevel/test_resources.py::test_unsubscribe_resource_delivers_uri_to_handler[in-memory-2025-11-25] [gw12] [ 33%] PASSED tests/interaction/lowlevel/test_resources.py::test_unsubscribe_resource_delivers_uri_to_handler[in-memory-2025-11-25] [gw15] [ 33%] PASSED tests/interaction/auth/test_login_time.py::test_an_authorization_server_that_hangs_still_times_the_request_out[/register-0-5.0-trio-mockclock] tests/interaction/lowlevel/test_resources.py::test_unsubscribe_resource_delivers_uri_to_handler[sse-2025-11-25] [gw10] [ 33%] PASSED tests/docs_src/test_resources.py::test_dict_return_becomes_json_text [gw13] [ 33%] PASSED tests/interaction/mcpserver/test_extensions.py::test_claimed_result_is_finished_by_the_owning_extensions_resolver[in-memory-2026-07-28] tests/interaction/auth/test_login_time.py::test_an_authorization_server_that_hangs_still_times_the_request_out[/token-1-3605.0-trio-mockclock] tests/interaction/mcpserver/test_extensions.py::test_claimed_result_is_finished_by_the_owning_extensions_resolver[streamable-http-2026-07-28] tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob [gw11] [ 33%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_with_a_nested_schema_is_forwarded_unchanged[in-memory-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_with_a_nested_schema_is_forwarded_unchanged[sse-2025-11-25] [gw2] [ 33%] PASSED tests/interaction/auth/test_lifecycle.py::test_a_403_step_up_re_authorizes_with_the_union_of_prior_and_challenged_scopes tests/interaction/auth/test_lifecycle.py::test_credentials_bound_to_a_different_issuer_are_discarded_and_the_client_re_registers [gw12] [ 33%] PASSED tests/interaction/lowlevel/test_resources.py::test_unsubscribe_resource_delivers_uri_to_handler[sse-2025-11-25] [gw10] [ 33%] PASSED tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob tests/interaction/lowlevel/test_resources.py::test_unsubscribe_resource_delivers_uri_to_handler[streamable-http-2025-11-25] tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server [gw1] [ 33%] PASSED tests/examples/test_stories.py::test_story[dual_era-server-http-asgi-in-body] [gw11] [ 33%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_with_a_nested_schema_is_forwarded_unchanged[sse-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_with_a_nested_schema_is_forwarded_unchanged[streamable-http-2025-11-25] [gw3] [ 33%] PASSED tests/examples/test_stories.py::test_story[middleware-server-http-asgi-legacy] [gw12] [ 33%] PASSED tests/interaction/lowlevel/test_resources.py::test_unsubscribe_resource_delivers_uri_to_handler[streamable-http-2025-11-25] [gw0] [ 33%] PASSED tests/docs_src/test_uri_templates.py::test_safe_join_serves_a_file_inside_the_base_directory tests/interaction/lowlevel/test_resources.py::test_unsubscribe_resource_delivers_uri_to_handler[streamable-http-stateless-2025-11-25] [gw13] [ 33%] PASSED tests/interaction/mcpserver/test_extensions.py::test_claimed_result_is_finished_by_the_owning_extensions_resolver[streamable-http-2026-07-28] tests/examples/test_stories.py::test_story[dual_era-server_lowlevel-in-memory-in-body] [gw14] [ 33%] PASSED tests/docs_src/test_deploy.py::test_a_retry_that_reaches_a_different_worker_is_rejected_by_default tests/docs_src/test_uri_templates.py::test_a_missing_manual_is_resource_not_found tests/docs_src/test_deploy.py::test_a_refund_the_human_declined_is_not_issued [gw10] [ 33%] PASSED tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server tests/examples/test_stories.py::test_story[parallel_calls-server-in-memory-modern] tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is [gw7] [ 33%] PASSED tests/interaction/mcpserver/test_resources.py::test_list_static_and_templated_resources[streamable-http-2025-11-25] [gw15] [ 33%] PASSED tests/interaction/auth/test_login_time.py::test_an_authorization_server_that_hangs_still_times_the_request_out[/token-1-3605.0-trio-mockclock] [gw0] [ 33%] PASSED tests/docs_src/test_uri_templates.py::test_a_missing_manual_is_resource_not_found tests/interaction/auth/test_login_time.py::test_cancelling_the_caller_mid_login_abandons_the_login[trio-mockclock] tests/interaction/mcpserver/test_extensions.py::test_claimed_shape_fails_validation_for_a_client_without_the_extension[in-memory-2026-07-28] tests/docs_src/test_uri_templates.py::test_safe_join_raises_when_the_resolved_path_escapes_the_base tests/interaction/mcpserver/test_resources.py::test_list_static_and_templated_resources[streamable-http-stateless-2025-11-25] [gw14] [ 33%] PASSED tests/docs_src/test_deploy.py::test_a_refund_the_human_declined_is_not_issued [gw0] [ 33%] PASSED tests/docs_src/test_uri_templates.py::test_safe_join_raises_when_the_resolved_path_escapes_the_base [gw12] [ 33%] PASSED tests/interaction/lowlevel/test_resources.py::test_unsubscribe_resource_delivers_uri_to_handler[streamable-http-stateless-2025-11-25] tests/docs_src/test_deploy.py::test_a_shared_key_and_name_let_any_worker_finish_a_round_trip tests/docs_src/test_uri_templates.py::test_exempt_params_lets_an_absolute_path_through [gw11] [ 33%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_with_a_nested_schema_is_forwarded_unchanged[streamable-http-2025-11-25] [gw13] [ 33%] PASSED tests/interaction/mcpserver/test_extensions.py::test_claimed_shape_fails_validation_for_a_client_without_the_extension[in-memory-2026-07-28] [gw4] [ 33%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[in-memory-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_accepted_elicitation_content_that_violates_the_schema_reaches_the_handler_unchanged[in-memory-2025-11-25] tests/interaction/lowlevel/test_resources.py::test_resource_updated_notification_reaches_client[in-memory-2025-11-25] [gw10] [ 33%] PASSED tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is [gw0] [ 33%] PASSED tests/docs_src/test_uri_templates.py::test_exempt_params_lets_an_absolute_path_through tests/interaction/mcpserver/test_extensions.py::test_claimed_shape_fails_validation_for_a_client_without_the_extension[streamable-http-2026-07-28] [gw12] [ 33%] PASSED tests/interaction/lowlevel/test_resources.py::test_resource_updated_notification_reaches_client[in-memory-2025-11-25] tests/docs_src/test_uri_templates.py::test_server_wide_resource_security_relaxes_every_resource tests/interaction/lowlevel/test_resources.py::test_resource_updated_notification_reaches_client[sse-2025-11-25] [gw11] [ 33%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_accepted_elicitation_content_that_violates_the_schema_reaches_the_handler_unchanged[in-memory-2025-11-25] [gw1] [ 33%] PASSED tests/examples/test_stories.py::test_story[dual_era-server_lowlevel-in-memory-in-body] tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options [gw4] [ 33%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[in-memory-2025-11-25] [gw14] [ 33%] PASSED tests/docs_src/test_deploy.py::test_a_shared_key_and_name_let_any_worker_finish_a_round_trip tests/interaction/lowlevel/test_elicitation.py::test_accepted_elicitation_content_that_violates_the_schema_reaches_the_handler_unchanged[sse-2025-11-25] [gw2] [ 33%] PASSED tests/interaction/auth/test_lifecycle.py::test_credentials_bound_to_a_different_issuer_are_discarded_and_the_client_re_registers tests/docs_src/test_deploy.py::test_a_shared_key_is_not_enough_without_a_shared_name [gw0] [ 33%] PASSED tests/docs_src/test_uri_templates.py::test_server_wide_resource_security_relaxes_every_resource [gw10] [ 33%] PASSED tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options tests/interaction/auth/test_lifecycle.py::test_a_second_401_after_a_completed_oauth_flow_surfaces_without_looping tests/docs_src/test_uri_templates.py::test_lowlevel_static_dispatch_lists_and_reads_by_exact_uri tests/examples/test_stories.py::test_story[dual_era-server_lowlevel-http-asgi-in-body] tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings [gw10] [ 33%] PASSED tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings [gw0] [ 33%] PASSED tests/docs_src/test_uri_templates.py::test_lowlevel_static_dispatch_lists_and_reads_by_exact_uri tests/docs_src/test_uri_templates.py::test_lowlevel_unknown_uri_raises [gw12] [ 33%] PASSED tests/interaction/lowlevel/test_resources.py::test_resource_updated_notification_reaches_client[sse-2025-11-25] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[oauth] tests/interaction/lowlevel/test_resources.py::test_resource_updated_notification_reaches_client[streamable-http-2025-11-25] [gw15] [ 33%] PASSED tests/interaction/auth/test_login_time.py::test_cancelling_the_caller_mid_login_abandons_the_login[trio-mockclock] tests/interaction/auth/test_login_time.py::test_a_login_suspends_only_the_timeout_of_the_request_that_was_challenged[trio-mockclock] [gw13] [ 33%] PASSED tests/interaction/mcpserver/test_extensions.py::test_claimed_shape_fails_validation_for_a_client_without_the_extension[streamable-http-2026-07-28] tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[sse-2025-11-25] [gw11] [ 33%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_accepted_elicitation_content_that_violates_the_schema_reaches_the_handler_unchanged[sse-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_accepted_elicitation_content_that_violates_the_schema_reaches_the_handler_unchanged[streamable-http-2025-11-25] tests/interaction/mcpserver/test_extensions.py::test_per_request_ad_carries_settings_and_gates_the_claimed_substitution[in-memory-2026-07-28] [gw3] [ 33%] PASSED tests/examples/test_stories.py::test_story[parallel_calls-server-in-memory-modern] [gw9] [ 33%] PASSED tests/docs/test_translations.py::test_repair_turn_feeds_the_findings_back_and_accepts_the_fixed_reply [gw2] [ 33%] PASSED tests/interaction/auth/test_lifecycle.py::test_a_second_401_after_a_completed_oauth_flow_surfaces_without_looping [gw10] [ 33%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[oauth] tests/examples/test_stories.py::test_story[parallel_calls-server-in-memory-legacy] [gw12] [ 33%] PASSED tests/interaction/lowlevel/test_resources.py::test_resource_updated_notification_reaches_client[streamable-http-2025-11-25] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[oauth_client_credentials] [gw13] [ 33%] PASSED tests/interaction/mcpserver/test_extensions.py::test_per_request_ad_carries_settings_and_gates_the_claimed_substitution[in-memory-2026-07-28] tests/interaction/auth/test_lifecycle.py::test_cimd_is_selected_when_the_as_advertises_support_and_a_metadata_url_is_supplied tests/docs/test_translations.py::test_code_block_moved_into_another_section_is_repaired_not_published tests/interaction/lowlevel/test_roots.py::test_list_roots_round_trip[in-memory-2025-11-25] [gw14] [ 33%] PASSED tests/docs_src/test_deploy.py::test_a_shared_key_is_not_enough_without_a_shared_name [gw0] [ 33%] PASSED tests/docs_src/test_uri_templates.py::test_lowlevel_unknown_uri_raises tests/interaction/mcpserver/test_extensions.py::test_per_request_ad_carries_settings_and_gates_the_claimed_substitution[streamable-http-2026-07-28] tests/docs_src/test_uri_templates.py::test_uritemplate_match_returns_a_dict_or_none [gw11] [ 33%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_accepted_elicitation_content_that_violates_the_schema_reaches_the_handler_unchanged[streamable-http-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[in-memory-2025-11-25] tests/docs_src/test_deploy.py::test_one_bus_carries_a_publish_on_one_replica_to_a_stream_on_another [gw0] [ 33%] PASSED tests/docs_src/test_uri_templates.py::test_uritemplate_match_returns_a_dict_or_none tests/docs_src/test_uri_templates.py::test_lowlevel_match_routes_the_request_to_the_right_template [gw12] [ 33%] PASSED tests/interaction/lowlevel/test_roots.py::test_list_roots_round_trip[in-memory-2025-11-25] tests/interaction/lowlevel/test_roots.py::test_list_roots_round_trip[sse-2025-11-25] [gw0] [ 34%] PASSED tests/docs_src/test_uri_templates.py::test_lowlevel_match_routes_the_request_to_the_right_template tests/docs_src/test_uri_templates.py::test_lowlevel_handler_applies_the_safety_checks_itself [gw10] [ 34%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[oauth_client_credentials] [gw11] [ 34%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[in-memory-2025-11-25] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[pagination] tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[sse-2025-11-25] [gw7] [ 34%] PASSED tests/interaction/mcpserver/test_resources.py::test_list_static_and_templated_resources[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_list_static_and_templated_resources[in-memory-2026-07-28] [gw14] [ 34%] PASSED tests/docs_src/test_deploy.py::test_one_bus_carries_a_publish_on_one_replica_to_a_stream_on_another tests/docs_src/test_deprecated.py::test_create_message_warns_and_then_raises_on_a_modern_connection [gw15] [ 34%] PASSED tests/interaction/auth/test_login_time.py::test_a_login_suspends_only_the_timeout_of_the_request_that_was_challenged[trio-mockclock] [gw10] [ 34%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[pagination] tests/interaction/lowlevel/test_cancellation.py::test_cancellation_stops_in_flight_handler[in-memory-2025-11-25] [gw12] [ 34%] PASSED tests/interaction/lowlevel/test_roots.py::test_list_roots_round_trip[sse-2025-11-25] [gw4] [ 34%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[sse-2025-11-25] tests/interaction/lowlevel/test_roots.py::test_list_roots_round_trip[streamable-http-2025-11-25] [gw11] [ 34%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[sse-2025-11-25] [gw15] [ 34%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_cancellation_stops_in_flight_handler[in-memory-2025-11-25] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[parallel_calls] [gw14] [ 34%] PASSED tests/docs_src/test_deprecated.py::test_create_message_warns_and_then_raises_on_a_modern_connection tests/docs_src/test_deprecated.py::test_a_deprecated_feature_still_works_on_a_legacy_session tests/interaction/lowlevel/test_cancellation.py::test_cancellation_stops_in_flight_handler[sse-2025-11-25] [gw13] [ 34%] PASSED tests/interaction/mcpserver/test_extensions.py::test_per_request_ad_carries_settings_and_gates_the_claimed_substitution[streamable-http-2026-07-28] tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[streamable-http-2025-11-25] [gw2] [ 34%] PASSED tests/interaction/auth/test_lifecycle.py::test_cimd_is_selected_when_the_as_advertises_support_and_a_metadata_url_is_supplied [gw1] [ 34%] PASSED tests/examples/test_stories.py::test_story[dual_era-server_lowlevel-http-asgi-in-body] tests/interaction/auth/test_lifecycle.py::test_a_failed_refresh_clears_stored_tokens_and_restarts_the_full_flow [gw7] [ 34%] PASSED tests/interaction/mcpserver/test_resources.py::test_list_static_and_templated_resources[in-memory-2026-07-28] tests/examples/test_stories.py::test_story[streaming-server-in-memory-modern] tests/interaction/mcpserver/test_extensions.py::test_legacy_ad_omits_claim_bearing_identifiers_but_keeps_claim_less_ones[in-memory-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_list_static_and_templated_resources[streamable-http-2026-07-28] tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[streamable-http-2025-11-25] [gw10] [ 34%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[parallel_calls] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[prompts] [gw15] [ 34%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_cancellation_stops_in_flight_handler[sse-2025-11-25] tests/interaction/lowlevel/test_cancellation.py::test_cancellation_stops_in_flight_handler[streamable-http-2025-11-25] [gw11] [ 34%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[streamable-http-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[streamable-http-stateless-2025-11-25] [gw12] [ 34%] PASSED tests/interaction/lowlevel/test_roots.py::test_list_roots_round_trip[streamable-http-2025-11-25] [gw14] [ 34%] PASSED tests/docs_src/test_deprecated.py::test_a_deprecated_feature_still_works_on_a_legacy_session tests/docs_src/test_deprecated.py::test_send_ping_still_carries_the_deprecation_warning [gw10] [ 34%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[prompts] [gw0] [ 34%] PASSED tests/docs_src/test_uri_templates.py::test_lowlevel_handler_applies_the_safety_checks_itself tests/docs_src/test_uri_templates.py::test_str_of_a_template_round_trips_to_the_original_string tests/interaction/lowlevel/test_roots.py::test_list_roots_empty[in-memory-2025-11-25] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[reconnect] [gw0] [ 34%] PASSED tests/docs_src/test_uri_templates.py::test_str_of_a_template_round_trips_to_the_original_string [gw1] [ 34%] PASSED tests/examples/test_stories.py::test_story[streaming-server-in-memory-modern] tests/docs_src/test_whats_new.py::test_the_advertised_schema_is_the_literal_dict tests/examples/test_stories.py::test_story[streaming-server-in-memory-legacy] [gw12] [ 34%] PASSED tests/interaction/lowlevel/test_roots.py::test_list_roots_empty[in-memory-2025-11-25] [gw14] [ 34%] PASSED tests/docs_src/test_deprecated.py::test_send_ping_still_carries_the_deprecation_warning tests/docs_src/test_deprecated.py::test_mcp_deprecation_warning_is_a_user_warning tests/interaction/lowlevel/test_roots.py::test_list_roots_empty[sse-2025-11-25] [gw3] [ 34%] PASSED tests/examples/test_stories.py::test_story[parallel_calls-server-in-memory-legacy] [gw13] [ 34%] PASSED tests/interaction/mcpserver/test_extensions.py::test_legacy_ad_omits_claim_bearing_identifiers_but_keeps_claim_less_ones[in-memory-2025-11-25] [gw11] [ 34%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_elicitation.py::test_a_mode_less_elicitation_request_is_treated_as_form_mode [gw14] [ 34%] PASSED tests/docs_src/test_deprecated.py::test_mcp_deprecation_warning_is_a_user_warning tests/interaction/mcpserver/test_extensions.py::test_legacy_ad_omits_claim_bearing_identifiers_but_keeps_claim_less_ones[sse-2025-11-25] [gw0] [ 34%] PASSED tests/docs_src/test_whats_new.py::test_the_advertised_schema_is_the_literal_dict tests/docs_src/test_whats_new.py::test_a_valid_call_answers [gw10] [ 34%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[reconnect] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[refund_desk] tests/docs_src/test_deprecated.py::test_error_filter_turns_the_deprecated_call_into_the_documented_tool_error tests/examples/test_stories.py::test_story[parallel_calls-server_lowlevel-in-memory-modern] [gw11] [ 34%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_a_mode_less_elicitation_request_is_treated_as_form_mode [gw0] [ 34%] PASSED tests/docs_src/test_whats_new.py::test_a_valid_call_answers tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[in-memory-2025-11-25] tests/docs_src/test_whats_new.py::test_arguments_are_not_validated_and_a_handler_exception_is_sanitized [gw4] [ 34%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[streamable-http-2025-11-25] [gw12] [ 34%] PASSED tests/interaction/lowlevel/test_roots.py::test_list_roots_empty[sse-2025-11-25] [gw1] [ 34%] PASSED tests/examples/test_stories.py::test_story[streaming-server-in-memory-legacy] [gw10] [ 34%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[refund_desk] tests/examples/test_stories.py::test_story[streaming-server-http-asgi-modern] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[resources] tests/interaction/lowlevel/test_roots.py::test_list_roots_empty[streamable-http-2025-11-25] [gw11] [ 34%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[in-memory-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[streamable-http-stateless-2025-11-25] [gw10] [ 34%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[resources] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[roots] tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[sse-2025-11-25] [gw3] [ 34%] PASSED tests/examples/test_stories.py::test_story[parallel_calls-server_lowlevel-in-memory-modern] [gw13] [ 34%] PASSED tests/interaction/mcpserver/test_extensions.py::test_legacy_ad_omits_claim_bearing_identifiers_but_keeps_claim_less_ones[sse-2025-11-25] [gw7] [ 34%] PASSED tests/interaction/mcpserver/test_resources.py::test_list_static_and_templated_resources[streamable-http-2026-07-28] tests/interaction/mcpserver/test_resources.py::test_read_templated_resource[in-memory-2025-11-25] [gw10] [ 34%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[roots] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[sampling] tests/interaction/mcpserver/test_extensions.py::test_legacy_ad_omits_claim_bearing_identifiers_but_keeps_claim_less_ones[streamable-http-2025-11-25] tests/examples/test_stories.py::test_story[parallel_calls-server_lowlevel-in-memory-legacy] [gw12] [ 34%] PASSED tests/interaction/lowlevel/test_roots.py::test_list_roots_empty[streamable-http-2025-11-25] [gw2] [ 34%] PASSED tests/interaction/auth/test_lifecycle.py::test_a_failed_refresh_clears_stored_tokens_and_restarts_the_full_flow tests/interaction/lowlevel/test_roots.py::test_list_roots_without_callback_is_error[in-memory-2025-11-25] tests/interaction/auth/test_lifecycle.py::test_client_credentials_provider_obtains_a_token_without_an_authorize_step [gw10] [ 34%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[sampling] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[schema_validators] [gw1] [ 34%] PASSED tests/examples/test_stories.py::test_story[streaming-server-http-asgi-modern] [gw12] [ 34%] PASSED tests/interaction/lowlevel/test_roots.py::test_list_roots_without_callback_is_error[in-memory-2025-11-25] [gw10] [ 34%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[schema_validators] tests/examples/test_stories.py::test_story[streaming-server-http-asgi-legacy] tests/interaction/lowlevel/test_roots.py::test_list_roots_without_callback_is_error[sse-2025-11-25] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[serve_one] [gw10] [ 34%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[serve_one] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[sse_polling] [gw2] [ 34%] PASSED tests/interaction/auth/test_lifecycle.py::test_client_credentials_provider_obtains_a_token_without_an_authorize_step [gw6] [ 34%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[sse-2025-11-25] [gw10] [ 34%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[sse_polling] [gw12] [ 34%] PASSED tests/interaction/lowlevel/test_roots.py::test_list_roots_without_callback_is_error[sse-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[streamable-http-2025-11-25] tests/interaction/lowlevel/test_roots.py::test_list_roots_without_callback_is_error[streamable-http-2025-11-25] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[standalone_get] tests/interaction/auth/test_lifecycle.py::test_private_key_jwt_provider_authenticates_the_token_request_with_an_assertion [gw15] [ 34%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_cancellation_stops_in_flight_handler[streamable-http-2025-11-25] [gw14] [ 34%] PASSED tests/docs_src/test_deprecated.py::test_error_filter_turns_the_deprecated_call_into_the_documented_tool_error tests/interaction/lowlevel/test_cancellation.py::test_session_serves_requests_after_cancellation[in-memory-2025-11-25] [gw10] [ 34%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[standalone_get] tests/docs_src/test_deprecated.py::test_filterwarnings_ignore_silences_the_whole_category [gw7] [ 35%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_templated_resource[in-memory-2025-11-25] [gw4] [ 35%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[streamable-http-stateless-2025-11-25] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[starlette_mount] [gw0] [ 35%] PASSED tests/docs_src/test_whats_new.py::test_arguments_are_not_validated_and_a_handler_exception_is_sanitized [gw10] [ 35%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[starlette_mount] [gw11] [ 35%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[sse-2025-11-25] tests/docs_src/test_whats_new.py::test_an_unknown_tool_is_a_deliberate_wire_error tests/interaction/mcpserver/test_resources.py::test_read_templated_resource[sse-2025-11-25] [gw14] [ 35%] PASSED tests/docs_src/test_deprecated.py::test_filterwarnings_ignore_silences_the_whole_category tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[stateless_legacy] [gw3] [ 35%] PASSED tests/examples/test_stories.py::test_story[parallel_calls-server_lowlevel-in-memory-legacy] [gw15] [ 35%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_session_serves_requests_after_cancellation[in-memory-2025-11-25] [gw0] [ 35%] PASSED tests/docs_src/test_whats_new.py::test_an_unknown_tool_is_a_deliberate_wire_error [gw1] [ 35%] PASSED tests/examples/test_stories.py::test_story[streaming-server-http-asgi-legacy] tests/docs_src/test_elicitation.py::test_an_accepted_answer_resumes_the_tool tests/interaction/lowlevel/test_cancellation.py::test_session_serves_requests_after_cancellation[sse-2025-11-25] tests/examples/test_stories.py::test_story[streaming-server_lowlevel-in-memory-modern] tests/examples/test_stories.py::test_story[tools-server-in-memory-modern] [gw10] [ 35%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[stateless_legacy] [gw6] [ 35%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[streamable-http-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-2026-07-28] tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[streamable-http-stateless-2025-11-25] [gw13] [ 35%] PASSED tests/interaction/mcpserver/test_extensions.py::test_legacy_ad_omits_claim_bearing_identifiers_but_keeps_claim_less_ones[streamable-http-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_list_prompts_derives_arguments_from_signature[in-memory-2025-11-25] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[stickynotes] tests/examples/test_stories.py::test_story[roots-server-in-memory-legacy] [gw1] [ 35%] PASSED tests/examples/test_stories.py::test_story[streaming-server_lowlevel-in-memory-modern] [gw12] [ 35%] PASSED tests/interaction/lowlevel/test_roots.py::test_list_roots_without_callback_is_error[streamable-http-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[in-memory-2025-11-25] [gw9] [ 35%] PASSED tests/docs/test_translations.py::test_code_block_moved_into_another_section_is_repaired_not_published tests/examples/test_stories.py::test_story[streaming-server_lowlevel-in-memory-legacy] [gw14] [ 35%] PASSED tests/docs_src/test_elicitation.py::test_an_accepted_answer_resumes_the_tool tests/interaction/lowlevel/test_roots.py::test_list_roots_callback_error_surfaces_to_the_handler[in-memory-2025-11-25] tests/docs_src/test_elicitation.py::test_an_alternative_that_is_also_full_is_asked_about_again [gw10] [ 35%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[stickynotes] [gw2] [ 35%] PASSED tests/interaction/auth/test_lifecycle.py::test_private_key_jwt_provider_authenticates_the_token_request_with_an_assertion tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[streaming] [gw0] [ 35%] PASSED tests/examples/test_stories.py::test_story[tools-server-in-memory-modern] tests/interaction/auth/test_lifecycle.py::test_registration_priority_prefers_preregistered_then_cimd_then_dcr[cimd_unsupported_falls_through_to_dcr] [gw13] [ 35%] PASSED tests/interaction/mcpserver/test_prompts.py::test_list_prompts_derives_arguments_from_signature[in-memory-2025-11-25] tests/docs/test_translations.py::test_code_block_moved_out_of_a_retranslated_section_gets_repair_turns_like_any_other_finding [gw12] [ 35%] PASSED tests/interaction/lowlevel/test_roots.py::test_list_roots_callback_error_surfaces_to_the_handler[in-memory-2025-11-25] [gw1] [ 35%] PASSED tests/examples/test_stories.py::test_story[streaming-server_lowlevel-in-memory-legacy] tests/interaction/lowlevel/test_roots.py::test_list_roots_callback_error_surfaces_to_the_handler[sse-2025-11-25] tests/examples/test_stories.py::test_story[tools-server-in-memory-legacy] tests/examples/test_stories.py::test_story[streaming-server_lowlevel-http-asgi-modern] [gw10] [ 35%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[streaming] [gw6] [ 35%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[streamable-http-stateless-2025-11-25] [gw4] [ 35%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[in-memory-2025-11-25] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[subscriptions] tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[in-memory-2026-07-28] [gw14] [ 35%] PASSED tests/docs_src/test_elicitation.py::test_an_alternative_that_is_also_full_is_asked_about_again tests/interaction/mcpserver/test_prompts.py::test_list_prompts_derives_arguments_from_signature[sse-2025-11-25] [gw15] [ 35%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_session_serves_requests_after_cancellation[sse-2025-11-25] [gw7] [ 35%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_templated_resource[sse-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_read_templated_resource[streamable-http-2025-11-25] tests/interaction/lowlevel/test_cancellation.py::test_session_serves_requests_after_cancellation[streamable-http-2025-11-25] [gw6] [ 35%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[in-memory-2026-07-28] tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[streamable-http-2026-07-28] tests/docs_src/test_elicitation.py::test_the_client_receives_the_message_and_the_generated_schema [gw10] [ 35%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[subscriptions] [gw12] [ 35%] PASSED tests/interaction/lowlevel/test_roots.py::test_list_roots_callback_error_surfaces_to_the_handler[sse-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[sse-2025-11-25] tests/interaction/lowlevel/test_roots.py::test_list_roots_callback_error_surfaces_to_the_handler[streamable-http-2025-11-25] tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[tools] [gw6] [ 35%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[streamable-http-2026-07-28] [gw1] [ 35%] PASSED tests/examples/test_stories.py::test_story[streaming-server_lowlevel-http-asgi-modern] tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[in-memory-2025-11-25] tests/examples/test_stories.py::test_story[streaming-server_lowlevel-http-asgi-legacy] [gw2] [ 35%] PASSED tests/interaction/auth/test_lifecycle.py::test_registration_priority_prefers_preregistered_then_cimd_then_dcr[cimd_unsupported_falls_through_to_dcr] [gw0] [ 35%] PASSED tests/examples/test_stories.py::test_story[tools-server-in-memory-legacy] tests/interaction/auth/test_lifecycle.py::test_registration_priority_prefers_preregistered_then_cimd_then_dcr[preregistered_beats_cimd] [gw6] [ 35%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[in-memory-2025-11-25] [gw14] [ 35%] PASSED tests/docs_src/test_elicitation.py::test_the_client_receives_the_message_and_the_generated_schema tests/docs_src/test_elicitation.py::test_decline_and_cancel_are_ordinary_return_values [gw10] [ 35%] PASSED tests/examples/test_story_shape.py::test_story_files_import_no_private_mcp_module[tools] tests/examples/test_stories.py::test_story[tools-server-http-asgi-modern] [gw15] [ 35%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_session_serves_requests_after_cancellation[streamable-http-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[sse-2025-11-25] [gw4] [ 35%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[sse-2025-11-25] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[bearer_auth] [gw13] [ 35%] PASSED tests/interaction/mcpserver/test_prompts.py::test_list_prompts_derives_arguments_from_signature[sse-2025-11-25] [gw12] [ 35%] PASSED tests/interaction/lowlevel/test_roots.py::test_list_roots_callback_error_surfaces_to_the_handler[streamable-http-2025-11-25] tests/interaction/lowlevel/test_cancellation.py::test_cancellation_for_unknown_request_is_ignored[in-memory-2025-11-25] [gw15] [ 35%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_cancellation_for_unknown_request_is_ignored[in-memory-2025-11-25] tests/interaction/lowlevel/test_cancellation.py::test_cancellation_for_unknown_request_is_ignored[sse-2025-11-25] tests/interaction/lowlevel/test_roots.py::test_roots_list_changed_reaches_server_handler[in-memory-2025-11-25] [gw12] [ 35%] PASSED tests/interaction/lowlevel/test_roots.py::test_roots_list_changed_reaches_server_handler[in-memory-2025-11-25] [gw7] [ 35%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_templated_resource[streamable-http-2025-11-25] tests/interaction/lowlevel/test_roots.py::test_roots_list_changed_reaches_server_handler[sse-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_list_prompts_derives_arguments_from_signature[streamable-http-2025-11-25] [gw6] [ 35%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[sse-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_read_templated_resource[streamable-http-stateless-2025-11-25] [gw2] [ 35%] PASSED tests/interaction/auth/test_lifecycle.py::test_registration_priority_prefers_preregistered_then_cimd_then_dcr[preregistered_beats_cimd] tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[streamable-http-2025-11-25] [gw5] [ 35%] PASSED tests/client/test_stdio.py::test_cancellation_during_spawn_leaks_no_streams tests/interaction/auth/test_login_time.py::test_auto_mode_negotiates_modern_when_the_login_far_outlasts_the_probe_deadline[trio-mockclock] [gw10] [ 35%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[bearer_auth] tests/client/test_stdio.py::test_a_non_oserror_spawn_failure_propagates_and_leaks_no_streams tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[dual_era] [gw12] [ 35%] PASSED tests/interaction/lowlevel/test_roots.py::test_roots_list_changed_reaches_server_handler[sse-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[streamable-http-2025-11-25] [gw10] [ 35%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[dual_era] [gw15] [ 35%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_cancellation_for_unknown_request_is_ignored[sse-2025-11-25] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[error_handling] tests/interaction/lowlevel/test_cancellation.py::test_cancellation_for_unknown_request_is_ignored[streamable-http-2025-11-25] [gw1] [ 35%] PASSED tests/examples/test_stories.py::test_story[streaming-server_lowlevel-http-asgi-legacy] [gw14] [ 35%] PASSED tests/docs_src/test_elicitation.py::test_decline_and_cancel_are_ordinary_return_values [gw10] [ 35%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[error_handling] [gw3] [ 35%] PASSED tests/examples/test_stories.py::test_story[roots-server-in-memory-legacy] tests/interaction/lowlevel/test_roots.py::test_roots_list_changed_reaches_server_handler[streamable-http-2025-11-25] [gw7] [ 35%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_templated_resource[streamable-http-stateless-2025-11-25] tests/examples/test_stories.py::test_story[mrtr-server-in-memory-modern] [gw0] [ 35%] PASSED tests/examples/test_stories.py::test_story[tools-server-http-asgi-modern] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[identity_assertion] [gw6] [ 36%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[streamable-http-2025-11-25] tests/examples/test_stories.py::test_story[roots-server-http-asgi-legacy] tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_read_templated_resource[in-memory-2026-07-28] [gw2] [ 36%] PASSED tests/interaction/auth/test_login_time.py::test_auto_mode_negotiates_modern_when_the_login_far_outlasts_the_probe_deadline[trio-mockclock] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[identity_assertion] tests/docs_src/test_elicitation.py::test_a_tool_that_does_not_ask_needs_nothing_from_the_client tests/interaction/auth/test_login_time.py::test_auto_mode_falls_back_at_the_probe_deadline_when_the_server_never_answers_the_probe[trio-mockclock] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[json_response] tests/examples/test_stories.py::test_story[tools-server-http-asgi-legacy] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[json_response] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[legacy_elicitation] [gw15] [ 36%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_cancellation_for_unknown_request_is_ignored[streamable-http-2025-11-25] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[legacy_elicitation] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[legacy_routing] tests/interaction/lowlevel/test_cancellation.py::test_cancellation_for_unknown_request_is_ignored[streamable-http-stateless-2025-11-25] [gw14] [ 36%] PASSED tests/docs_src/test_elicitation.py::test_a_tool_that_does_not_ask_needs_nothing_from_the_client [gw7] [ 36%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_templated_resource[in-memory-2026-07-28] [gw6] [ 36%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[streamable-http-stateless-2025-11-25] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[legacy_routing] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[lifespan] [gw13] [ 36%] PASSED tests/interaction/mcpserver/test_prompts.py::test_list_prompts_derives_arguments_from_signature[streamable-http-2025-11-25] [gw2] [ 36%] PASSED tests/interaction/auth/test_login_time.py::test_auto_mode_falls_back_at_the_probe_deadline_when_the_server_never_answers_the_probe[trio-mockclock] tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[in-memory-2026-07-28] [gw12] [ 36%] PASSED tests/interaction/lowlevel/test_roots.py::test_roots_list_changed_reaches_server_handler[streamable-http-2025-11-25] tests/interaction/auth/test_login_time.py::test_the_probe_deadline_resumes_after_the_login_with_the_budget_that_was_left[trio-mockclock] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[lifespan] tests/docs_src/test_elicitation.py::test_an_answer_that_does_not_match_the_schema_never_reaches_the_tool_code tests/interaction/mcpserver/test_resources.py::test_read_templated_resource[streamable-http-2026-07-28] tests/interaction/lowlevel/test_roots.py::test_roots_list_changed_reaches_server_handler[streamable-http-stateless-2025-11-25] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[mrtr] [gw6] [ 36%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[in-memory-2026-07-28] tests/interaction/mcpserver/test_prompts.py::test_list_prompts_derives_arguments_from_signature[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[streamable-http-2026-07-28] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[mrtr] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[oauth] [gw15] [ 36%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_cancellation_for_unknown_request_is_ignored[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_cancellation.py::test_cancellation_for_unknown_request_is_ignored[in-memory-2026-07-28] [gw6] [ 36%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[streamable-http-2026-07-28] [gw4] [ 36%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[streamable-http-2025-11-25] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[oauth] tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[in-memory-2025-11-25] [gw15] [ 36%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_cancellation_for_unknown_request_is_ignored[in-memory-2026-07-28] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[oauth_client_credentials] tests/interaction/lowlevel/test_cancellation.py::test_cancellation_for_unknown_request_is_ignored[streamable-http-2026-07-28] tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[streamable-http-stateless-2025-11-25] [gw6] [ 36%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[in-memory-2025-11-25] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[oauth_client_credentials] [gw7] [ 36%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_templated_resource[streamable-http-2026-07-28] tests/interaction/mcpserver/test_resources.py::test_read_unknown_uri_is_error[in-memory-2025-11-25] [gw2] [ 36%] PASSED tests/interaction/auth/test_login_time.py::test_the_probe_deadline_resumes_after_the_login_with_the_budget_that_was_left[trio-mockclock] tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[sse-2025-11-25] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[pagination] tests/interaction/auth/test_login_time.py::test_a_read_timeout_shorter_than_the_login_does_not_fail_the_challenged_request[auto-trio-mockclock] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[pagination] [gw15] [ 36%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_cancellation_for_unknown_request_is_ignored[streamable-http-2026-07-28] [gw7] [ 36%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_unknown_uri_is_error[in-memory-2025-11-25] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[parallel_calls] [gw12] [ 36%] PASSED tests/interaction/lowlevel/test_roots.py::test_roots_list_changed_reaches_server_handler[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_read_unknown_uri_is_error[sse-2025-11-25] tests/interaction/lowlevel/test_cancellation.py::test_abandoned_server_request_cancels_the_client_callback[in-memory-2025-11-25] [gw13] [ 36%] PASSED tests/interaction/mcpserver/test_prompts.py::test_list_prompts_derives_arguments_from_signature[streamable-http-stateless-2025-11-25] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[parallel_calls] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[prompts] tests/interaction/mcpserver/test_prompts.py::test_list_prompts_derives_arguments_from_signature[in-memory-2026-07-28] [gw6] [ 36%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[sse-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_round_trip[in-memory-2025-11-25] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[prompts] tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[streamable-http-2025-11-25] [gw15] [ 36%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_abandoned_server_request_cancels_the_client_callback[in-memory-2025-11-25] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[reconnect] [gw2] [ 36%] PASSED tests/interaction/auth/test_login_time.py::test_a_read_timeout_shorter_than_the_login_does_not_fail_the_challenged_request[auto-trio-mockclock] [gw0] [ 36%] PASSED tests/examples/test_stories.py::test_story[tools-server-http-asgi-legacy] tests/interaction/lowlevel/test_cancellation.py::test_abandoned_server_request_cancels_the_client_callback[sse-2025-11-25] tests/interaction/auth/test_login_time.py::test_a_read_timeout_shorter_than_the_login_does_not_fail_the_challenged_request[legacy-trio-mockclock] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[reconnect] [gw7] [ 36%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_unknown_uri_is_error[sse-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_read_unknown_uri_is_error[streamable-http-2025-11-25] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[resources] tests/examples/test_stories.py::test_story[tools-server_lowlevel-in-memory-modern] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[resources] [gw4] [ 36%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[streamable-http-stateless-2025-11-25] [gw13] [ 36%] PASSED tests/interaction/mcpserver/test_prompts.py::test_list_prompts_derives_arguments_from_signature[in-memory-2026-07-28] tests/interaction/mcpserver/test_prompts.py::test_list_prompts_derives_arguments_from_signature[streamable-http-2026-07-28] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[roots] [gw1] [ 36%] PASSED tests/examples/test_stories.py::test_story[mrtr-server-in-memory-modern] tests/examples/test_stories.py::test_story[mrtr-server-http-asgi-modern] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[roots] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[sampling] [gw0] [ 36%] PASSED tests/examples/test_stories.py::test_story[tools-server_lowlevel-in-memory-modern] [gw7] [ 36%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_unknown_uri_is_error[streamable-http-2025-11-25] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[sampling] tests/examples/test_stories.py::test_story[tools-server_lowlevel-in-memory-legacy] [gw6] [ 36%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[streamable-http-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_info[in-memory-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_read_unknown_uri_is_error[streamable-http-stateless-2025-11-25] [gw15] [ 36%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_abandoned_server_request_cancels_the_client_callback[sse-2025-11-25] [gw12] [ 36%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_round_trip[in-memory-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_round_trip[sse-2025-11-25] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[schema_validators] tests/interaction/lowlevel/test_cancellation.py::test_abandoned_server_request_cancels_the_client_callback[streamable-http-2025-11-25] [gw2] [ 36%] PASSED tests/interaction/auth/test_login_time.py::test_a_read_timeout_shorter_than_the_login_does_not_fail_the_challenged_request[legacy-trio-mockclock] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[schema_validators] [gw14] [ 36%] PASSED tests/docs_src/test_elicitation.py::test_an_answer_that_does_not_match_the_schema_never_reaches_the_tool_code tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[sse_polling] tests/docs_src/test_elicitation.py::test_a_nested_model_is_rejected_before_anything_is_sent [gw0] [ 36%] PASSED tests/examples/test_stories.py::test_story[tools-server_lowlevel-in-memory-legacy] tests/interaction/lowlevel/test_pagination.py::test_prompts_list_supports_cursor_pagination[streamable-http-2025-11-25] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[sse_polling] tests/examples/test_stories.py::test_story[tools-server_lowlevel-http-asgi-modern] [gw13] [ 36%] PASSED tests/interaction/mcpserver/test_prompts.py::test_list_prompts_derives_arguments_from_signature[streamable-http-2026-07-28] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_renders_function_return[in-memory-2025-11-25] [gw7] [ 36%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_unknown_uri_is_error[streamable-http-stateless-2025-11-25] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[standalone_get] tests/interaction/mcpserver/test_resources.py::test_read_unknown_uri_is_error[in-memory-2026-07-28] [gw6] [ 36%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[streamable-http-stateless-2025-11-25] [gw10] [ 36%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[standalone_get] tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[in-memory-2026-07-28] [gw7] [ 36%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_unknown_uri_is_error[in-memory-2026-07-28] tests/interaction/mcpserver/test_resources.py::test_read_unknown_uri_is_error[streamable-http-2026-07-28] [gw6] [ 37%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[in-memory-2026-07-28] [gw4] [ 37%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_info[in-memory-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[streamable-http-2026-07-28] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[stateless_legacy] [gw2] [ 37%] PASSED tests/interaction/lowlevel/test_pagination.py::test_prompts_list_supports_cursor_pagination[streamable-http-2025-11-25] [gw15] [ 37%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_abandoned_server_request_cancels_the_client_callback[streamable-http-2025-11-25] tests/interaction/lowlevel/test_cancellation.py::test_a_response_for_an_unknown_request_id_is_ignored tests/interaction/lowlevel/test_pagination.py::test_prompts_list_supports_cursor_pagination[streamable-http-stateless-2025-11-25] [gw7] [ 37%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_unknown_uri_is_error[streamable-http-2026-07-28] [gw0] [ 37%] PASSED tests/examples/test_stories.py::test_story[tools-server_lowlevel-http-asgi-modern] tests/interaction/mcpserver/test_resources.py::test_resource_function_that_raises_is_surfaced_as_a_jsonrpc_error[in-memory-2025-11-25] [gw10] [ 37%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[stateless_legacy] tests/examples/test_stories.py::test_story[tools-server_lowlevel-http-asgi-legacy] [gw15] [ 37%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_a_response_for_an_unknown_request_id_is_ignored [gw6] [ 37%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[streamable-http-2026-07-28] tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[in-memory-2025-11-25] tests/interaction/lowlevel/test_cancellation.py::test_timed_out_initialize_sends_no_cancellation [gw13] [ 37%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_renders_function_return[in-memory-2025-11-25] [gw3] [ 37%] PASSED tests/examples/test_stories.py::test_story[roots-server-http-asgi-legacy] [gw15] [ 37%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_timed_out_initialize_sends_no_cancellation tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_info[sse-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_renders_function_return[sse-2025-11-25] [gw1] [ 37%] PASSED tests/examples/test_stories.py::test_story[mrtr-server-http-asgi-modern] tests/examples/test_stories.py::test_story[mrtr-server_lowlevel-in-memory-modern] tests/interaction/lowlevel/test_cancellation.py::test_abandoning_a_call_stops_the_server_handler[in-memory-2025-11-25] tests/examples/test_stories.py::test_story[roots-server_lowlevel-in-memory-legacy] [gw12] [ 37%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_round_trip[sse-2025-11-25] [gw15] [ 37%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_abandoning_a_call_stops_the_server_handler[in-memory-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_round_trip[streamable-http-2025-11-25] tests/interaction/lowlevel/test_cancellation.py::test_abandoning_a_call_stops_the_server_handler[sse-2025-11-25] [gw2] [ 37%] PASSED tests/interaction/lowlevel/test_pagination.py::test_prompts_list_supports_cursor_pagination[streamable-http-stateless-2025-11-25] [gw0] [ 37%] PASSED tests/examples/test_stories.py::test_story[tools-server_lowlevel-http-asgi-legacy] tests/interaction/lowlevel/test_pagination.py::test_prompts_list_supports_cursor_pagination[in-memory-2026-07-28] tests/examples/test_stories.py::test_story[prompts-server-in-memory-modern] [gw2] [ 37%] PASSED tests/interaction/lowlevel/test_pagination.py::test_prompts_list_supports_cursor_pagination[in-memory-2026-07-28] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[stickynotes] [gw7] [ 37%] PASSED tests/interaction/mcpserver/test_resources.py::test_resource_function_that_raises_is_surfaced_as_a_jsonrpc_error[in-memory-2025-11-25] tests/interaction/lowlevel/test_pagination.py::test_prompts_list_supports_cursor_pagination[streamable-http-2026-07-28] tests/interaction/mcpserver/test_resources.py::test_resource_function_that_raises_is_surfaced_as_a_jsonrpc_error[sse-2025-11-25] [gw6] [ 37%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[in-memory-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[sse-2025-11-25] [gw2] [ 37%] PASSED tests/interaction/lowlevel/test_pagination.py::test_prompts_list_supports_cursor_pagination[streamable-http-2026-07-28] [gw1] [ 37%] PASSED tests/examples/test_stories.py::test_story[mrtr-server_lowlevel-in-memory-modern] [gw0] [ 37%] PASSED tests/examples/test_stories.py::test_story[prompts-server-in-memory-modern] tests/examples/test_stories.py::test_story[mrtr-server_lowlevel-http-asgi-modern] tests/interaction/lowlevel/test_ping.py::test_client_ping_returns_empty_result[in-memory-2025-11-25] tests/examples/test_stories.py::test_story[prompts-server-in-memory-legacy] [gw13] [ 37%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_renders_function_return[sse-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_renders_function_return[streamable-http-2025-11-25] [gw3] [ 37%] PASSED tests/examples/test_stories.py::test_story[roots-server_lowlevel-in-memory-legacy] [gw14] [ 37%] PASSED tests/docs_src/test_elicitation.py::test_a_nested_model_is_rejected_before_anything_is_sent [gw2] [ 37%] PASSED tests/interaction/lowlevel/test_ping.py::test_client_ping_returns_empty_result[in-memory-2025-11-25] tests/docs_src/test_elicitation.py::test_a_literal_field_passes_the_gate_as_an_enum [gw12] [ 37%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_round_trip[streamable-http-2025-11-25] [gw10] [ 37%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[stickynotes] tests/interaction/lowlevel/test_ping.py::test_client_ping_returns_empty_result[sse-2025-11-25] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[streaming] tests/examples/test_stories.py::test_story[roots-server_lowlevel-http-asgi-legacy] [gw0] [ 37%] PASSED tests/examples/test_stories.py::test_story[prompts-server-in-memory-legacy] [gw4] [ 37%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_info[sse-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_params_reach_callback[in-memory-2025-11-25] tests/interaction/transports/test_hosting_http_modern.py::test_modern_envelope_missing_required_meta_key_is_invalid_params_at_http_400 [gw7] [ 37%] PASSED tests/interaction/mcpserver/test_resources.py::test_resource_function_that_raises_is_surfaced_as_a_jsonrpc_error[sse-2025-11-25] [gw0] [ 37%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_envelope_missing_required_meta_key_is_invalid_params_at_http_400 tests/interaction/mcpserver/test_resources.py::test_resource_function_that_raises_is_surfaced_as_a_jsonrpc_error[streamable-http-2025-11-25] tests/interaction/transports/test_hosting_http_modern.py::test_modern_handler_raised_mcperror_maps_to_status_via_error_code_table [gw10] [ 37%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[streaming] tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_info[streamable-http-2025-11-25] [gw14] [ 37%] PASSED tests/docs_src/test_elicitation.py::test_a_literal_field_passes_the_gate_as_an_enum [gw2] [ 37%] PASSED tests/interaction/lowlevel/test_ping.py::test_client_ping_returns_empty_result[sse-2025-11-25] [gw0] [ 37%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_handler_raised_mcperror_maps_to_status_via_error_code_table tests/interaction/transports/test_hosting_http_modern.py::test_pinned_client_stateless_tools_call_round_trips_against_the_modern_entry [gw6] [ 37%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[sse-2025-11-25] tests/docs_src/test_elicitation.py::test_url_mode_sends_a_url_and_gets_consent_back_not_data tests/interaction/lowlevel/test_ping.py::test_client_ping_returns_empty_result[streamable-http-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[streamable-http-2025-11-25] [gw13] [ 37%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_renders_function_return[streamable-http-2025-11-25] [gw0] [ 37%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_pinned_client_stateless_tools_call_round_trips_against_the_modern_entry tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_mirrors_x_mcp_header_args_into_mcp_param_headers [gw12] [ 37%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_params_reach_callback[in-memory-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_renders_function_return[streamable-http-stateless-2025-11-25] [gw1] [ 37%] PASSED tests/examples/test_stories.py::test_story[mrtr-server_lowlevel-http-asgi-modern] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[subscriptions] tests/interaction/lowlevel/test_sampling.py::test_create_message_params_reach_callback[sse-2025-11-25] tests/examples/test_stories.py::test_story[legacy_elicitation-server-in-memory-legacy] [gw2] [ 37%] PASSED tests/interaction/lowlevel/test_ping.py::test_client_ping_returns_empty_result[streamable-http-2025-11-25] [gw14] [ 37%] PASSED tests/docs_src/test_elicitation.py::test_url_mode_sends_a_url_and_gets_consent_back_not_data tests/interaction/lowlevel/test_ping.py::test_client_ping_returns_empty_result[streamable-http-stateless-2025-11-25] [gw0] [ 37%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_mirrors_x_mcp_header_args_into_mcp_param_headers tests/docs_src/test_elicitation.py::test_a_declined_url_elicitation_is_an_ordinary_return_value tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_re_lists_and_retries_a_call_rejected_for_an_unlisted_tool [gw10] [ 37%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[subscriptions] [gw2] [ 37%] PASSED tests/interaction/lowlevel/test_ping.py::test_client_ping_returns_empty_result[streamable-http-stateless-2025-11-25] [gw0] [ 37%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_re_lists_and_retries_a_call_rejected_for_an_unlisted_tool tests/interaction/lowlevel/test_ping.py::test_server_ping_returns_empty_result[in-memory-2025-11-25] [gw14] [ 37%] PASSED tests/docs_src/test_elicitation.py::test_a_declined_url_elicitation_is_an_ordinary_return_value tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_re_lists_and_retries_when_a_listed_tool_gains_a_header_annotation [gw1] [ 37%] PASSED tests/examples/test_stories.py::test_story[legacy_elicitation-server-in-memory-legacy] tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[tools] tests/examples/test_stories.py::test_story[legacy_elicitation-server-http-asgi-legacy] [gw2] [ 37%] PASSED tests/interaction/lowlevel/test_ping.py::test_server_ping_returns_empty_result[in-memory-2025-11-25] tests/interaction/lowlevel/test_ping.py::test_server_ping_returns_empty_result[sse-2025-11-25] [gw4] [ 37%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_info[streamable-http-2025-11-25] [gw6] [ 37%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[streamable-http-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[streamable-http-stateless-2025-11-25] tests/docs_src/test_elicitation.py::test_send_elicit_complete_notifies_the_client_with_the_same_id [gw10] [ 37%] PASSED tests/examples/test_story_shape.py::test_server_lowlevel_imports_no_mcpserver_tier[tools] [gw0] [ 37%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_re_lists_and_retries_when_a_listed_tool_gains_a_header_annotation tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_raises_a_header_mismatch_that_survives_the_retry tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_capabilities[in-memory-2025-11-25] [gw13] [ 37%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_renders_function_return[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_renders_function_return[in-memory-2026-07-28] [gw7] [ 37%] PASSED tests/interaction/mcpserver/test_resources.py::test_resource_function_that_raises_is_surfaced_as_a_jsonrpc_error[streamable-http-2025-11-25] [gw14] [ 37%] PASSED tests/docs_src/test_elicitation.py::test_send_elicit_complete_notifies_the_client_with_the_same_id tests/examples/test_story_shape.py::test_scaffold_imports_no_story_module[_harness.py] [gw0] [ 37%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_raises_a_header_mismatch_that_survives_the_retry tests/interaction/mcpserver/test_resources.py::test_resource_function_that_raises_is_surfaced_as_a_jsonrpc_error[streamable-http-stateless-2025-11-25] tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_re_list_follows_cursors_only_as_far_as_the_page_listing_the_tool [gw2] [ 38%] PASSED tests/interaction/lowlevel/test_ping.py::test_server_ping_returns_empty_result[sse-2025-11-25] tests/interaction/lowlevel/test_ping.py::test_server_ping_returns_empty_result[streamable-http-2025-11-25] tests/docs_src/test_elicitation.py::test_the_docs_client_callback_handles_both_modes [gw1] [ 38%] PASSED tests/examples/test_stories.py::test_story[legacy_elicitation-server-http-asgi-legacy] [gw13] [ 38%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_renders_function_return[in-memory-2026-07-28] tests/examples/test_stories.py::test_story[legacy_elicitation-server_lowlevel-in-memory-legacy] [gw0] [ 38%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_re_list_follows_cursors_only_as_far_as_the_page_listing_the_tool [gw12] [ 38%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_params_reach_callback[sse-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_params_reach_callback[streamable-http-2025-11-25] tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_re_list_gives_up_after_100_pages_of_a_listing_that_never_ends [gw5] [ 38%] PASSED tests/client/test_stdio.py::test_a_non_oserror_spawn_failure_propagates_and_leaks_no_streams [gw4] [ 38%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_capabilities[in-memory-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_renders_function_return[streamable-http-2026-07-28] [gw1] [ 38%] PASSED tests/examples/test_stories.py::test_story[legacy_elicitation-server_lowlevel-in-memory-legacy] [gw6] [ 38%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[streamable-http-stateless-2025-11-25] tests/client/test_stdio.py::test_a_message_sent_just_before_exit_is_flushed_to_the_server tests/examples/test_stories.py::test_story[legacy_elicitation-server_lowlevel-http-asgi-legacy] tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[in-memory-2025-11-25] [gw2] [ 38%] PASSED tests/interaction/lowlevel/test_ping.py::test_server_ping_returns_empty_result[streamable-http-2025-11-25] [gw5] [ 38%] PASSED tests/client/test_stdio.py::test_a_message_sent_just_before_exit_is_flushed_to_the_server tests/interaction/lowlevel/test_progress.py::test_progress_during_tool_call_reaches_callback_in_order[in-memory-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_capabilities[sse-2025-11-25] [gw6] [ 38%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[in-memory-2025-11-25] tests/client/test_stdio.py::test_a_failed_write_to_a_live_server_closes_the_read_stream_instead_of_hanging [gw14] [ 38%] PASSED tests/docs_src/test_elicitation.py::test_the_docs_client_callback_handles_both_modes tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_is_error_result_skips_output_validation[streamable-http-stateless-2025-11-25] [gw2] [ 38%] PASSED tests/interaction/lowlevel/test_progress.py::test_progress_during_tool_call_reaches_callback_in_order[in-memory-2025-11-25] tests/docs_src/test_elicitation.py::test_a_client_without_the_callback_cannot_be_asked [gw13] [ 38%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_renders_function_return[streamable-http-2026-07-28] tests/interaction/lowlevel/test_progress.py::test_progress_during_tool_call_reaches_callback_in_order[sse-2025-11-25] [gw10] [ 38%] PASSED tests/examples/test_story_shape.py::test_scaffold_imports_no_story_module[_harness.py] tests/examples/test_story_shape.py::test_scaffold_imports_no_story_module[_hosting.py] tests/interaction/mcpserver/test_prompts.py::test_get_unknown_prompt_is_error[in-memory-2025-11-25] [gw1] [ 38%] PASSED tests/examples/test_stories.py::test_story[legacy_elicitation-server_lowlevel-http-asgi-legacy] [gw14] [ 38%] PASSED tests/docs_src/test_elicitation.py::test_a_client_without_the_callback_cannot_be_asked tests/examples/test_stories.py::test_story[refund_desk-server-in-memory-modern] [gw7] [ 38%] PASSED tests/interaction/mcpserver/test_resources.py::test_resource_function_that_raises_is_surfaced_as_a_jsonrpc_error[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_resource_function_that_raises_is_surfaced_as_a_jsonrpc_error[in-memory-2026-07-28] [gw2] [ 38%] PASSED tests/interaction/lowlevel/test_progress.py::test_progress_during_tool_call_reaches_callback_in_order[sse-2025-11-25] [gw6] [ 38%] PASSED tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_is_error_result_skips_output_validation[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_progress_during_tool_call_reaches_callback_in_order[streamable-http-2025-11-25] [gw8] [ 38%] PASSED tests/client/transports/test_memory.py::test_call_tool [gw10] [ 38%] PASSED tests/examples/test_story_shape.py::test_scaffold_imports_no_story_module[_hosting.py] tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_is_error_result_skips_output_validation[in-memory-2026-07-28] tests/client/transports/test_memory.py::test_raise_exceptions tests/interaction/mcpserver/test_tools.py::test_complex_parameter_types_are_validated_and_coerced_before_the_tool_runs[streamable-http-2025-11-25] [gw3] [ 38%] PASSED tests/examples/test_stories.py::test_story[roots-server_lowlevel-http-asgi-legacy] [gw6] [ 38%] PASSED tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_is_error_result_skips_output_validation[in-memory-2026-07-28] tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_is_error_result_skips_output_validation[streamable-http-2026-07-28] tests/interaction/auth/test_as_handlers.py::test_authorize_without_a_code_challenge_is_rejected_with_invalid_request [gw8] [ 38%] PASSED tests/client/transports/test_memory.py::test_raise_exceptions tests/examples/test_stories.py::test_story[pagination-server-in-memory-modern] [gw2] [ 38%] PASSED tests/interaction/lowlevel/test_progress.py::test_progress_during_tool_call_reaches_callback_in_order[streamable-http-2025-11-25] [gw6] [ 38%] PASSED tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_is_error_result_skips_output_validation[streamable-http-2026-07-28] tests/interaction/lowlevel/test_progress.py::test_progress_during_tool_call_reaches_callback_in_order[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_registering_a_duplicate_tool_name_warns_and_keeps_the_first[in-memory-2025-11-25] [gw7] [ 38%] PASSED tests/interaction/mcpserver/test_resources.py::test_resource_function_that_raises_is_surfaced_as_a_jsonrpc_error[in-memory-2026-07-28] tests/client/transports/test_memory.py::test_aexit_with_well_behaved_lifespan_runs_teardown_without_cancel tests/interaction/mcpserver/test_resources.py::test_resource_function_that_raises_is_surfaced_as_a_jsonrpc_error[streamable-http-2026-07-28] [gw13] [ 38%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_unknown_prompt_is_error[in-memory-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_get_unknown_prompt_is_error[sse-2025-11-25] [gw10] [ 38%] PASSED tests/interaction/auth/test_as_handlers.py::test_authorize_without_a_code_challenge_is_rejected_with_invalid_request [gw9] [ 38%] PASSED tests/docs/test_translations.py::test_code_block_moved_out_of_a_retranslated_section_gets_repair_turns_like_any_other_finding [gw2] [ 38%] PASSED tests/interaction/lowlevel/test_progress.py::test_progress_during_tool_call_reaches_callback_in_order[streamable-http-stateless-2025-11-25] [gw8] [ 38%] PASSED tests/client/transports/test_memory.py::test_aexit_with_well_behaved_lifespan_runs_teardown_without_cancel tests/client/transports/test_memory.py::test_aexit_with_blocking_lifespan_is_bounded tests/interaction/lowlevel/test_progress.py::test_progress_during_tool_call_reaches_callback_in_order[in-memory-2026-07-28] tests/interaction/auth/test_as_handlers.py::test_a_mismatched_code_verifier_is_rejected_with_invalid_grant tests/docs/test_translations.py::test_shortened_list_and_table_are_fed_back_for_repair_before_the_page_is_published [gw5] [ 38%] PASSED tests/client/test_stdio.py::test_a_failed_write_to_a_live_server_closes_the_read_stream_instead_of_hanging [gw2] [ 38%] PASSED tests/interaction/lowlevel/test_progress.py::test_progress_during_tool_call_reaches_callback_in_order[in-memory-2026-07-28] [gw14] [ 38%] PASSED tests/interaction/mcpserver/test_tools.py::test_complex_parameter_types_are_validated_and_coerced_before_the_tool_runs[streamable-http-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_complex_parameter_types_are_validated_and_coerced_before_the_tool_runs[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_progress_during_tool_call_reaches_callback_in_order[streamable-http-2026-07-28] [gw4] [ 38%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_capabilities[sse-2025-11-25] [gw10] [ 38%] PASSED tests/interaction/auth/test_as_handlers.py::test_a_mismatched_code_verifier_is_rejected_with_invalid_grant tests/client/test_stdio.py::test_exit_completes_when_a_write_is_wedged_in_a_pipe_no_one_reads [gw6] [ 38%] PASSED tests/interaction/mcpserver/test_tools.py::test_registering_a_duplicate_tool_name_warns_and_keeps_the_first[in-memory-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_registering_a_duplicate_tool_name_warns_and_keeps_the_first[sse-2025-11-25] tests/interaction/auth/test_as_handlers.py::test_reusing_an_authorization_code_is_rejected_with_invalid_grant [gw2] [ 38%] PASSED tests/interaction/lowlevel/test_progress.py::test_progress_during_tool_call_reaches_callback_in_order[streamable-http-2026-07-28] tests/interaction/lowlevel/test_progress.py::test_progress_token_visible_to_handler[in-memory-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_capabilities[streamable-http-2025-11-25] [gw3] [ 38%] PASSED tests/examples/test_stories.py::test_story[pagination-server-in-memory-modern] [gw13] [ 38%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_unknown_prompt_is_error[sse-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_get_unknown_prompt_is_error[streamable-http-2025-11-25] [gw7] [ 38%] PASSED tests/interaction/mcpserver/test_resources.py::test_resource_function_that_raises_is_surfaced_as_a_jsonrpc_error[streamable-http-2026-07-28] [gw2] [ 38%] PASSED tests/interaction/lowlevel/test_progress.py::test_progress_token_visible_to_handler[in-memory-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_progress_token_visible_to_handler[sse-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_static_resource_function_raising_not_found_is_invalid_params[in-memory-2025-11-25] tests/examples/test_stories.py::test_story[pagination-server-in-memory-legacy] [gw8] [ 38%] PASSED tests/client/transports/test_memory.py::test_aexit_with_blocking_lifespan_is_bounded [gw10] [ 38%] PASSED tests/interaction/auth/test_as_handlers.py::test_reusing_an_authorization_code_is_rejected_with_invalid_grant tests/interaction/auth/test_as_handlers.py::test_a_redirect_uri_differing_from_authorize_is_rejected_at_the_token_endpoint [gw2] [ 38%] PASSED tests/interaction/lowlevel/test_progress.py::test_progress_token_visible_to_handler[sse-2025-11-25] [gw1] [ 38%] PASSED tests/examples/test_stories.py::test_story[refund_desk-server-in-memory-modern] tests/docs/test_build_config.py::test_language_nav_titles_sections_from_the_recorded_page_titles_but_keeps_link_labels tests/interaction/lowlevel/test_progress.py::test_progress_token_visible_to_handler[streamable-http-2025-11-25] tests/examples/test_stories.py::test_story[refund_desk-server-in-memory-legacy] [gw7] [ 38%] PASSED tests/interaction/mcpserver/test_resources.py::test_static_resource_function_raising_not_found_is_invalid_params[in-memory-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_static_resource_function_raising_not_found_is_invalid_params[sse-2025-11-25] [gw14] [ 38%] PASSED tests/interaction/mcpserver/test_tools.py::test_complex_parameter_types_are_validated_and_coerced_before_the_tool_runs[streamable-http-stateless-2025-11-25] [gw5] [ 38%] PASSED tests/client/test_stdio.py::test_exit_completes_when_a_write_is_wedged_in_a_pipe_no_one_reads [gw8] [ 38%] PASSED tests/docs/test_build_config.py::test_language_nav_titles_sections_from_the_recorded_page_titles_but_keeps_link_labels tests/interaction/mcpserver/test_tools.py::test_complex_parameter_types_are_validated_and_coerced_before_the_tool_runs[in-memory-2026-07-28] [gw10] [ 38%] PASSED tests/interaction/auth/test_as_handlers.py::test_a_redirect_uri_differing_from_authorize_is_rejected_at_the_token_endpoint tests/docs/test_build_config.py::test_alternate_lists_english_then_each_language_as_code_labelled_links_relative_to_the_site_built [gw8] [ 38%] PASSED tests/docs/test_build_config.py::test_alternate_lists_english_then_each_language_as_code_labelled_links_relative_to_the_site_built tests/client/test_stdio.py::test_undelivered_server_output_is_drained_at_shutdown_so_the_server_can_exit tests/interaction/auth/test_as_handlers.py::test_token_responses_carry_cache_control_no_store [gw15] [ 38%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_abandoning_a_call_stops_the_server_handler[sse-2025-11-25] tests/interaction/lowlevel/test_cancellation.py::test_abandoning_a_call_stops_the_server_handler[streamable-http-2025-11-25] [gw13] [ 38%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_unknown_prompt_is_error[streamable-http-2025-11-25] [gw14] [ 38%] PASSED tests/interaction/mcpserver/test_tools.py::test_complex_parameter_types_are_validated_and_coerced_before_the_tool_runs[in-memory-2026-07-28] tests/docs/test_build_config.py::test_lang_config_builds_the_staged_tree_into_site_code_without_an_api_reference tests/interaction/mcpserver/test_prompts.py::test_get_unknown_prompt_is_error[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_complex_parameter_types_are_validated_and_coerced_before_the_tool_runs[streamable-http-2026-07-28] [gw2] [ 38%] PASSED tests/interaction/lowlevel/test_progress.py::test_progress_token_visible_to_handler[streamable-http-2025-11-25] [gw6] [ 38%] PASSED tests/interaction/mcpserver/test_tools.py::test_registering_a_duplicate_tool_name_warns_and_keeps_the_first[sse-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_registering_a_duplicate_tool_name_warns_and_keeps_the_first[streamable-http-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_progress_token_visible_to_handler[streamable-http-stateless-2025-11-25] [gw10] [ 39%] PASSED tests/interaction/auth/test_as_handlers.py::test_token_responses_carry_cache_control_no_store tests/interaction/auth/test_as_handlers.py::test_registration_with_invalid_metadata_is_rejected_with_400 [gw7] [ 39%] PASSED tests/interaction/mcpserver/test_resources.py::test_static_resource_function_raising_not_found_is_invalid_params[sse-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_static_resource_function_raising_not_found_is_invalid_params[streamable-http-2025-11-25] [gw14] [ 39%] PASSED tests/interaction/mcpserver/test_tools.py::test_complex_parameter_types_are_validated_and_coerced_before_the_tool_runs[streamable-http-2026-07-28] tests/interaction/mcpserver/test_tools.py::test_call_tool_function_exception_becomes_error_result[in-memory-2025-11-25] [gw8] [ 39%] PASSED tests/docs/test_build_config.py::test_lang_config_builds_the_staged_tree_into_site_code_without_an_api_reference [gw13] [ 39%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_unknown_prompt_is_error[streamable-http-stateless-2025-11-25] [gw10] [ 39%] PASSED tests/interaction/auth/test_as_handlers.py::test_registration_with_invalid_metadata_is_rejected_with_400 [gw1] [ 39%] PASSED tests/examples/test_stories.py::test_story[refund_desk-server-in-memory-legacy] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_missing_required_argument_is_an_error[in-memory-2025-11-25] tests/examples/test_stories.py::test_story[refund_desk-server-http-asgi-modern] tests/docs/test_build_config.py::test_lang_config_for_a_language_not_in_the_registry_exits_with_a_message tests/interaction/auth/test_as_handlers.py::test_registration_response_echoes_the_registered_application_type[web] [gw4] [ 39%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_capabilities[streamable-http-2025-11-25] [gw2] [ 39%] PASSED tests/interaction/lowlevel/test_progress.py::test_progress_token_visible_to_handler[streamable-http-stateless-2025-11-25] [gw10] [ 39%] PASSED tests/interaction/auth/test_as_handlers.py::test_registration_response_echoes_the_registered_application_type[web] tests/interaction/lowlevel/test_initialize.py::test_request_before_initialization_is_rejected [gw8] [ 39%] PASSED tests/docs/test_build_config.py::test_lang_config_for_a_language_not_in_the_registry_exits_with_a_message tests/interaction/auth/test_as_handlers.py::test_registration_response_echoes_the_registered_application_type[native] tests/interaction/lowlevel/test_progress.py::test_no_progress_callback_means_no_token[in-memory-2025-11-25] [gw7] [ 39%] PASSED tests/interaction/mcpserver/test_resources.py::test_static_resource_function_raising_not_found_is_invalid_params[streamable-http-2025-11-25] tests/docs/test_translations.py::test_sections_tile_the_page_and_blank_lines_belong_to_the_heading_after_them tests/interaction/mcpserver/test_resources.py::test_static_resource_function_raising_not_found_is_invalid_params[streamable-http-stateless-2025-11-25] [gw4] [ 39%] PASSED tests/interaction/lowlevel/test_initialize.py::test_request_before_initialization_is_rejected [gw10] [ 39%] PASSED tests/interaction/auth/test_as_handlers.py::test_registration_response_echoes_the_registered_application_type[native] [gw2] [ 39%] PASSED tests/interaction/lowlevel/test_progress.py::test_no_progress_callback_means_no_token[in-memory-2025-11-25] [gw13] [ 39%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_missing_required_argument_is_an_error[in-memory-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_missing_required_argument_is_an_error[sse-2025-11-25] [gw8] [ 39%] PASSED tests/docs/test_translations.py::test_sections_tile_the_page_and_blank_lines_belong_to_the_heading_after_them tests/interaction/auth/test_as_handlers.py::test_authorize_with_an_unregistered_redirect_uri_is_rejected_directly tests/interaction/lowlevel/test_progress.py::test_no_progress_callback_means_no_token[sse-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_initialize_negotiates_protocol_version [gw7] [ 39%] PASSED tests/interaction/mcpserver/test_resources.py::test_static_resource_function_raising_not_found_is_invalid_params[streamable-http-stateless-2025-11-25] tests/docs/test_translations.py::test_provenance_front_matter_round_trips_and_keeps_all_digit_hashes_as_strings [gw10] [ 39%] PASSED tests/interaction/auth/test_as_handlers.py::test_authorize_with_an_unregistered_redirect_uri_is_rejected_directly tests/interaction/mcpserver/test_resources.py::test_static_resource_function_raising_not_found_is_invalid_params[in-memory-2026-07-28] [gw8] [ 39%] PASSED tests/docs/test_translations.py::test_provenance_front_matter_round_trips_and_keeps_all_digit_hashes_as_strings [gw4] [ 39%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_negotiates_protocol_version [gw9] [ 39%] PASSED tests/docs/test_translations.py::test_shortened_list_and_table_are_fed_back_for_repair_before_the_page_is_published tests/docs/test_translations.py::test_page_still_broken_after_two_repair_turns_fails_and_keeps_the_previous_translation tests/interaction/auth/test_as_handlers.py::test_a_non_loopback_http_redirect_uri_is_accepted_at_registration [gw7] [ 39%] PASSED tests/interaction/mcpserver/test_resources.py::test_static_resource_function_raising_not_found_is_invalid_params[in-memory-2026-07-28] tests/docs/test_translations.py::test_heading_ids_are_the_ones_the_site_renderer_produces tests/interaction/mcpserver/test_resources.py::test_static_resource_function_raising_not_found_is_invalid_params[streamable-http-2026-07-28] tests/interaction/lowlevel/test_initialize.py::test_unsupported_server_protocol_version_fails_initialization [gw10] [ 39%] PASSED tests/interaction/auth/test_as_handlers.py::test_a_non_loopback_http_redirect_uri_is_accepted_at_registration [gw15] [ 39%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_abandoning_a_call_stops_the_server_handler[streamable-http-2025-11-25] [gw4] [ 39%] PASSED tests/interaction/lowlevel/test_initialize.py::test_unsupported_server_protocol_version_fails_initialization [gw6] [ 39%] PASSED tests/interaction/mcpserver/test_tools.py::test_registering_a_duplicate_tool_name_warns_and_keeps_the_first[streamable-http-2025-11-25] tests/interaction/auth/test_authorize_token.py::test_the_authorize_url_carries_s256_pkce_and_the_resource_indicator [gw14] [ 39%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_function_exception_becomes_error_result[in-memory-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_registering_a_duplicate_tool_name_warns_and_keeps_the_first[streamable-http-stateless-2025-11-25] [gw7] [ 39%] PASSED tests/interaction/mcpserver/test_resources.py::test_static_resource_function_raising_not_found_is_invalid_params[streamable-http-2026-07-28] tests/interaction/lowlevel/test_cancellation.py::test_abandoning_a_call_stops_the_server_handler[in-memory-2026-07-28] tests/interaction/mcpserver/test_tools.py::test_call_tool_function_exception_becomes_error_result[sse-2025-11-25] tests/interaction/lowlevel/test_initialize.py::test_an_older_supported_protocol_version_from_the_server_is_accepted tests/interaction/mcpserver/test_resources.py::test_registering_a_duplicate_resource_uri_warns_and_keeps_the_first[in-memory-2025-11-25] [gw5] [ 39%] PASSED tests/client/test_stdio.py::test_undelivered_server_output_is_drained_at_shutdown_so_the_server_can_exit [gw4] [ 39%] PASSED tests/interaction/lowlevel/test_initialize.py::test_an_older_supported_protocol_version_from_the_server_is_accepted [gw2] [ 39%] PASSED tests/interaction/lowlevel/test_progress.py::test_no_progress_callback_means_no_token[sse-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_no_progress_callback_means_no_token[streamable-http-2025-11-25] [gw15] [ 39%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_abandoning_a_call_stops_the_server_handler[in-memory-2026-07-28] tests/interaction/lowlevel/test_list_changed.py::test_tool_list_changed_notification[in-memory-2025-11-25] tests/client/test_stdio.py::test_shutdown_drains_stdout_first_so_a_wedged_writers_flush_can_complete tests/interaction/lowlevel/test_cancellation.py::test_abandoning_a_call_stops_the_server_handler[streamable-http-2026-07-28] [gw5] [ 39%] PASSED tests/client/test_stdio.py::test_shutdown_drains_stdout_first_so_a_wedged_writers_flush_can_complete [gw13] [ 39%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_missing_required_argument_is_an_error[sse-2025-11-25] tests/client/test_stdio.py::test_cancellation_with_undelivered_backlog_still_drains_and_spares_the_server [gw1] [ 39%] PASSED tests/examples/test_stories.py::test_story[refund_desk-server-http-asgi-modern] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_missing_required_argument_is_an_error[streamable-http-2025-11-25] [gw6] [ 39%] PASSED tests/interaction/mcpserver/test_tools.py::test_registering_a_duplicate_tool_name_warns_and_keeps_the_first[streamable-http-stateless-2025-11-25] [gw10] [ 39%] PASSED tests/interaction/auth/test_authorize_token.py::test_the_authorize_url_carries_s256_pkce_and_the_resource_indicator tests/interaction/auth/test_authorize_token.py::test_the_code_verifier_on_the_token_request_hashes_to_the_code_challenge tests/interaction/mcpserver/test_tools.py::test_registering_a_duplicate_tool_name_warns_and_keeps_the_first[in-memory-2026-07-28] [gw4] [ 39%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_tool_list_changed_notification[in-memory-2025-11-25] tests/interaction/lowlevel/test_list_changed.py::test_tool_list_changed_notification[sse-2025-11-25] [gw5] [ 39%] PASSED tests/client/test_stdio.py::test_cancellation_with_undelivered_backlog_still_drains_and_spares_the_server tests/examples/test_stories.py::test_story[refund_desk-server-http-asgi-legacy] tests/client/test_stdio.py::test_invalid_utf8_flushed_by_a_dying_server_does_not_break_shutdown [gw15] [ 39%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_abandoning_a_call_stops_the_server_handler[streamable-http-2026-07-28] tests/interaction/lowlevel/test_cancellation.py::test_abandoning_one_call_leaves_a_concurrent_call_running[in-memory-2025-11-25] [gw2] [ 39%] PASSED tests/interaction/lowlevel/test_progress.py::test_no_progress_callback_means_no_token[streamable-http-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_no_progress_callback_means_no_token[streamable-http-stateless-2025-11-25] [gw7] [ 39%] PASSED tests/interaction/mcpserver/test_resources.py::test_registering_a_duplicate_resource_uri_warns_and_keeps_the_first[in-memory-2025-11-25] [gw10] [ 39%] PASSED tests/interaction/auth/test_authorize_token.py::test_the_code_verifier_on_the_token_request_hashes_to_the_code_challenge tests/interaction/auth/test_authorize_token.py::test_a_mismatched_state_on_the_callback_aborts_the_flow [gw6] [ 39%] PASSED tests/interaction/mcpserver/test_tools.py::test_registering_a_duplicate_tool_name_warns_and_keeps_the_first[in-memory-2026-07-28] tests/interaction/mcpserver/test_tools.py::test_registering_a_duplicate_tool_name_warns_and_keeps_the_first[streamable-http-2026-07-28] tests/interaction/mcpserver/test_resources.py::test_registering_a_duplicate_resource_uri_warns_and_keeps_the_first[sse-2025-11-25] [gw15] [ 39%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_abandoning_one_call_leaves_a_concurrent_call_running[in-memory-2025-11-25] [gw14] [ 39%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_function_exception_becomes_error_result[sse-2025-11-25] tests/interaction/lowlevel/test_cancellation.py::test_abandoning_one_call_leaves_a_concurrent_call_running[sse-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_function_exception_becomes_error_result[streamable-http-2025-11-25] [gw4] [ 39%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_tool_list_changed_notification[sse-2025-11-25] tests/interaction/lowlevel/test_list_changed.py::test_tool_list_changed_notification[streamable-http-2025-11-25] [gw10] [ 39%] PASSED tests/interaction/auth/test_authorize_token.py::test_a_mismatched_state_on_the_callback_aborts_the_flow [gw2] [ 39%] PASSED tests/interaction/lowlevel/test_progress.py::test_no_progress_callback_means_no_token[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_no_progress_callback_means_no_token[in-memory-2026-07-28] tests/server/lowlevel/test_server_discover.py::test_unconfigured_experimental_is_omitted_from_both_initialize_and_discover [gw6] [ 39%] PASSED tests/interaction/mcpserver/test_tools.py::test_registering_a_duplicate_tool_name_warns_and_keeps_the_first[streamable-http-2026-07-28] [gw2] [ 39%] PASSED tests/interaction/lowlevel/test_progress.py::test_no_progress_callback_means_no_token[in-memory-2026-07-28] tests/interaction/mcpserver/test_tools.py::test_registering_a_tool_with_a_spec_invalid_name_warns_but_does_not_reject[in-memory-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_no_progress_callback_means_no_token[streamable-http-2026-07-28] [gw0] [ 39%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_re_list_gives_up_after_100_pages_of_a_listing_that_never_ends tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_raises_the_header_mismatch_when_the_re_list_fails [gw10] [ 39%] PASSED tests/server/lowlevel/test_server_discover.py::test_unconfigured_experimental_is_omitted_from_both_initialize_and_discover tests/server/lowlevel/test_server_listing.py::test_list_prompts_basic [gw13] [ 39%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_missing_required_argument_is_an_error[streamable-http-2025-11-25] [gw0] [ 39%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_raises_the_header_mismatch_when_the_re_list_fails [gw10] [ 39%] PASSED tests/server/lowlevel/test_server_listing.py::test_list_prompts_basic tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_missing_required_argument_is_an_error[streamable-http-stateless-2025-11-25] tests/server/lowlevel/test_server_listing.py::test_list_resources_basic [gw5] [ 39%] PASSED tests/client/test_stdio.py::test_invalid_utf8_flushed_by_a_dying_server_does_not_break_shutdown [gw2] [ 39%] PASSED tests/interaction/lowlevel/test_progress.py::test_no_progress_callback_means_no_token[streamable-http-2026-07-28] [gw10] [ 40%] PASSED tests/server/lowlevel/test_server_listing.py::test_list_resources_basic tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_raises_the_header_mismatch_when_the_re_list_returns_a_malformed_page tests/server/lowlevel/test_server_listing.py::test_list_tools_basic tests/client/test_stdio.py::test_a_kill_racing_a_pending_stdout_read_is_swallowed_during_shutdown tests/interaction/lowlevel/test_progress.py::test_client_progress_notification_reaches_server_handler[in-memory-2025-11-25] [gw10] [ 40%] PASSED tests/server/lowlevel/test_server_listing.py::test_list_tools_basic [gw4] [ 40%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_tool_list_changed_notification[streamable-http-2025-11-25] tests/server/lowlevel/test_server_listing.py::test_list_prompts_empty tests/interaction/lowlevel/test_list_changed.py::test_resource_list_changed_notification[in-memory-2025-11-25] [gw10] [ 40%] PASSED tests/server/lowlevel/test_server_listing.py::test_list_prompts_empty [gw15] [ 40%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_abandoning_one_call_leaves_a_concurrent_call_running[sse-2025-11-25] tests/server/lowlevel/test_server_listing.py::test_list_resources_empty [gw2] [ 40%] PASSED tests/interaction/lowlevel/test_progress.py::test_client_progress_notification_reaches_server_handler[in-memory-2025-11-25] [gw10] [ 40%] PASSED tests/server/lowlevel/test_server_listing.py::test_list_resources_empty tests/server/lowlevel/test_server_listing.py::test_list_tools_empty [gw4] [ 40%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_resource_list_changed_notification[in-memory-2025-11-25] [gw7] [ 40%] PASSED tests/interaction/mcpserver/test_resources.py::test_registering_a_duplicate_resource_uri_warns_and_keeps_the_first[sse-2025-11-25] [gw10] [ 40%] PASSED tests/server/lowlevel/test_server_listing.py::test_list_tools_empty tests/interaction/lowlevel/test_cancellation.py::test_abandoning_one_call_leaves_a_concurrent_call_running[streamable-http-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_client_progress_notification_reaches_server_handler[sse-2025-11-25] tests/server/lowlevel/test_server_pagination.py::test_list_prompts_pagination tests/interaction/lowlevel/test_list_changed.py::test_resource_list_changed_notification[sse-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_registering_a_duplicate_resource_uri_warns_and_keeps_the_first[streamable-http-2025-11-25] [gw3] [ 40%] PASSED tests/examples/test_stories.py::test_story[pagination-server-in-memory-legacy] [gw0] [ 40%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_raises_the_header_mismatch_when_the_re_list_returns_a_malformed_page tests/examples/test_stories.py::test_story[pagination-server-http-asgi-modern] [gw10] [ 40%] PASSED tests/server/lowlevel/test_server_pagination.py::test_list_prompts_pagination tests/server/lowlevel/test_server_pagination.py::test_list_resources_pagination [gw10] [ 40%] PASSED tests/server/lowlevel/test_server_pagination.py::test_list_resources_pagination [gw3] [ 40%] PASSED tests/examples/test_stories.py::test_story[pagination-server-http-asgi-modern] tests/server/lowlevel/test_server_pagination.py::test_list_tools_pagination [gw4] [ 40%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_resource_list_changed_notification[sse-2025-11-25] tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_raises_the_header_mismatch_when_the_re_list_outlasts_the_read_timeout[trio-mockclock] tests/interaction/lowlevel/test_list_changed.py::test_resource_list_changed_notification[streamable-http-2025-11-25] tests/examples/test_stories.py::test_story[pagination-server-http-asgi-legacy] [gw10] [ 40%] PASSED tests/server/lowlevel/test_server_pagination.py::test_list_tools_pagination [gw8] [ 40%] PASSED tests/docs/test_translations.py::test_heading_ids_are_the_ones_the_site_renderer_produces tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_metadata_endpoint [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_metadata_endpoint tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_validation_error [gw13] [ 40%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_missing_required_argument_is_an_error[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_wrong_type_argument_is_rejected_before_the_function_runs[in-memory-2025-11-25] [gw14] [ 40%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_function_exception_becomes_error_result[streamable-http-2025-11-25] tests/docs/test_translations.py::test_heading_the_source_scan_cannot_pin_makes_the_page_an_error [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_validation_error [gw3] [ 40%] PASSED tests/examples/test_stories.py::test_story[pagination-server-http-asgi-legacy] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_invalid_client_secret_returns_invalid_client [gw4] [ 40%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_resource_list_changed_notification[streamable-http-2025-11-25] tests/examples/test_stories.py::test_story[pagination-server_lowlevel-in-memory-modern] [gw2] [ 40%] PASSED tests/interaction/lowlevel/test_progress.py::test_client_progress_notification_reaches_server_handler[sse-2025-11-25] tests/interaction/lowlevel/test_list_changed.py::test_prompt_list_changed_notification[in-memory-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_function_exception_becomes_error_result[streamable-http-stateless-2025-11-25] [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_invalid_client_secret_returns_invalid_client tests/interaction/lowlevel/test_progress.py::test_client_progress_notification_reaches_server_handler[streamable-http-2025-11-25] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_invalid_auth_code [gw3] [ 40%] PASSED tests/examples/test_stories.py::test_story[pagination-server_lowlevel-in-memory-modern] [gw4] [ 40%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_prompt_list_changed_notification[in-memory-2025-11-25] tests/interaction/lowlevel/test_list_changed.py::test_prompt_list_changed_notification[sse-2025-11-25] tests/examples/test_stories.py::test_story[pagination-server_lowlevel-in-memory-legacy] [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_invalid_auth_code [gw0] [ 40%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_raises_the_header_mismatch_when_the_re_list_outlasts_the_read_timeout[trio-mockclock] tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_bounds_the_whole_re_list_by_the_client_default_read_timeout[trio-mockclock] [gw3] [ 40%] PASSED tests/examples/test_stories.py::test_story[pagination-server_lowlevel-in-memory-legacy] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_expired_auth_code tests/examples/test_stories.py::test_story[pagination-server_lowlevel-http-asgi-modern] [gw9] [ 40%] PASSED tests/docs/test_translations.py::test_page_still_broken_after_two_repair_turns_fails_and_keeps_the_previous_translation [gw4] [ 40%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_prompt_list_changed_notification[sse-2025-11-25] tests/interaction/lowlevel/test_list_changed.py::test_prompt_list_changed_notification[streamable-http-2025-11-25] [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_expired_auth_code tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_redirect_uri_mismatch[registered_client0] [gw3] [ 40%] PASSED tests/examples/test_stories.py::test_story[pagination-server_lowlevel-http-asgi-modern] tests/docs/test_translations.py::test_status_classifies_each_page_against_the_current_english_and_lists_removable_files [gw13] [ 40%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_wrong_type_argument_is_rejected_before_the_function_runs[in-memory-2025-11-25] tests/examples/test_stories.py::test_story[pagination-server_lowlevel-http-asgi-legacy] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_wrong_type_argument_is_rejected_before_the_function_runs[sse-2025-11-25] [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_redirect_uri_mismatch[registered_client0] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_code_verifier_mismatch [gw4] [ 40%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_prompt_list_changed_notification[streamable-http-2025-11-25] tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[in-memory-2025-11-25] [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_code_verifier_mismatch tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_invalid_refresh_token [gw4] [ 40%] PASSED tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[in-memory-2025-11-25] tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[sse-2025-11-25] [gw3] [ 40%] PASSED tests/examples/test_stories.py::test_story[pagination-server_lowlevel-http-asgi-legacy] [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_invalid_refresh_token tests/examples/test_stories.py::test_story[error_handling-server-in-memory-modern] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_expired_refresh_token [gw7] [ 40%] PASSED tests/interaction/mcpserver/test_resources.py::test_registering_a_duplicate_resource_uri_warns_and_keeps_the_first[streamable-http-2025-11-25] [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_expired_refresh_token [gw2] [ 40%] PASSED tests/interaction/lowlevel/test_progress.py::test_client_progress_notification_reaches_server_handler[streamable-http-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_registering_a_duplicate_resource_uri_warns_and_keeps_the_first[streamable-http-stateless-2025-11-25] [gw4] [ 40%] PASSED tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[sse-2025-11-25] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_invalid_scope tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[streamable-http-2025-11-25] [gw3] [ 40%] PASSED tests/examples/test_stories.py::test_story[error_handling-server-in-memory-modern] tests/interaction/lowlevel/test_progress.py::test_client_progress_notification_reaches_server_handler[streamable-http-stateless-2025-11-25] [gw5] [ 40%] PASSED tests/client/test_stdio.py::test_a_kill_racing_a_pending_stdout_read_is_swallowed_during_shutdown tests/client/test_stdio.py::test_a_mid_session_stdout_failure_is_logged_and_surfaces_as_clean_closure [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_token_invalid_scope tests/examples/test_stories.py::test_story[error_handling-server-in-memory-legacy] [gw13] [ 40%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_wrong_type_argument_is_rejected_before_the_function_runs[sse-2025-11-25] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_wrong_type_argument_is_rejected_before_the_function_runs[streamable-http-2025-11-25] [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration [gw0] [ 40%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_bounds_the_whole_re_list_by_the_client_default_read_timeout[trio-mockclock] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_missing_required_fields [gw4] [ 40%] PASSED tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[streamable-http-2025-11-25] [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_missing_required_fields tests/interaction/transports/test_hosting_http_modern.py::test_legacy_client_raises_a_header_mismatch_error_without_re_listing_or_retrying tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[streamable-http-stateless-2025-11-25] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_invalid_uri [gw8] [ 40%] PASSED tests/docs/test_translations.py::test_heading_the_source_scan_cannot_pin_makes_the_page_an_error [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_invalid_uri [gw1] [ 40%] PASSED tests/examples/test_stories.py::test_story[refund_desk-server-http-asgi-legacy] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_empty_redirect_uris [gw3] [ 40%] PASSED tests/examples/test_stories.py::test_story[error_handling-server-in-memory-legacy] tests/docs/test_translations.py::test_many_attribute_blocks_pin_the_last_id_only_when_they_end_the_heading tests/examples/test_stories.py::test_story[error_handling-server-http-asgi-modern] [gw10] [ 40%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_empty_redirect_uris tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_authorize_form_post [gw4] [ 41%] PASSED tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[streamable-http-stateless-2025-11-25] tests/examples/test_stories.py::test_story[sampling-server-in-memory-legacy] [gw8] [ 41%] PASSED tests/docs/test_translations.py::test_many_attribute_blocks_pin_the_last_id_only_when_they_end_the_heading [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_authorize_form_post tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[in-memory-2025-11-25] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_authorization_get tests/examples/test_stories.py::test_story[oauth-server_lowlevel-http-asgi-legacy] [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_authorization_get [gw15] [ 41%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_abandoning_one_call_leaves_a_concurrent_call_running[streamable-http-2025-11-25] tests/interaction/lowlevel/test_cancellation.py::test_abandoning_one_call_leaves_a_concurrent_call_running[in-memory-2026-07-28] [gw4] [ 41%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[in-memory-2025-11-25] [gw2] [ 41%] PASSED tests/interaction/lowlevel/test_progress.py::test_client_progress_notification_reaches_server_handler[streamable-http-stateless-2025-11-25] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_revoke_invalid_token tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[sse-2025-11-25] [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_revoke_invalid_token [gw15] [ 41%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_abandoning_one_call_leaves_a_concurrent_call_running[in-memory-2026-07-28] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_revoke_with_malformed_token [gw14] [ 41%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_function_exception_becomes_error_result[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_concurrent_requests_carry_distinct_progress_tokens[in-memory-2025-11-25] [gw13] [ 41%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_wrong_type_argument_is_rejected_before_the_function_runs[streamable-http-2025-11-25] tests/interaction/lowlevel/test_cancellation.py::test_abandoning_one_call_leaves_a_concurrent_call_running[streamable-http-2026-07-28] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_wrong_type_argument_is_rejected_before_the_function_runs[streamable-http-stateless-2025-11-25] [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_revoke_with_malformed_token tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_disallowed_scopes tests/interaction/mcpserver/test_tools.py::test_call_tool_function_exception_becomes_error_result[in-memory-2026-07-28] [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_disallowed_scopes [gw4] [ 41%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[sse-2025-11-25] tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[streamable-http-2025-11-25] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_default_scopes [gw3] [ 41%] PASSED tests/examples/test_stories.py::test_story[error_handling-server-http-asgi-modern] [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_default_scopes tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_with_authorization_code_only tests/examples/test_stories.py::test_story[error_handling-server-http-asgi-legacy] [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_with_authorization_code_only tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_missing_authorization_code [gw15] [ 41%] PASSED tests/interaction/lowlevel/test_cancellation.py::test_abandoning_one_call_leaves_a_concurrent_call_running[streamable-http-2026-07-28] [gw4] [ 41%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[streamable-http-2025-11-25] tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[streamable-http-stateless-2025-11-25] [gw0] [ 41%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_legacy_client_raises_a_header_mismatch_error_without_re_listing_or_retrying tests/interaction/lowlevel/test_client_connect.py::test_legacy_mode_sends_initialize_and_never_probes_discover [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_missing_authorization_code [gw2] [ 41%] PASSED tests/interaction/lowlevel/test_progress.py::test_concurrent_requests_carry_distinct_progress_tokens[in-memory-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_concurrent_requests_carry_distinct_progress_tokens[sse-2025-11-25] tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_stops_mirroring_after_a_re_list_drops_the_tool tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_with_additional_grant_type [gw1] [ 41%] PASSED tests/examples/test_stories.py::test_story[sampling-server-in-memory-legacy] [gw15] [ 41%] PASSED tests/interaction/lowlevel/test_client_connect.py::test_legacy_mode_sends_initialize_and_never_probes_discover [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_with_additional_grant_type [gw12] [ 41%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_params_reach_callback[streamable-http-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_image_content_reaches_callback[in-memory-2025-11-25] tests/interaction/lowlevel/test_client_connect.py::test_pinned_mode_sends_no_connect_time_traffic [gw14] [ 41%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_function_exception_becomes_error_result[in-memory-2026-07-28] tests/interaction/mcpserver/test_tools.py::test_call_tool_function_exception_becomes_error_result[streamable-http-2026-07-28] tests/examples/test_stories.py::test_story[sampling-server-http-asgi-legacy] [gw4] [ 41%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[in-memory-2026-07-28] [gw7] [ 41%] PASSED tests/interaction/mcpserver/test_resources.py::test_registering_a_duplicate_resource_uri_warns_and_keeps_the_first[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_registering_a_duplicate_resource_uri_warns_and_keeps_the_first[in-memory-2026-07-28] [gw12] [ 41%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_image_content_reaches_callback[in-memory-2025-11-25] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_with_additional_response_types [gw4] [ 41%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[in-memory-2026-07-28] tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_image_content_reaches_callback[sse-2025-11-25] [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_with_additional_response_types tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[streamable-http-2026-07-28] [gw15] [ 41%] PASSED tests/interaction/lowlevel/test_client_connect.py::test_pinned_mode_sends_no_connect_time_traffic [gw13] [ 41%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_a_wrong_type_argument_is_rejected_before_the_function_runs[streamable-http-stateless-2025-11-25] [gw5] [ 41%] PASSED tests/client/test_stdio.py::test_a_mid_session_stdout_failure_is_logged_and_surfaces_as_clean_closure tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_an_optional_argument_omitted_uses_the_default[in-memory-2025-11-25] tests/interaction/lowlevel/test_client_connect.py::test_prior_discover_populates_state_with_zero_connect_time_traffic tests/client/test_stdio.py::test_a_failing_stdout_close_still_closes_the_transport_streams tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_response_types_without_code [gw4] [ 41%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[streamable-http-2026-07-28] tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[in-memory-2025-11-25] [gw13] [ 41%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_an_optional_argument_omitted_uses_the_default[in-memory-2025-11-25] [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_response_types_without_code tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_an_optional_argument_omitted_uses_the_default[sse-2025-11-25] [gw15] [ 41%] PASSED tests/interaction/lowlevel/test_client_connect.py::test_prior_discover_populates_state_with_zero_connect_time_traffic [gw4] [ 41%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[in-memory-2025-11-25] tests/interaction/lowlevel/test_client_connect.py::test_auto_mode_probes_server_discover_and_adopts_the_result tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[sse-2025-11-25] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_default_response_types [gw3] [ 41%] PASSED tests/examples/test_stories.py::test_story[error_handling-server-http-asgi-legacy] [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_registration_default_response_types tests/examples/test_stories.py::test_story[error_handling-server_lowlevel-in-memory-modern] [gw14] [ 41%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_function_exception_becomes_error_result[streamable-http-2026-07-28] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_secret_basic_authentication tests/interaction/mcpserver/test_tools.py::test_call_tool_tool_error_becomes_error_result[in-memory-2025-11-25] [gw13] [ 41%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_an_optional_argument_omitted_uses_the_default[sse-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_an_optional_argument_omitted_uses_the_default[streamable-http-2025-11-25] [gw8] [ 41%] PASSED tests/examples/test_stories.py::test_story[oauth-server_lowlevel-http-asgi-legacy] [gw15] [ 41%] PASSED tests/interaction/lowlevel/test_client_connect.py::test_auto_mode_probes_server_discover_and_adopts_the_result tests/examples/test_stories.py::test_story[oauth_client_credentials-server-http-asgi-modern] [gw3] [ 41%] PASSED tests/examples/test_stories.py::test_story[error_handling-server_lowlevel-in-memory-modern] [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_client_secret_basic_authentication [gw12] [ 41%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_image_content_reaches_callback[sse-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_image_content_reaches_callback[streamable-http-2025-11-25] tests/interaction/lowlevel/test_client_connect.py::test_auto_mode_retries_discover_once_on_unsupported_protocol_version tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_wrong_auth_method_without_valid_credentials_fails [gw14] [ 41%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_tool_error_becomes_error_result[in-memory-2025-11-25] tests/examples/test_stories.py::test_story[error_handling-server_lowlevel-in-memory-legacy] tests/interaction/mcpserver/test_tools.py::test_call_tool_tool_error_becomes_error_result[sse-2025-11-25] [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_wrong_auth_method_without_valid_credentials_fails [gw7] [ 41%] PASSED tests/interaction/mcpserver/test_resources.py::test_registering_a_duplicate_resource_uri_warns_and_keeps_the_first[in-memory-2026-07-28] [gw9] [ 41%] PASSED tests/docs/test_translations.py::test_status_classifies_each_page_against_the_current_english_and_lists_removable_files [gw6] [ 41%] PASSED tests/interaction/mcpserver/test_tools.py::test_registering_a_tool_with_a_spec_invalid_name_warns_but_does_not_reject[in-memory-2025-11-25] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_basic_auth_without_header_fails [gw13] [ 41%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_an_optional_argument_omitted_uses_the_default[streamable-http-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_an_optional_argument_omitted_uses_the_default[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_registering_a_duplicate_resource_uri_warns_and_keeps_the_first[streamable-http-2026-07-28] tests/docs/test_translations.py::test_stage_overlays_translations_injects_notices_and_rewrites_api_links [gw2] [ 41%] PASSED tests/interaction/lowlevel/test_progress.py::test_concurrent_requests_carry_distinct_progress_tokens[sse-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_registering_a_tool_with_a_spec_invalid_name_warns_but_does_not_reject[sse-2025-11-25] [gw8] [ 41%] PASSED tests/examples/test_stories.py::test_story[oauth_client_credentials-server-http-asgi-modern] tests/examples/test_stories.py::test_story[oauth_client_credentials-server-http-asgi-legacy] [gw15] [ 41%] PASSED tests/interaction/lowlevel/test_client_connect.py::test_auto_mode_retries_discover_once_on_unsupported_protocol_version tests/interaction/lowlevel/test_progress.py::test_concurrent_requests_carry_distinct_progress_tokens[streamable-http-2025-11-25] [gw10] [ 41%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_basic_auth_without_header_fails [gw3] [ 42%] PASSED tests/examples/test_stories.py::test_story[error_handling-server_lowlevel-in-memory-legacy] tests/interaction/lowlevel/test_client_connect.py::test_auto_mode_propagates_a_network_error_from_discover_without_initializing tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_basic_auth_invalid_base64_fails tests/examples/test_stories.py::test_story[error_handling-server_lowlevel-http-asgi-modern] [gw15] [ 42%] PASSED tests/interaction/lowlevel/test_client_connect.py::test_auto_mode_propagates_a_network_error_from_discover_without_initializing [gw10] [ 42%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_basic_auth_invalid_base64_fails tests/interaction/lowlevel/test_client_connect.py::test_auto_mode_falls_back_to_initialize_on_a_legacy_probe_rejection[method-not-found] [gw12] [ 42%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_image_content_reaches_callback[streamable-http-2025-11-25] [gw1] [ 42%] PASSED tests/examples/test_stories.py::test_story[sampling-server-http-asgi-legacy] tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_image_content_returns_to_handler[in-memory-2025-11-25] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_basic_auth_no_colon_fails [gw13] [ 42%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_an_optional_argument_omitted_uses_the_default[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_an_optional_argument_omitted_uses_the_default[in-memory-2026-07-28] tests/examples/test_stories.py::test_story[sampling-server_lowlevel-in-memory-legacy] [gw15] [ 42%] PASSED tests/interaction/lowlevel/test_client_connect.py::test_auto_mode_falls_back_to_initialize_on_a_legacy_probe_rejection[method-not-found] tests/interaction/lowlevel/test_client_connect.py::test_auto_mode_falls_back_to_initialize_on_a_legacy_probe_rejection[invalid-request] [gw10] [ 42%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_basic_auth_no_colon_fails [gw15] [ 42%] PASSED tests/interaction/lowlevel/test_client_connect.py::test_auto_mode_falls_back_to_initialize_on_a_legacy_probe_rejection[invalid-request] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_basic_auth_client_id_mismatch_fails [gw4] [ 42%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[sse-2025-11-25] [gw1] [ 42%] PASSED tests/examples/test_stories.py::test_story[sampling-server_lowlevel-in-memory-legacy] [gw14] [ 42%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_tool_error_becomes_error_result[sse-2025-11-25] [gw13] [ 42%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_an_optional_argument_omitted_uses_the_default[in-memory-2026-07-28] tests/interaction/lowlevel/test_client_connect.py::test_every_request_on_a_modern_session_carries_the_three_key_meta_envelope[in-memory-2026-07-28] tests/examples/test_stories.py::test_story[sampling-server_lowlevel-http-asgi-legacy] tests/interaction/mcpserver/test_tools.py::test_call_tool_tool_error_becomes_error_result[streamable-http-2025-11-25] [gw3] [ 42%] PASSED tests/examples/test_stories.py::test_story[error_handling-server_lowlevel-http-asgi-modern] tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_an_optional_argument_omitted_uses_the_default[streamable-http-2026-07-28] tests/interaction/test_coverage.py::test_compute_cells_honours_arm_exclusion_from_any_stacked_requirement [gw12] [ 42%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_image_content_returns_to_handler[in-memory-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_image_content_returns_to_handler[sse-2025-11-25] tests/examples/test_stories.py::test_story[error_handling-server_lowlevel-http-asgi-legacy] [gw8] [ 42%] PASSED tests/examples/test_stories.py::test_story[oauth_client_credentials-server-http-asgi-legacy] [gw10] [ 42%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_basic_auth_client_id_mismatch_fails [gw15] [ 42%] PASSED tests/interaction/lowlevel/test_client_connect.py::test_every_request_on_a_modern_session_carries_the_three_key_meta_envelope[in-memory-2026-07-28] [gw4] [ 42%] PASSED tests/interaction/test_coverage.py::test_compute_cells_honours_arm_exclusion_from_any_stacked_requirement tests/interaction/lowlevel/test_client_connect.py::test_every_request_on_a_modern_session_carries_the_three_key_meta_envelope[streamable-http-2026-07-28] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_none_auth_method_public_client tests/examples/test_stories.py::test_story[oauth_client_credentials-server_lowlevel-http-asgi-modern] [gw12] [ 42%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_image_content_returns_to_handler[sse-2025-11-25] tests/interaction/test_coverage.py::test_compute_cells_wildcard_arm_exclusion_drops_every_cell tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_image_content_returns_to_handler[streamable-http-2025-11-25] [gw13] [ 42%] PASSED tests/interaction/mcpserver/test_prompts.py::test_get_prompt_with_an_optional_argument_omitted_uses_the_default[streamable-http-2026-07-28] [gw15] [ 42%] PASSED tests/interaction/lowlevel/test_client_connect.py::test_every_request_on_a_modern_session_carries_the_three_key_meta_envelope[streamable-http-2026-07-28] tests/interaction/lowlevel/test_client_connect.py::test_http_protocol_version_header_matches_meta_protocol_version_on_every_post [gw4] [ 42%] PASSED tests/interaction/test_coverage.py::test_compute_cells_wildcard_arm_exclusion_drops_every_cell [gw10] [ 42%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthEndpoints::test_none_auth_method_public_client tests/interaction/mcpserver/test_prompts.py::test_registering_a_duplicate_prompt_name_warns_and_keeps_the_first[in-memory-2025-11-25] [gw14] [ 42%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_tool_error_becomes_error_result[streamable-http-2025-11-25] tests/interaction/test_coverage.py::test_compute_cells_marks_known_failure_as_strict_xfail [gw1] [ 42%] PASSED tests/examples/test_stories.py::test_story[sampling-server_lowlevel-http-asgi-legacy] tests/examples/test_stories.py::test_story[stickynotes-server-in-memory-modern] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_missing_client_id [gw3] [ 42%] PASSED tests/examples/test_stories.py::test_story[error_handling-server_lowlevel-http-asgi-legacy] tests/interaction/mcpserver/test_tools.py::test_call_tool_tool_error_becomes_error_result[streamable-http-stateless-2025-11-25] [gw7] [ 42%] PASSED tests/interaction/mcpserver/test_resources.py::test_registering_a_duplicate_resource_uri_warns_and_keeps_the_first[streamable-http-2026-07-28] [gw15] [ 42%] PASSED tests/interaction/lowlevel/test_client_connect.py::test_http_protocol_version_header_matches_meta_protocol_version_on_every_post tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[in-memory-2025-11-25] tests/examples/test_stories.py::test_story[serve_one-server-in-memory-modern] [gw10] [ 42%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_missing_client_id tests/interaction/mcpserver/test_subscriptions.py::test_listen_surfaces_the_ack_and_iterates_typed_events[in-memory-2026-07-28] [gw2] [ 42%] PASSED tests/interaction/lowlevel/test_progress.py::test_concurrent_requests_carry_distinct_progress_tokens[streamable-http-2025-11-25] [gw4] [ 42%] PASSED tests/interaction/test_coverage.py::test_compute_cells_marks_known_failure_as_strict_xfail tests/server/mcpserver/test_extension.py::test_require_client_extension_raises_minus_32021_when_client_did_not_declare_it [gw15] [ 42%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[in-memory-2025-11-25] tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[sse-2025-11-25] [gw3] [ 42%] PASSED tests/examples/test_stories.py::test_story[serve_one-server-in-memory-modern] [gw12] [ 42%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_image_content_returns_to_handler[streamable-http-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_concurrent_requests_carry_distinct_progress_tokens[streamable-http-stateless-2025-11-25] tests/examples/test_stories.py::test_story[serve_one-server-in-memory-legacy] tests/interaction/lowlevel/test_sampling.py::test_create_message_callback_error[in-memory-2025-11-25] tests/interaction/test_coverage.py::test_compute_cells_wildcard_known_failure_marks_every_cell [gw15] [ 42%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[sse-2025-11-25] tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[streamable-http-2025-11-25] [gw9] [ 42%] PASSED tests/docs/test_translations.py::test_stage_overlays_translations_injects_notices_and_rewrites_api_links [gw4] [ 42%] PASSED tests/interaction/test_coverage.py::test_compute_cells_wildcard_known_failure_marks_every_cell tests/interaction/test_coverage.py::test_compute_cells_ignores_transports_field tests/docs/test_translations.py::test_stage_serves_an_outdated_translation_exactly_as_generated_and_a_missing_one_in_english [gw1] [ 42%] PASSED tests/examples/test_stories.py::test_story[stickynotes-server-in-memory-modern] [gw4] [ 42%] PASSED tests/interaction/test_coverage.py::test_compute_cells_ignores_transports_field tests/examples/test_stories.py::test_story[stickynotes-server-in-memory-legacy] tests/interaction/test_coverage.py::test_cell_id_omits_version_when_single_spec_version [gw10] [ 42%] PASSED tests/server/mcpserver/test_extension.py::test_require_client_extension_raises_minus_32021_when_client_did_not_declare_it [gw4] [ 42%] PASSED tests/interaction/test_coverage.py::test_cell_id_omits_version_when_single_spec_version tests/interaction/test_coverage.py::test_cell_id_appends_version_when_multiple_spec_versions [gw15] [ 42%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[streamable-http-2025-11-25] [gw12] [ 42%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_callback_error[in-memory-2025-11-25] [gw7] [ 42%] PASSED tests/interaction/mcpserver/test_subscriptions.py::test_listen_surfaces_the_ack_and_iterates_typed_events[in-memory-2026-07-28] tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[streamable-http-stateless-2025-11-25] [gw4] [ 42%] PASSED tests/interaction/test_coverage.py::test_cell_id_appends_version_when_multiple_spec_versions [gw3] [ 42%] PASSED tests/examples/test_stories.py::test_story[serve_one-server-in-memory-legacy] tests/interaction/transports/test_bridge.py::test_response_chunks_arrive_as_the_application_sends_them [gw14] [ 42%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_tool_error_becomes_error_result[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_subscriptions.py::test_listen_surfaces_the_ack_and_iterates_typed_events[streamable-http-2026-07-28] tests/server/mcpserver/test_func_metadata.py::test_complex_function_runtime_arg_validation_non_json tests/interaction/lowlevel/test_sampling.py::test_create_message_callback_error[sse-2025-11-25] [gw4] [ 42%] PASSED tests/interaction/transports/test_bridge.py::test_response_chunks_arrive_as_the_application_sends_them tests/interaction/mcpserver/test_tools.py::test_call_tool_tool_error_becomes_error_result[in-memory-2026-07-28] tests/interaction/transports/test_bridge.py::test_closing_the_response_delivers_a_disconnect_to_the_application [gw4] [ 42%] PASSED tests/interaction/transports/test_bridge.py::test_closing_the_response_delivers_a_disconnect_to_the_application [gw15] [ 42%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[streamable-http-stateless-2025-11-25] tests/interaction/transports/test_bridge.py::test_an_application_failure_before_the_response_starts_fails_the_request tests/examples/test_stories.py::test_story[stateless_legacy-server-http-asgi-in-body] tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[in-memory-2026-07-28] [gw4] [ 42%] PASSED tests/interaction/transports/test_bridge.py::test_an_application_failure_before_the_response_starts_fails_the_request [gw15] [ 42%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[in-memory-2026-07-28] [gw8] [ 42%] PASSED tests/examples/test_stories.py::test_story[oauth_client_credentials-server_lowlevel-http-asgi-modern] tests/interaction/transports/test_bridge.py::test_disabling_cancel_on_close_lets_the_application_finish_after_disconnect [gw13] [ 42%] PASSED tests/interaction/mcpserver/test_prompts.py::test_registering_a_duplicate_prompt_name_warns_and_keeps_the_first[in-memory-2025-11-25] [gw4] [ 42%] PASSED tests/interaction/transports/test_bridge.py::test_disabling_cancel_on_close_lets_the_application_finish_after_disconnect tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[streamable-http-2026-07-28] [gw1] [ 42%] PASSED tests/examples/test_stories.py::test_story[stickynotes-server-in-memory-legacy] tests/interaction/transports/test_client_transport_http.py::test_the_client_uses_the_supplied_http_client_and_propagates_its_headers tests/interaction/mcpserver/test_prompts.py::test_registering_a_duplicate_prompt_name_warns_and_keeps_the_first[sse-2025-11-25] tests/examples/test_stories.py::test_story[stickynotes-server-http-asgi-modern] [gw14] [ 42%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_tool_error_becomes_error_result[in-memory-2026-07-28] tests/interaction/mcpserver/test_tools.py::test_call_tool_tool_error_becomes_error_result[streamable-http-2026-07-28] [gw15] [ 42%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[streamable-http-2026-07-28] tests/examples/test_stories.py::test_story[oauth_client_credentials-server_lowlevel-http-asgi-legacy] tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[in-memory-2025-11-25] [gw7] [ 43%] PASSED tests/interaction/mcpserver/test_subscriptions.py::test_listen_surfaces_the_ack_and_iterates_typed_events[streamable-http-2026-07-28] [gw12] [ 43%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_callback_error[sse-2025-11-25] [gw15] [ 43%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[in-memory-2025-11-25] tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[sse-2025-11-25] tests/interaction/mcpserver/test_subscriptions.py::test_listen_on_a_pre_2026_connection_raises_the_typed_steer[in-memory-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_callback_error[streamable-http-2025-11-25] [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_complex_function_runtime_arg_validation_non_json tests/server/mcpserver/test_func_metadata.py::test_complex_function_runtime_arg_validation_with_json [gw7] [ 43%] PASSED tests/interaction/mcpserver/test_subscriptions.py::test_listen_on_a_pre_2026_connection_raises_the_typed_steer[in-memory-2025-11-25] [gw14] [ 43%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_tool_error_becomes_error_result[streamable-http-2026-07-28] tests/interaction/mcpserver/test_subscriptions.py::test_listen_on_a_pre_2026_connection_raises_the_typed_steer[sse-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_unknown_name_returns_error_result[in-memory-2025-11-25] [gw0] [ 43%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_client_stops_mirroring_after_a_re_list_drops_the_tool [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_complex_function_runtime_arg_validation_with_json [gw3] [ 43%] PASSED tests/examples/test_stories.py::test_story[stateless_legacy-server-http-asgi-in-body] tests/interaction/transports/test_hosting_http_modern.py::test_vendor_request_with_name_param_carries_mcp_name_on_the_wire [gw7] [ 43%] PASSED tests/interaction/mcpserver/test_subscriptions.py::test_listen_on_a_pre_2026_connection_raises_the_typed_steer[sse-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_call_fn_does_not_mutate_the_arguments_dict tests/interaction/mcpserver/test_subscriptions.py::test_listen_on_a_pre_2026_connection_raises_the_typed_steer[streamable-http-2025-11-25] tests/examples/test_stories.py::test_story[stateless_legacy-server_lowlevel-http-asgi-in-body] [gw13] [ 43%] PASSED tests/interaction/mcpserver/test_prompts.py::test_registering_a_duplicate_prompt_name_warns_and_keeps_the_first[sse-2025-11-25] [gw1] [ 43%] PASSED tests/examples/test_stories.py::test_story[stickynotes-server-http-asgi-modern] [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_call_fn_does_not_mutate_the_arguments_dict tests/interaction/mcpserver/test_prompts.py::test_registering_a_duplicate_prompt_name_warns_and_keeps_the_first[streamable-http-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_call_fn_with_arg_validation_still_works_and_warns [gw4] [ 43%] PASSED tests/interaction/transports/test_client_transport_http.py::test_the_client_uses_the_supplied_http_client_and_propagates_its_headers tests/examples/test_stories.py::test_story[stickynotes-server-http-asgi-legacy] [gw7] [ 43%] PASSED tests/interaction/mcpserver/test_subscriptions.py::test_listen_on_a_pre_2026_connection_raises_the_typed_steer[streamable-http-2025-11-25] [gw12] [ 43%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_callback_error[streamable-http-2025-11-25] tests/interaction/mcpserver/test_subscriptions.py::test_listen_on_a_pre_2026_connection_raises_the_typed_steer[streamable-http-stateless-2025-11-25] [gw14] [ 43%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_unknown_name_returns_error_result[in-memory-2025-11-25] [gw0] [ 43%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_vendor_request_with_name_param_carries_mcp_name_on_the_wire [gw2] [ 43%] PASSED tests/interaction/lowlevel/test_progress.py::test_concurrent_requests_carry_distinct_progress_tokens[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_concurrent_requests_carry_distinct_progress_tokens[in-memory-2026-07-28] [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_call_fn_with_arg_validation_still_works_and_warns tests/server/mcpserver/test_func_metadata.py::test_str_vs_list_str [gw15] [ 43%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[sse-2025-11-25] tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[streamable-http-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_unknown_name_returns_error_result[sse-2025-11-25] [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_str_vs_list_str tests/interaction/transports/test_client_transport_http.py::test_every_request_after_initialize_carries_the_issued_session_id tests/interaction/lowlevel/test_sampling.py::test_create_message_without_callback_is_error[in-memory-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_pre_parse_json_leaves_strings_the_json_parser_refuses_untouched tests/interaction/transports/test_hosting_resume.py::test_a_post_sse_stream_begins_with_a_priming_event_and_stamps_every_event [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_pre_parse_json_leaves_strings_the_json_parser_refuses_untouched tests/server/mcpserver/test_func_metadata.py::test_skip_names [gw2] [ 43%] PASSED tests/interaction/lowlevel/test_progress.py::test_concurrent_requests_carry_distinct_progress_tokens[in-memory-2026-07-28] tests/interaction/lowlevel/test_progress.py::test_concurrent_requests_carry_distinct_progress_tokens[streamable-http-2026-07-28] [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_skip_names tests/server/mcpserver/test_func_metadata.py::test_structured_output_dict_str_types [gw7] [ 43%] PASSED tests/interaction/mcpserver/test_subscriptions.py::test_listen_on_a_pre_2026_connection_raises_the_typed_steer[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_returns_text_content[in-memory-2025-11-25] [gw12] [ 43%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_without_callback_is_error[in-memory-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_without_callback_is_error[sse-2025-11-25] [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_dict_str_types tests/server/mcpserver/test_func_metadata.py::test_lambda_function [gw14] [ 43%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_unknown_name_returns_error_result[sse-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_unknown_name_returns_error_result[streamable-http-2025-11-25] [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_lambda_function [gw7] [ 43%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_returns_text_content[in-memory-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_returns_text_content[sse-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_complex_function_json_schema [gw0] [ 43%] PASSED tests/interaction/transports/test_hosting_resume.py::test_a_post_sse_stream_begins_with_a_priming_event_and_stamps_every_event [gw15] [ 43%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[streamable-http-2025-11-25] tests/interaction/transports/test_hosting_resume.py::test_the_priming_row_is_stored_before_any_handler_output_for_that_stream [gw3] [ 43%] PASSED tests/examples/test_stories.py::test_story[stateless_legacy-server_lowlevel-http-asgi-in-body] tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[streamable-http-stateless-2025-11-25] [gw8] [ 43%] PASSED tests/examples/test_stories.py::test_story[oauth_client_credentials-server_lowlevel-http-asgi-legacy] [gw4] [ 43%] PASSED tests/interaction/transports/test_client_transport_http.py::test_every_request_after_initialize_carries_the_issued_session_id [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_complex_function_json_schema [gw9] [ 43%] PASSED tests/docs/test_translations.py::test_stage_serves_an_outdated_translation_exactly_as_generated_and_a_missing_one_in_english tests/docs/test_translations.py::test_stage_keeps_showing_the_generated_code_block_after_its_english_changes_until_the_page_is_retranslated tests/server/mcpserver/test_func_metadata.py::test_str_vs_int tests/interaction/transports/test_client_transport_http.py::test_every_request_after_initialize_carries_the_negotiated_protocol_version [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_str_vs_int tests/examples/test_stories.py::test_story[identity_assertion-server-http-asgi-modern] tests/examples/test_stories.py::test_story[json_response-server-http-asgi-modern] [gw6] [ 43%] PASSED tests/interaction/mcpserver/test_tools.py::test_registering_a_tool_with_a_spec_invalid_name_warns_but_does_not_reject[sse-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_str_annotation_preserves_json_string tests/interaction/mcpserver/test_tools.py::test_registering_a_tool_with_a_spec_invalid_name_warns_but_does_not_reject[streamable-http-2025-11-25] [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_str_annotation_preserves_json_string tests/server/mcpserver/test_func_metadata.py::test_str_annotation_runtime_validation [gw2] [ 43%] PASSED tests/interaction/lowlevel/test_progress.py::test_concurrent_requests_carry_distinct_progress_tokens[streamable-http-2026-07-28] [gw12] [ 43%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_without_callback_is_error[sse-2025-11-25] [gw13] [ 43%] PASSED tests/interaction/mcpserver/test_prompts.py::test_registering_a_duplicate_prompt_name_warns_and_keeps_the_first[streamable-http-2025-11-25] [gw7] [ 43%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_returns_text_content[sse-2025-11-25] [gw14] [ 43%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_unknown_name_returns_error_result[streamable-http-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_without_callback_is_error[streamable-http-2025-11-25] [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_str_annotation_runtime_validation tests/interaction/mcpserver/test_tools.py::test_call_tool_returns_text_content[streamable-http-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_progress_sent_after_the_response_is_not_delivered_to_the_callback[in-memory-2025-11-25] [gw15] [ 43%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_prompts.py::test_registering_a_duplicate_prompt_name_warns_and_keeps_the_first[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_unknown_name_returns_error_result[streamable-http-stateless-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_structured_output_requires_return_annotation [gw3] [ 43%] PASSED tests/examples/test_stories.py::test_story[json_response-server-http-asgi-modern] [gw0] [ 43%] PASSED tests/interaction/transports/test_hosting_resume.py::test_the_priming_row_is_stored_before_any_handler_output_for_that_stream tests/interaction/transports/test_hosting_resume.py::test_get_with_last_event_id_replays_only_that_streams_missed_events [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_requires_return_annotation tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[in-memory-2026-07-28] [gw2] [ 43%] PASSED tests/interaction/lowlevel/test_progress.py::test_progress_sent_after_the_response_is_not_delivered_to_the_callback[in-memory-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_structured_output_basemodel [gw15] [ 43%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[in-memory-2026-07-28] tests/examples/test_stories.py::test_story[json_response-server_lowlevel-http-asgi-modern] [gw4] [ 43%] PASSED tests/interaction/transports/test_client_transport_http.py::test_every_request_after_initialize_carries_the_negotiated_protocol_version tests/interaction/transports/test_client_transport_http.py::test_accept_headers_cover_the_response_representations_the_transport_handles [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_basemodel tests/server/mcpserver/test_func_metadata.py::test_structured_output_primitives tests/interaction/lowlevel/test_progress.py::test_progress_sent_after_the_response_is_not_delivered_to_the_callback[sse-2025-11-25] tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[streamable-http-2026-07-28] [gw3] [ 43%] PASSED tests/examples/test_stories.py::test_story[json_response-server_lowlevel-http-asgi-modern] [gw10] [ 43%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_primitives tests/examples/test_stories.py::test_story[legacy_routing-server-http-asgi-in-body] tests/server/mcpserver/test_func_metadata.py::test_structured_output_generic_types [gw14] [ 43%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_unknown_name_returns_error_result[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_unknown_name_returns_error_result[in-memory-2026-07-28] [gw7] [ 43%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_returns_text_content[streamable-http-2025-11-25] [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_generic_types tests/server/mcpserver/test_func_metadata.py::test_structured_output_dataclass [gw15] [ 44%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[streamable-http-2026-07-28] [gw12] [ 44%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_without_callback_is_error[streamable-http-2025-11-25] tests/interaction/lowlevel/test_sampling.py::test_create_message_with_tools_is_rejected_for_unsupporting_client[in-memory-2025-11-25] tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[in-memory-2025-11-25] [gw4] [ 44%] PASSED tests/interaction/transports/test_client_transport_http.py::test_accept_headers_cover_the_response_representations_the_transport_handles [gw12] [ 44%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_tools_is_rejected_for_unsupporting_client[in-memory-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_returns_text_content[streamable-http-stateless-2025-11-25] tests/interaction/transports/test_client_transport_http.py::test_closing_the_client_sends_delete_and_does_not_reconnect tests/interaction/lowlevel/test_sampling.py::test_create_message_with_tools_is_rejected_for_unsupporting_client[sse-2025-11-25] [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_dataclass tests/server/mcpserver/test_func_metadata.py::test_structured_output_typeddict [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_typeddict tests/server/mcpserver/test_func_metadata.py::test_structured_output_typeddict_qualifiers_and_metadata [gw14] [ 44%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_unknown_name_returns_error_result[in-memory-2026-07-28] [gw15] [ 44%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[in-memory-2025-11-25] [gw0] [ 44%] PASSED tests/interaction/transports/test_hosting_resume.py::test_get_with_last_event_id_replays_only_that_streams_missed_events [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_typeddict_qualifiers_and_metadata [gw2] [ 44%] PASSED tests/interaction/lowlevel/test_progress.py::test_progress_sent_after_the_response_is_not_delivered_to_the_callback[sse-2025-11-25] [gw4] [ 44%] PASSED tests/interaction/transports/test_client_transport_http.py::test_closing_the_client_sends_delete_and_does_not_reconnect [gw12] [ 44%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_tools_is_rejected_for_unsupporting_client[sse-2025-11-25] tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[sse-2025-11-25] tests/interaction/transports/test_client_transport_http.py::test_concurrent_tool_calls_each_open_a_post_stream_and_receive_their_own_response tests/interaction/transports/test_hosting_resume.py::test_a_pre_2025_11_25_reconnect_replays_without_minting_a_priming_event tests/interaction/lowlevel/test_sampling.py::test_create_message_with_tools_is_rejected_for_unsupporting_client[streamable-http-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_func_metadata_built_by_hand_keeps_a_given_output_schema [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_func_metadata_built_by_hand_keeps_a_given_output_schema tests/interaction/mcpserver/test_tools.py::test_call_tool_unknown_name_returns_error_result[streamable-http-2026-07-28] tests/interaction/lowlevel/test_progress.py::test_progress_sent_after_the_response_is_not_delivered_to_the_callback[streamable-http-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_func_metadata_output_fields_are_read_live [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_func_metadata_output_fields_are_read_live tests/server/mcpserver/test_func_metadata.py::test_structured_output_typeddict_with_unresolvable_annotation_is_unstructured [gw8] [ 44%] PASSED tests/examples/test_stories.py::test_story[identity_assertion-server-http-asgi-modern] tests/examples/test_stories.py::test_story[identity_assertion-server-http-asgi-legacy] [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_typeddict_with_unresolvable_annotation_is_unstructured [gw14] [ 44%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_unknown_name_returns_error_result[streamable-http-2026-07-28] [gw13] [ 44%] PASSED tests/interaction/mcpserver/test_prompts.py::test_registering_a_duplicate_prompt_name_warns_and_keeps_the_first[streamable-http-stateless-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_structured_output_ordinary_class tests/interaction/mcpserver/test_prompts.py::test_registering_a_duplicate_prompt_name_warns_and_keeps_the_first[in-memory-2026-07-28] [gw12] [ 44%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_tools_is_rejected_for_unsupporting_client[streamable-http-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_model_return_becomes_structured_content[in-memory-2025-11-25] [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_ordinary_class [gw1] [ 44%] PASSED tests/examples/test_stories.py::test_story[stickynotes-server-http-asgi-legacy] tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mixed_tool_result_content_is_rejected[in-memory-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_unstructured_output_unannotated_class [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_unstructured_output_unannotated_class [gw12] [ 44%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mixed_tool_result_content_is_rejected[in-memory-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_block] tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mixed_tool_result_content_is_rejected[sse-2025-11-25] tests/examples/test_stories.py::test_story[stickynotes-server_lowlevel-in-memory-modern] [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_block] [gw15] [ 44%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[sse-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_blocks] [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_blocks] tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_strings_and_images] [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_strings_and_images] [gw7] [ 44%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_returns_text_content[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_returns_text_content[in-memory-2026-07-28] [gw12] [ 44%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mixed_tool_result_content_is_rejected[sse-2025-11-25] tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[streamable-http-2025-11-25] [gw14] [ 44%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_model_return_becomes_structured_content[in-memory-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_model_return_becomes_structured_content[sse-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_audio_clips] [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_audio_clips] tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_described_blocks] tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mixed_tool_result_content_is_rejected[streamable-http-2025-11-25] [gw3] [ 44%] PASSED tests/examples/test_stories.py::test_story[legacy_routing-server-http-asgi-in-body] [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_described_blocks] [gw0] [ 44%] PASSED tests/interaction/transports/test_hosting_resume.py::test_a_pre_2025_11_25_reconnect_replays_without_minting_a_priming_event tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_call_tool_result_annotated_with_blocks] tests/examples/test_stories.py::test_story[legacy_routing-server_lowlevel-http-asgi-in-body] [gw4] [ 44%] PASSED tests/interaction/transports/test_client_transport_http.py::test_concurrent_tool_calls_each_open_a_post_stream_and_receive_their_own_response [gw2] [ 44%] PASSED tests/interaction/lowlevel/test_progress.py::test_progress_sent_after_the_response_is_not_delivered_to_the_callback[streamable-http-2025-11-25] tests/interaction/transports/test_client_transport_http.py::test_client_tolerates_405_on_get_and_delete [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_call_tool_result_annotated_with_blocks] tests/server/mcpserver/test_func_metadata.py::test_structured_output_true_overrides_the_content_block_rule [gw12] [ 44%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mixed_tool_result_content_is_rejected[streamable-http-2025-11-25] [gw7] [ 44%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_returns_text_content[in-memory-2026-07-28] tests/interaction/lowlevel/test_progress.py::test_non_increasing_progress_values_are_forwarded_unchanged[in-memory-2025-11-25] [gw1] [ 44%] PASSED tests/examples/test_stories.py::test_story[stickynotes-server_lowlevel-in-memory-modern] tests/interaction/transports/test_streamable_http.py::test_cancelled_request_is_terminated_with_request_cancelled[sse-response] tests/interaction/transports/test_hosting_resume.py::test_an_unknown_last_event_id_yields_an_empty_replay_stream [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_true_overrides_the_content_block_rule tests/server/mcpserver/test_func_metadata.py::test_content_blocks_as_model_fields_or_mapping_values_stay_structured[_returns_report] tests/examples/test_stories.py::test_story[stickynotes-server_lowlevel-in-memory-legacy] [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_content_blocks_as_model_fields_or_mapping_values_stay_structured[_returns_report] tests/server/mcpserver/test_func_metadata.py::test_content_blocks_as_model_fields_or_mapping_values_stay_structured[_returns_blocks_by_key] tests/interaction/mcpserver/test_tools.py::test_call_tool_returns_text_content[streamable-http-2026-07-28] [gw4] [ 44%] PASSED tests/interaction/transports/test_client_transport_http.py::test_client_tolerates_405_on_get_and_delete [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_content_blocks_as_model_fields_or_mapping_values_stay_structured[_returns_blocks_by_key] [gw14] [ 44%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_model_return_becomes_structured_content[sse-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_is_unstructured_and_not_converted [gw12] [ 44%] PASSED tests/interaction/transports/test_streamable_http.py::test_cancelled_request_is_terminated_with_request_cancelled[sse-response] tests/issues/test_100_tool_listing.py::test_list_tools_returns_all_tools tests/interaction/transports/test_client_transport_http.py::test_a_completed_post_stream_is_not_reconnected [gw15] [ 44%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[streamable-http-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_model_return_becomes_structured_content[streamable-http-2025-11-25] [gw2] [ 44%] PASSED tests/interaction/lowlevel/test_progress.py::test_non_increasing_progress_values_are_forwarded_unchanged[in-memory-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_non_increasing_progress_values_are_forwarded_unchanged[sse-2025-11-25] [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_is_unstructured_and_not_converted tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_annotated_is_structured_and_converted [gw6] [ 44%] PASSED tests/interaction/mcpserver/test_tools.py::test_registering_a_tool_with_a_spec_invalid_name_warns_but_does_not_reject[streamable-http-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_registering_a_tool_with_a_spec_invalid_name_warns_but_does_not_reject[streamable-http-stateless-2025-11-25] [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_annotated_is_structured_and_converted tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[streamable-http-stateless-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_annotated_unioned_with_input_required_result_is_equivalent_to_the_bare_annotated_form [gw4] [ 44%] PASSED tests/interaction/transports/test_client_transport_http.py::test_a_completed_post_stream_is_not_reconnected tests/interaction/transports/test_client_transport_http.py::test_a_404_mid_session_surfaces_as_a_session_terminated_error [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_annotated_unioned_with_input_required_result_is_equivalent_to_the_bare_annotated_form tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_annotated_is_structured_and_invalid [gw7] [ 44%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_returns_text_content[streamable-http-2026-07-28] tests/interaction/mcpserver/test_tools.py::test_complex_parameter_types_are_validated_and_coerced_before_the_tool_runs[in-memory-2025-11-25] [gw10] [ 44%] PASSED tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_annotated_is_structured_and_invalid [gw13] [ 44%] PASSED tests/interaction/mcpserver/test_prompts.py::test_registering_a_duplicate_prompt_name_warns_and_keeps_the_first[in-memory-2026-07-28] tests/interaction/mcpserver/test_prompts.py::test_registering_a_duplicate_prompt_name_warns_and_keeps_the_first[streamable-http-2026-07-28] tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_in_optional_is_rejected [gw3] [ 44%] PASSED tests/examples/test_stories.py::test_story[legacy_routing-server_lowlevel-http-asgi-in-body] [gw0] [ 45%] PASSED tests/interaction/transports/test_hosting_resume.py::test_an_unknown_last_event_id_yields_an_empty_replay_stream [gw4] [ 45%] PASSED tests/interaction/transports/test_client_transport_http.py::test_a_404_mid_session_surfaces_as_a_session_terminated_error tests/examples/test_stories.py::test_story[starlette_mount-server-http-asgi-modern] [gw10] [ 45%] PASSED tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_in_optional_is_rejected tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_in_union_is_rejected tests/interaction/transports/test_client_transport_http.py::test_at_2026_abandoning_a_call_closes_its_stream_and_posts_nothing tests/interaction/transports/test_hosting_resume.py::test_dropping_the_connection_mid_request_does_not_cancel_the_handler [gw10] [ 45%] PASSED tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_in_union_is_rejected tests/server/mcpserver/test_resolve.py::test_independent_nested_deps_batch_into_one_round [gw5] [ 45%] PASSED tests/client/test_stdio.py::test_a_failing_stdout_close_still_closes_the_transport_streams tests/client/test_stdio.py::test_a_process_surviving_the_kill_escalation_is_logged_and_abandoned [gw9] [ 45%] PASSED tests/docs/test_translations.py::test_stage_keeps_showing_the_generated_code_block_after_its_english_changes_until_the_page_is_retranslated tests/docs/test_translations.py::test_notice_links_climb_from_the_staged_page_to_the_english_page_and_this_sites_translations_page [gw4] [ 45%] PASSED tests/interaction/transports/test_client_transport_http.py::test_at_2026_abandoning_a_call_closes_its_stream_and_posts_nothing [gw9] [ 45%] PASSED tests/docs/test_translations.py::test_notice_links_climb_from_the_staged_page_to_the_english_page_and_this_sites_translations_page tests/interaction/transports/test_client_transport_http.py::test_at_2025_abandoning_a_call_posts_exactly_one_cancelled_frame tests/docs/test_translations.py::test_stage_that_stops_part_way_leaves_no_titles_file_from_an_earlier_run [gw3] [ 45%] PASSED tests/examples/test_stories.py::test_story[starlette_mount-server-http-asgi-modern] [gw15] [ 45%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[streamable-http-stateless-2025-11-25] tests/examples/test_stories.py::test_story[starlette_mount-server-http-asgi-legacy] [gw2] [ 45%] PASSED tests/interaction/lowlevel/test_progress.py::test_non_increasing_progress_values_are_forwarded_unchanged[sse-2025-11-25] [gw10] [ 45%] PASSED tests/server/mcpserver/test_resolve.py::test_independent_nested_deps_batch_into_one_round tests/server/mcpserver/test_resolve.py::test_deep_chain_keeps_early_answers_across_rounds tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_invalid_client_id [gw0] [ 45%] PASSED tests/interaction/transports/test_hosting_resume.py::test_dropping_the_connection_mid_request_does_not_cancel_the_handler [gw14] [ 45%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_model_return_becomes_structured_content[streamable-http-2025-11-25] tests/interaction/lowlevel/test_progress.py::test_non_increasing_progress_values_are_forwarded_unchanged[streamable-http-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_model_return_becomes_structured_content[streamable-http-stateless-2025-11-25] tests/interaction/transports/test_hosting_resume.py::test_a_call_whose_stream_the_server_closes_is_resumed_by_the_client [gw7] [ 45%] PASSED tests/interaction/mcpserver/test_tools.py::test_complex_parameter_types_are_validated_and_coerced_before_the_tool_runs[in-memory-2025-11-25] [gw8] [ 45%] PASSED tests/examples/test_stories.py::test_story[identity_assertion-server-http-asgi-legacy] tests/interaction/mcpserver/test_tools.py::test_complex_parameter_types_are_validated_and_coerced_before_the_tool_runs[sse-2025-11-25] [gw1] [ 45%] PASSED tests/examples/test_stories.py::test_story[stickynotes-server_lowlevel-in-memory-legacy] tests/examples/test_stories.py::test_story[stickynotes-server_lowlevel-http-asgi-modern] [gw12] [ 45%] PASSED tests/issues/test_100_tool_listing.py::test_list_tools_returns_all_tools tests/issues/test_129_resource_templates.py::test_resource_templates tests/examples/test_stories.py::test_story[identity_assertion-server_lowlevel-http-asgi-modern] [gw15] [ 45%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_invalid_client_id [gw12] [ 45%] PASSED tests/issues/test_129_resource_templates.py::test_resource_templates tests/issues/test_1338_icons_and_metadata.py::test_icons_and_website_url [gw10] [ 45%] PASSED tests/server/mcpserver/test_resolve.py::test_deep_chain_keeps_early_answers_across_rounds tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_missing_redirect_uri [gw3] [ 45%] PASSED tests/examples/test_stories.py::test_story[starlette_mount-server-http-asgi-legacy] tests/server/mcpserver/test_resolve.py::test_factory_closures_get_distinct_wire_keys [gw12] [ 45%] PASSED tests/issues/test_1338_icons_and_metadata.py::test_icons_and_website_url tests/issues/test_1338_icons_and_metadata.py::test_multiple_icons tests/examples/test_stories.py::test_story[sse_polling-server-http-asgi-legacy] [gw12] [ 45%] PASSED tests/issues/test_1338_icons_and_metadata.py::test_multiple_icons tests/issues/test_1338_icons_and_metadata.py::test_no_icons_or_website [gw10] [ 45%] PASSED tests/server/mcpserver/test_resolve.py::test_factory_closures_get_distinct_wire_keys [gw15] [ 45%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_missing_redirect_uri [gw12] [ 45%] PASSED tests/issues/test_1338_icons_and_metadata.py::test_no_icons_or_website tests/server/mcpserver/test_resolve.py::test_eliciting_resolver_without_elicit_arm_restores_a_typed_model tests/issues/test_1363_race_condition_streamable_http.py::test_race_condition_invalid_accept_headers [gw9] [ 45%] PASSED tests/docs/test_translations.py::test_stage_that_stops_part_way_leaves_no_titles_file_from_an_earlier_run [gw14] [ 45%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_model_return_becomes_structured_content[streamable-http-stateless-2025-11-25] tests/docs/test_translations.py::test_stage_without_lang_stages_every_language_in_the_registry tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_invalid_redirect_uri [gw7] [ 45%] PASSED tests/interaction/mcpserver/test_tools.py::test_complex_parameter_types_are_validated_and_coerced_before_the_tool_runs[sse-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_model_return_becomes_structured_content[in-memory-2026-07-28] [gw4] [ 45%] PASSED tests/interaction/transports/test_client_transport_http.py::test_at_2025_abandoning_a_call_posts_exactly_one_cancelled_frame [gw0] [ 45%] PASSED tests/interaction/transports/test_hosting_resume.py::test_a_call_whose_stream_the_server_closes_is_resumed_by_the_client [gw10] [ 45%] PASSED tests/server/mcpserver/test_resolve.py::test_eliciting_resolver_without_elicit_arm_restores_a_typed_model tests/server/auth/test_protected_resource.py::test_metadata_url_construction_various_resource_configurations[https://example.com-https://example.com/.well-known/oauth-protected-resource] tests/interaction/transports/test_flows.py::test_concurrent_clients_on_one_stateful_server_receive_only_their_own_notifications tests/server/mcpserver/test_resolve.py::test_wire_key_is_worker_stable_for_methods_and_callable_objects [gw10] [ 45%] PASSED tests/server/mcpserver/test_resolve.py::test_wire_key_is_worker_stable_for_methods_and_callable_objects tests/interaction/transports/test_hosting_resume.py::test_a_captured_resumption_token_replays_missed_messages_on_a_new_connection tests/server/mcpserver/test_resolve.py::test_declined_outcome_persists_in_request_state_and_is_not_reasked [gw7] [ 45%] PASSED tests/server/auth/test_protected_resource.py::test_metadata_url_construction_various_resource_configurations[https://example.com-https://example.com/.well-known/oauth-protected-resource] tests/server/auth/test_protected_resource.py::test_metadata_url_construction_various_resource_configurations[https://example.com/-https://example.com/.well-known/oauth-protected-resource] [gw1] [ 45%] PASSED tests/examples/test_stories.py::test_story[stickynotes-server_lowlevel-http-asgi-modern] [gw15] [ 45%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_invalid_redirect_uri tests/examples/test_stories.py::test_story[stickynotes-server_lowlevel-http-asgi-legacy] [gw7] [ 45%] PASSED tests/server/auth/test_protected_resource.py::test_metadata_url_construction_various_resource_configurations[https://example.com/-https://example.com/.well-known/oauth-protected-resource] [gw2] [ 45%] PASSED tests/interaction/lowlevel/test_progress.py::test_non_increasing_progress_values_are_forwarded_unchanged[streamable-http-2025-11-25] [gw14] [ 45%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_model_return_becomes_structured_content[in-memory-2026-07-28] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_missing_redirect_uri_multiple_registered[registered_client0] tests/server/auth/test_protected_resource.py::test_metadata_url_construction_various_resource_configurations[https://example.com/mcp-https://example.com/.well-known/oauth-protected-resource/mcp] [gw10] [ 45%] PASSED tests/server/mcpserver/test_resolve.py::test_declined_outcome_persists_in_request_state_and_is_not_reasked tests/interaction/lowlevel/test_progress.py::test_non_increasing_progress_values_are_forwarded_unchanged[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_model_return_becomes_structured_content[streamable-http-2026-07-28] tests/server/mcpserver/test_resolve.py::test_unknown_response_keys_and_ghost_state_entries_are_ignored [gw7] [ 45%] PASSED tests/server/auth/test_protected_resource.py::test_metadata_url_construction_various_resource_configurations[https://example.com/mcp-https://example.com/.well-known/oauth-protected-resource/mcp] tests/server/auth/test_protected_resource.py::test_metadata_url_construction_various_resource_configurations[http://localhost:8001/mcp-http://localhost:8001/.well-known/oauth-protected-resource/mcp] [gw15] [ 45%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_missing_redirect_uri_multiple_registered[registered_client0] [gw7] [ 45%] PASSED tests/server/auth/test_protected_resource.py::test_metadata_url_construction_various_resource_configurations[http://localhost:8001/mcp-http://localhost:8001/.well-known/oauth-protected-resource/mcp] [gw8] [ 45%] PASSED tests/examples/test_stories.py::test_story[identity_assertion-server_lowlevel-http-asgi-modern] [gw10] [ 45%] PASSED tests/server/mcpserver/test_resolve.py::test_unknown_response_keys_and_ghost_state_entries_are_ignored tests/server/mcpserver/test_resolve.py::test_forged_state_entry_failing_the_schema_is_reasked_not_an_error[non-dict-data] [gw4] [ 45%] PASSED tests/interaction/transports/test_flows.py::test_concurrent_clients_on_one_stateful_server_receive_only_their_own_notifications tests/interaction/transports/test_flows.py::test_a_fresh_connection_after_termination_obtains_a_new_session_and_operates tests/server/auth/test_protected_resource.py::test_route_consistency_route_path_matches_metadata_url [gw7] [ 45%] PASSED tests/server/auth/test_protected_resource.py::test_route_consistency_route_path_matches_metadata_url tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_unsupported_response_type tests/server/auth/test_protected_resource.py::test_route_consistency_consistent_paths_for_various_resources[https://example.com-/.well-known/oauth-protected-resource] tests/examples/test_stories.py::test_story[identity_assertion-server_lowlevel-http-asgi-legacy] [gw13] [ 45%] PASSED tests/interaction/mcpserver/test_prompts.py::test_registering_a_duplicate_prompt_name_warns_and_keeps_the_first[streamable-http-2026-07-28] [gw7] [ 45%] PASSED tests/server/auth/test_protected_resource.py::test_route_consistency_consistent_paths_for_various_resources[https://example.com-/.well-known/oauth-protected-resource] tests/server/auth/test_protected_resource.py::test_route_consistency_consistent_paths_for_various_resources[https://example.com/-/.well-known/oauth-protected-resource] [gw7] [ 45%] PASSED tests/server/auth/test_protected_resource.py::test_route_consistency_consistent_paths_for_various_resources[https://example.com/-/.well-known/oauth-protected-resource] tests/interaction/mcpserver/test_resources.py::test_read_static_resource[in-memory-2025-11-25] [gw14] [ 45%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_model_return_becomes_structured_content[streamable-http-2026-07-28] [gw5] [ 45%] PASSED tests/client/test_stdio.py::test_a_process_surviving_the_kill_escalation_is_logged_and_abandoned tests/client/test_stdio.py::test_an_eperm_group_that_dies_during_the_grace_period_is_not_sigkilled [gw15] [ 45%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_unsupported_response_type tests/interaction/mcpserver/test_tools.py::test_call_tool_list_return_is_wrapped_in_result_key[in-memory-2025-11-25] [gw10] [ 45%] PASSED tests/server/mcpserver/test_resolve.py::test_forged_state_entry_failing_the_schema_is_reasked_not_an_error[non-dict-data] tests/server/auth/test_protected_resource.py::test_route_consistency_consistent_paths_for_various_resources[https://example.com/mcp-/.well-known/oauth-protected-resource/mcp] tests/server/mcpserver/test_resolve.py::test_forged_state_entry_failing_the_schema_is_reasked_not_an_error[dict-failing-schema] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_missing_response_type [gw7] [ 45%] PASSED tests/server/auth/test_protected_resource.py::test_route_consistency_consistent_paths_for_various_resources[https://example.com/mcp-/.well-known/oauth-protected-resource/mcp] [gw2] [ 45%] PASSED tests/interaction/lowlevel/test_progress.py::test_non_increasing_progress_values_are_forwarded_unchanged[streamable-http-stateless-2025-11-25] tests/server/auth/test_provider.py::test_construct_redirect_uri_no_existing_params tests/interaction/lowlevel/test_progress.py::test_non_increasing_progress_values_are_forwarded_unchanged[in-memory-2026-07-28] [gw10] [ 45%] PASSED tests/server/mcpserver/test_resolve.py::test_forged_state_entry_failing_the_schema_is_reasked_not_an_error[dict-failing-schema] tests/server/mcpserver/test_resolve.py::test_schema_mismatched_fresh_answer_fails_the_call_without_pydantic_leakage[legacy] [gw3] [ 45%] PASSED tests/examples/test_stories.py::test_story[sse_polling-server-http-asgi-legacy] tests/examples/test_stories.py::test_story[sse_polling-server_lowlevel-http-asgi-legacy] [gw4] [ 46%] PASSED tests/interaction/transports/test_flows.py::test_a_fresh_connection_after_termination_obtains_a_new_session_and_operates [gw15] [ 46%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_missing_response_type [gw7] [ 46%] PASSED tests/server/auth/test_provider.py::test_construct_redirect_uri_no_existing_params tests/server/auth/test_provider.py::test_construct_redirect_uri_with_existing_params tests/interaction/transports/test_flows.py::test_one_server_serves_streamable_http_and_sse_clients_concurrently tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_missing_pkce_challenge [gw2] [ 46%] PASSED tests/interaction/lowlevel/test_progress.py::test_non_increasing_progress_values_are_forwarded_unchanged[in-memory-2026-07-28] [gw9] [ 46%] PASSED tests/docs/test_translations.py::test_stage_without_lang_stages_every_language_in_the_registry [gw7] [ 46%] PASSED tests/server/auth/test_provider.py::test_construct_redirect_uri_with_existing_params [gw14] [ 46%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_list_return_is_wrapped_in_result_key[in-memory-2025-11-25] [gw13] [ 46%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_static_resource[in-memory-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_list_return_is_wrapped_in_result_key[sse-2025-11-25] tests/server/auth/test_provider.py::test_construct_redirect_uri_multiple_existing_params tests/docs_src/test_apps.py::test_the_tool_carries_the_ui_resource_reference tests/interaction/mcpserver/test_resources.py::test_read_static_resource[sse-2025-11-25] [gw7] [ 46%] PASSED tests/server/auth/test_provider.py::test_construct_redirect_uri_multiple_existing_params tests/interaction/lowlevel/test_progress.py::test_non_increasing_progress_values_are_forwarded_unchanged[streamable-http-2026-07-28] tests/server/auth/test_provider.py::test_construct_redirect_uri_with_none_values [gw15] [ 46%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_missing_pkce_challenge [gw1] [ 46%] PASSED tests/examples/test_stories.py::test_story[stickynotes-server_lowlevel-http-asgi-legacy] [gw7] [ 46%] PASSED tests/server/auth/test_provider.py::test_construct_redirect_uri_with_none_values tests/examples/test_stories.py::test_story[custom_methods-server-in-memory-modern] tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_invalid_scope tests/server/auth/test_provider.py::test_construct_redirect_uri_empty_params [gw7] [ 46%] PASSED tests/server/auth/test_provider.py::test_construct_redirect_uri_empty_params [gw9] [ 46%] PASSED tests/docs_src/test_apps.py::test_the_tool_carries_the_ui_resource_reference [gw1] [ 46%] PASSED tests/examples/test_stories.py::test_story[custom_methods-server-in-memory-modern] [gw4] [ 46%] PASSED tests/interaction/transports/test_flows.py::test_one_server_serves_streamable_http_and_sse_clients_concurrently tests/server/auth/test_provider.py::test_construct_redirect_uri_duplicate_param_names tests/examples/test_stories.py::test_story[custom_methods-server-in-memory-legacy] tests/interaction/transports/test_hosting_http.py::test_unsupported_http_methods_return_405 tests/docs_src/test_apps.py::test_the_ui_resource_is_served_as_the_app_mime_type [gw10] [ 46%] PASSED tests/server/mcpserver/test_resolve.py::test_schema_mismatched_fresh_answer_fails_the_call_without_pydantic_leakage[legacy] [gw7] [ 46%] PASSED tests/server/auth/test_provider.py::test_construct_redirect_uri_duplicate_param_names tests/server/auth/test_provider.py::test_construct_redirect_uri_multivalued_existing_params [gw15] [ 46%] PASSED tests/server/mcpserver/auth/test_auth_integration.py::TestAuthorizeEndpointErrors::test_authorize_invalid_scope tests/server/mcpserver/test_resolve.py::test_schema_mismatched_fresh_answer_fails_the_call_without_pydantic_leakage[auto] [gw1] [ 46%] PASSED tests/examples/test_stories.py::test_story[custom_methods-server-in-memory-legacy] [gw7] [ 46%] PASSED tests/server/auth/test_provider.py::test_construct_redirect_uri_multivalued_existing_params [gw4] [ 46%] PASSED tests/interaction/transports/test_hosting_http.py::test_unsupported_http_methods_return_405 [gw0] [ 46%] PASSED tests/interaction/transports/test_hosting_resume.py::test_a_captured_resumption_token_replays_missed_messages_on_a_new_connection tests/examples/test_stories.py::test_story[custom_methods-server-http-asgi-modern] tests/interaction/transports/test_hosting_http.py::test_missing_accept_media_types_return_406 tests/server/auth/test_provider.py::test_construct_redirect_uri_encoded_values [gw10] [ 46%] PASSED tests/server/mcpserver/test_resolve.py::test_schema_mismatched_fresh_answer_fails_the_call_without_pydantic_leakage[auto] [gw3] [ 46%] PASSED tests/examples/test_stories.py::test_story[sse_polling-server_lowlevel-http-asgi-legacy] tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_basic_fn [gw1] [ 46%] PASSED tests/examples/test_stories.py::test_story[custom_methods-server-http-asgi-modern] tests/server/mcpserver/test_resolve.py::test_auto_driver_gives_up_when_the_chain_outlasts_its_round_budget tests/interaction/transports/test_hosting_session.py::test_initialize_issues_a_visible_ascii_session_id tests/examples/test_stories.py::test_story[standalone_get-server-http-asgi-legacy] [gw7] [ 46%] PASSED tests/server/auth/test_provider.py::test_construct_redirect_uri_encoded_values [gw4] [ 46%] PASSED tests/interaction/transports/test_hosting_http.py::test_missing_accept_media_types_return_406 [gw2] [ 46%] PASSED tests/interaction/lowlevel/test_progress.py::test_non_increasing_progress_values_are_forwarded_unchanged[streamable-http-2026-07-28] tests/server/auth/test_provider.py::test_principal_components_composes_client_issuer_subject [gw14] [ 46%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_list_return_is_wrapped_in_result_key[sse-2025-11-25] tests/interaction/transports/test_hosting_http.py::test_non_json_content_type_is_rejected tests/examples/test_stories.py::test_story[custom_methods-server-http-asgi-legacy] [gw12] [ 46%] PASSED tests/issues/test_1363_race_condition_streamable_http.py::test_race_condition_invalid_accept_headers [gw5] [ 46%] PASSED tests/client/test_stdio.py::test_an_eperm_group_that_dies_during_the_grace_period_is_not_sigkilled tests/interaction/mcpserver/test_tools.py::test_call_tool_list_return_is_wrapped_in_result_key[streamable-http-2025-11-25] tests/issues/test_1363_race_condition_streamable_http.py::test_race_condition_invalid_content_type tests/interaction/lowlevel/test_prompts.py::test_list_prompts_returns_registered_prompts[in-memory-2025-11-25] [gw7] [ 46%] PASSED tests/server/auth/test_provider.py::test_principal_components_composes_client_issuer_subject [gw8] [ 46%] PASSED tests/examples/test_stories.py::test_story[identity_assertion-server_lowlevel-http-asgi-legacy] [gw4] [ 46%] PASSED tests/interaction/transports/test_hosting_http.py::test_non_json_content_type_is_rejected tests/client/test_stdio.py::test_an_eperm_group_that_outlives_the_grace_period_is_still_sigkilled [gw13] [ 46%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_static_resource[sse-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_read_static_resource[streamable-http-2025-11-25] tests/server/auth/test_routes.py::test_validate_issuer_url_https_allowed tests/examples/test_stories.py::test_manifest_matches_filesystem [gw15] [ 46%] PASSED tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_basic_fn tests/interaction/transports/test_hosting_http.py::test_malformed_and_batched_bodies_return_400 [gw0] [ 46%] PASSED tests/interaction/transports/test_hosting_session.py::test_initialize_issues_a_visible_ascii_session_id [gw1] [ 46%] PASSED tests/examples/test_stories.py::test_story[custom_methods-server-http-asgi-legacy] [gw2] [ 46%] PASSED tests/interaction/lowlevel/test_prompts.py::test_list_prompts_returns_registered_prompts[in-memory-2025-11-25] [gw7] [ 46%] PASSED tests/server/auth/test_routes.py::test_validate_issuer_url_https_allowed tests/server/auth/test_routes.py::test_validate_issuer_url_http_localhost_allowed tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_async_fn tests/examples/test_stories.py::test_story[apps-server-in-memory-in-body] [gw9] [ 46%] PASSED tests/docs_src/test_apps.py::test_the_ui_resource_is_served_as_the_app_mime_type [gw15] [ 46%] PASSED tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_async_fn tests/interaction/lowlevel/test_prompts.py::test_list_prompts_returns_registered_prompts[sse-2025-11-25] [gw7] [ 46%] PASSED tests/server/auth/test_routes.py::test_validate_issuer_url_http_localhost_allowed tests/interaction/transports/test_hosting_session.py::test_subsequent_requests_with_the_session_id_route_to_the_same_session tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_with_args tests/docs_src/test_apps.py::test_one_tool_two_answers [gw8] [ 46%] PASSED tests/examples/test_stories.py::test_manifest_matches_filesystem tests/server/auth/test_routes.py::test_validate_issuer_url_http_127_0_0_1_allowed [gw7] [ 46%] PASSED tests/server/auth/test_routes.py::test_validate_issuer_url_http_127_0_0_1_allowed [gw3] [ 46%] PASSED tests/examples/test_stories.py::test_story[standalone_get-server-http-asgi-legacy] tests/examples/test_stories.py::test_manifest_schema_valid tests/examples/test_stories.py::test_story[standalone_get-server_lowlevel-http-asgi-legacy] tests/server/auth/test_routes.py::test_validate_issuer_url_http_ipv6_loopback_allowed [gw1] [ 46%] PASSED tests/examples/test_stories.py::test_story[apps-server-in-memory-in-body] [gw10] [ 46%] PASSED tests/server/mcpserver/test_resolve.py::test_auto_driver_gives_up_when_the_chain_outlasts_its_round_budget tests/examples/test_stories.py::test_story[apps-server-http-asgi-in-body] tests/server/mcpserver/test_resolve.py::test_aliased_elicitation_model_round_trips_through_request_state [gw4] [ 46%] PASSED tests/interaction/transports/test_hosting_http.py::test_malformed_and_batched_bodies_return_400 tests/interaction/transports/test_hosting_http.py::test_protocol_version_header_is_validated [gw2] [ 46%] PASSED tests/interaction/lowlevel/test_prompts.py::test_list_prompts_returns_registered_prompts[sse-2025-11-25] [gw7] [ 46%] PASSED tests/server/auth/test_routes.py::test_validate_issuer_url_http_ipv6_loopback_allowed tests/server/auth/test_routes.py::test_validate_issuer_url_http_non_loopback_rejected tests/interaction/lowlevel/test_prompts.py::test_list_prompts_returns_registered_prompts[streamable-http-2025-11-25] [gw8] [ 46%] PASSED tests/examples/test_stories.py::test_manifest_schema_valid [gw10] [ 46%] PASSED tests/server/mcpserver/test_resolve.py::test_aliased_elicitation_model_round_trips_through_request_state [gw13] [ 46%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_static_resource[streamable-http-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_read_static_resource[streamable-http-stateless-2025-11-25] [gw7] [ 46%] PASSED tests/server/auth/test_routes.py::test_validate_issuer_url_http_non_loopback_rejected tests/server/mcpserver/test_resolve.py::test_divergent_validation_and_serialization_aliases_round_trip [gw15] [ 46%] PASSED tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_with_args tests/examples/test_stories.py::test_main_signature_matches_manifest[apps] tests/server/auth/test_routes.py::test_validate_issuer_url_http_127_prefix_domain_rejected tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_with_invalid_kwargs [gw7] [ 46%] PASSED tests/server/auth/test_routes.py::test_validate_issuer_url_http_127_prefix_domain_rejected [gw3] [ 46%] PASSED tests/examples/test_stories.py::test_story[standalone_get-server_lowlevel-http-asgi-legacy] tests/server/auth/test_routes.py::test_validate_issuer_url_http_127_prefix_subdomain_rejected [gw2] [ 46%] PASSED tests/interaction/lowlevel/test_prompts.py::test_list_prompts_returns_registered_prompts[streamable-http-2025-11-25] tests/interaction/lowlevel/test_prompts.py::test_list_prompts_returns_registered_prompts[streamable-http-stateless-2025-11-25] [gw14] [ 47%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_list_return_is_wrapped_in_result_key[streamable-http-2025-11-25] tests/examples/test_stories.py::test_story[reconnect-server-http-asgi-in-body] [gw8] [ 47%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[apps] [gw1] [ 47%] PASSED tests/examples/test_stories.py::test_story[apps-server-http-asgi-in-body] tests/interaction/mcpserver/test_tools.py::test_call_tool_list_return_is_wrapped_in_result_key[streamable-http-stateless-2025-11-25] tests/examples/test_stories.py::test_story[extensions-server-in-memory-in-body] [gw7] [ 47%] PASSED tests/server/auth/test_routes.py::test_validate_issuer_url_http_127_prefix_subdomain_rejected [gw2] [ 47%] PASSED tests/interaction/lowlevel/test_prompts.py::test_list_prompts_returns_registered_prompts[streamable-http-stateless-2025-11-25] tests/server/auth/test_routes.py::test_validate_issuer_url_fragment_rejected tests/interaction/lowlevel/test_prompts.py::test_list_prompts_returns_registered_prompts[in-memory-2026-07-28] tests/examples/test_stories.py::test_main_signature_matches_manifest[bearer_auth] [gw10] [ 47%] PASSED tests/server/mcpserver/test_resolve.py::test_divergent_validation_and_serialization_aliases_round_trip [gw2] [ 47%] PASSED tests/interaction/lowlevel/test_prompts.py::test_list_prompts_returns_registered_prompts[in-memory-2026-07-28] [gw7] [ 47%] PASSED tests/server/auth/test_routes.py::test_validate_issuer_url_fragment_rejected [gw15] [ 47%] PASSED tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_with_invalid_kwargs tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_message tests/interaction/lowlevel/test_prompts.py::test_list_prompts_returns_registered_prompts[streamable-http-2026-07-28] tests/server/auth/test_routes.py::test_validate_issuer_url_query_rejected tests/server/mcpserver/test_resolve.py::test_state_entry_never_replaces_a_resolver_computed_value [gw5] [ 47%] PASSED tests/client/test_stdio.py::test_an_eperm_group_that_outlives_the_grace_period_is_still_sigkilled [gw15] [ 47%] PASSED tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_message tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[asyncio] tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_assistant_message [gw2] [ 47%] PASSED tests/interaction/lowlevel/test_prompts.py::test_list_prompts_returns_registered_prompts[streamable-http-2026-07-28] [gw13] [ 47%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_static_resource[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_resources.py::test_read_static_resource[in-memory-2026-07-28] [gw7] [ 47%] PASSED tests/server/auth/test_routes.py::test_validate_issuer_url_query_rejected tests/interaction/lowlevel/test_prompts.py::test_get_prompt_substitutes_arguments[in-memory-2025-11-25] [gw1] [ 47%] PASSED tests/examples/test_stories.py::test_story[extensions-server-in-memory-in-body] [gw15] [ 47%] PASSED tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_assistant_message [gw4] [ 47%] PASSED tests/interaction/transports/test_hosting_http.py::test_protocol_version_header_is_validated tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[streamable-http-2025-11-25] tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_multiple_messages tests/server/auth/test_routes.py::test_auth_settings_preserves_path_less_issuer [gw3] [ 47%] PASSED tests/examples/test_stories.py::test_story[reconnect-server-http-asgi-in-body] tests/examples/test_stories.py::test_story[reconnect-server_lowlevel-http-asgi-in-body] tests/interaction/transports/test_hosting_http.py::test_unsupported_protocol_version_rejection_body_contains_the_sniffed_literal [gw2] [ 47%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_substitutes_arguments[in-memory-2025-11-25] [gw15] [ 47%] PASSED tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_multiple_messages [gw13] [ 47%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_static_resource[in-memory-2026-07-28] tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_list_of_strings [gw15] [ 47%] PASSED tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_list_of_strings tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_resource_content tests/interaction/lowlevel/test_prompts.py::test_get_prompt_substitutes_arguments[sse-2025-11-25] [gw8] [ 47%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[bearer_auth] [gw7] [ 47%] PASSED tests/server/auth/test_routes.py::test_auth_settings_preserves_path_less_issuer tests/server/auth/test_routes.py::test_build_metadata_serves_issuer_without_trailing_slash tests/interaction/mcpserver/test_resources.py::test_read_static_resource[streamable-http-2026-07-28] [gw15] [ 47%] PASSED tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_resource_content tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_mixed_content [gw4] [ 47%] PASSED tests/interaction/transports/test_hosting_http.py::test_unsupported_protocol_version_rejection_body_contains_the_sniffed_literal tests/interaction/transports/test_hosting_http.py::test_json_response_mode_answers_with_application_json_not_sse tests/examples/test_stories.py::test_main_signature_matches_manifest[custom_methods] [gw10] [ 47%] PASSED tests/server/mcpserver/test_resolve.py::test_state_entry_never_replaces_a_resolver_computed_value tests/server/mcpserver/test_resolve.py::test_state_decline_entry_for_a_pure_resolver_is_ignored [gw7] [ 47%] PASSED tests/server/auth/test_routes.py::test_build_metadata_serves_issuer_without_trailing_slash [gw2] [ 47%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_substitutes_arguments[sse-2025-11-25] tests/interaction/lowlevel/test_prompts.py::test_get_prompt_substitutes_arguments[streamable-http-2025-11-25] [gw15] [ 47%] PASSED tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_mixed_content tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_dict_with_resource [gw3] [ 47%] PASSED tests/examples/test_stories.py::test_story[reconnect-server_lowlevel-http-asgi-in-body] [gw15] [ 47%] PASSED tests/server/mcpserver/prompts/test_base.py::TestRenderPrompt::test_fn_returns_dict_with_resource tests/examples/test_stories.py::test_story[bearer_auth-server-http-asgi-modern] tests/server/auth/test_settings.py::test_validate_token_resource_requires_a_resource_server_url tests/server/mcpserver/prompts/test_base.py::test_sync_fn_runs_in_worker_thread [gw5] [ 47%] PASSED tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[asyncio] [gw0] [ 47%] PASSED tests/interaction/transports/test_hosting_session.py::test_subsequent_requests_with_the_session_id_route_to_the_same_session [gw12] [ 47%] PASSED tests/issues/test_1363_race_condition_streamable_http.py::test_race_condition_invalid_content_type [gw10] [ 47%] PASSED tests/server/mcpserver/test_resolve.py::test_state_decline_entry_for_a_pure_resolver_is_ignored tests/server/mcpserver/test_resolve.py::test_dynamic_schema_resolver_restores_across_rounds [gw15] [ 47%] PASSED tests/server/mcpserver/prompts/test_base.py::test_sync_fn_runs_in_worker_thread [gw7] [ 47%] PASSED tests/server/auth/test_settings.py::test_validate_token_resource_requires_a_resource_server_url tests/interaction/transports/test_hosting_session.py::test_requests_with_an_unknown_session_id_return_404 tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[trio] tests/server/auth/test_settings.py::test_leaving_validate_token_resource_unset_warns_when_a_resource_server_url_is_configured tests/server/mcpserver/prompts/test_base.py::test_render_passes_input_required_result_through_unchanged [gw4] [ 47%] PASSED tests/interaction/transports/test_hosting_http.py::test_json_response_mode_answers_with_application_json_not_sse tests/issues/test_1363_race_condition_streamable_http.py::test_race_condition_message_router_async_for [gw7] [ 47%] PASSED tests/server/auth/test_settings.py::test_leaving_validate_token_resource_unset_warns_when_a_resource_server_url_is_configured tests/server/auth/test_settings.py::test_an_explicit_choice_or_no_resource_server_url_does_not_warn[kwargs0] tests/interaction/transports/test_hosting_http.py::test_notification_post_returns_202_with_no_body [gw7] [ 47%] PASSED tests/server/auth/test_settings.py::test_an_explicit_choice_or_no_resource_server_url_does_not_warn[kwargs0] [gw2] [ 47%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_substitutes_arguments[streamable-http-2025-11-25] tests/interaction/lowlevel/test_prompts.py::test_get_prompt_substitutes_arguments[streamable-http-stateless-2025-11-25] [gw8] [ 47%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[custom_methods] [gw14] [ 47%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_list_return_is_wrapped_in_result_key[streamable-http-stateless-2025-11-25] [gw15] [ 47%] PASSED tests/server/mcpserver/prompts/test_base.py::test_render_passes_input_required_result_through_unchanged tests/interaction/mcpserver/test_tools.py::test_call_tool_list_return_is_wrapped_in_result_key[in-memory-2026-07-28] [gw3] [ 47%] PASSED tests/examples/test_stories.py::test_story[bearer_auth-server-http-asgi-modern] [gw10] [ 47%] PASSED tests/server/mcpserver/test_resolve.py::test_dynamic_schema_resolver_restores_across_rounds tests/server/auth/test_settings.py::test_an_explicit_choice_or_no_resource_server_url_does_not_warn[kwargs1] tests/examples/test_stories.py::test_main_signature_matches_manifest[dual_era] [gw7] [ 47%] PASSED tests/server/auth/test_settings.py::test_an_explicit_choice_or_no_resource_server_url_does_not_warn[kwargs1] tests/examples/test_stories.py::test_story[bearer_auth-server-http-asgi-legacy] tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[InputRequiredResult] tests/server/lowlevel/test_helper_types.py::test_read_resource_contents_with_metadata [gw1] [ 47%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[streamable-http-2025-11-25] [gw10] [ 47%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[InputRequiredResult] tests/server/mcpserver/prompts/test_base.py::test_message_converts_image_and_audio_helpers_to_content_blocks[helper0-expected0] [gw15] [ 47%] PASSED tests/server/mcpserver/prompts/test_base.py::test_message_converts_image_and_audio_helpers_to_content_blocks[helper0-expected0] [gw0] [ 47%] PASSED tests/interaction/transports/test_hosting_session.py::test_requests_with_an_unknown_session_id_return_404 [gw7] [ 47%] PASSED tests/server/lowlevel/test_helper_types.py::test_read_resource_contents_with_metadata tests/server/mcpserver/prompts/test_base.py::test_message_converts_image_and_audio_helpers_to_content_blocks[helper1-expected1] tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[Union0] tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[streamable-http-stateless-2025-11-25] tests/server/lowlevel/test_helper_types.py::test_read_resource_contents_without_metadata [gw15] [ 47%] PASSED tests/server/mcpserver/prompts/test_base.py::test_message_converts_image_and_audio_helpers_to_content_blocks[helper1-expected1] [gw10] [ 47%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[Union0] [gw4] [ 47%] PASSED tests/interaction/transports/test_hosting_http.py::test_notification_post_returns_202_with_no_body tests/interaction/transports/test_hosting_session.py::test_non_initialize_post_without_a_session_id_returns_400 tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[Annotated] [gw8] [ 47%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[dual_era] [gw7] [ 47%] PASSED tests/server/lowlevel/test_helper_types.py::test_read_resource_contents_without_metadata [gw5] [ 47%] PASSED tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[trio] [gw14] [ 48%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_list_return_is_wrapped_in_result_key[in-memory-2026-07-28] tests/server/mcpserver/prompts/test_base.py::test_prompt_dict_result_accepts_image_helper_as_content tests/interaction/transports/test_hosting_http.py::test_a_second_standalone_get_stream_on_the_same_session_returns_409 tests/interaction/mcpserver/test_tools.py::test_call_tool_list_return_is_wrapped_in_result_key[streamable-http-2026-07-28] [gw2] [ 48%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_substitutes_arguments[streamable-http-stateless-2025-11-25] tests/examples/test_stories.py::test_main_signature_matches_manifest[error_handling] tests/server/lowlevel/test_helper_types.py::test_read_resource_contents_with_bytes tests/client/test_stdio.py::test_exiting_the_context_terminates_the_entire_process_tree [gw10] [ 48%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[Annotated] [gw15] [ 48%] PASSED tests/server/mcpserver/prompts/test_base.py::test_prompt_dict_result_accepts_image_helper_as_content [gw7] [ 48%] PASSED tests/server/lowlevel/test_helper_types.py::test_read_resource_contents_with_bytes tests/interaction/lowlevel/test_prompts.py::test_get_prompt_substitutes_arguments[in-memory-2026-07-28] tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[Union1] tests/server/lowlevel/test_server_discover.py::test_registered_by_default tests/server/mcpserver/prompts/test_base.py::test_prompt_return_annotation_is_not_run_through_tool_output_schema_derivation [gw10] [ 48%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[Union1] [gw3] [ 48%] PASSED tests/examples/test_stories.py::test_story[bearer_auth-server-http-asgi-legacy] tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[IRRAlias] tests/examples/test_stories.py::test_story[bearer_auth-server_lowlevel-http-asgi-modern] [gw8] [ 48%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[error_handling] [gw15] [ 48%] PASSED tests/server/mcpserver/prompts/test_base.py::test_prompt_return_annotation_is_not_run_through_tool_output_schema_derivation [gw2] [ 48%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_substitutes_arguments[in-memory-2026-07-28] [gw10] [ 48%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[IRRAlias] tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[IRRAliasGeneric] tests/examples/test_stories.py::test_main_signature_matches_manifest[extensions] [gw7] [ 48%] PASSED tests/server/lowlevel/test_server_discover.py::test_registered_by_default tests/server/lowlevel/test_server_discover.py::test_supported_versions_is_modern_set tests/interaction/lowlevel/test_prompts.py::test_get_prompt_substitutes_arguments[streamable-http-2026-07-28] [gw10] [ 48%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[IRRAliasGeneric] tests/server/mcpserver/prompts/test_base.py::test_bare_content_returned_from_a_prompt_becomes_user_messages[returned0-expected0] tests/server/mcpserver/test_resolve.py::test_unevaluable_alias_and_parameterized_generics_declare_no_arm [gw3] [ 48%] PASSED tests/examples/test_stories.py::test_story[bearer_auth-server_lowlevel-http-asgi-modern] tests/examples/test_stories.py::test_story[bearer_auth-server_lowlevel-http-asgi-legacy] [gw4] [ 48%] PASSED tests/interaction/transports/test_hosting_http.py::test_a_second_standalone_get_stream_on_the_same_session_returns_409 tests/interaction/transports/test_hosting_http.py::test_messages_are_routed_to_exactly_one_stream [gw2] [ 48%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_substitutes_arguments[streamable-http-2026-07-28] [gw14] [ 48%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_list_return_is_wrapped_in_result_key[streamable-http-2026-07-28] [gw7] [ 48%] PASSED tests/server/lowlevel/test_server_discover.py::test_supported_versions_is_modern_set [gw10] [ 48%] PASSED tests/server/mcpserver/test_resolve.py::test_unevaluable_alias_and_parameterized_generics_declare_no_arm tests/server/mcpserver/test_resolve.py::test_tool_returning_input_required_dynamically_with_resolvers_is_an_error tests/server/mcpserver/resources/test_resources.py::TestResourceAnnotations::test_resource_without_annotations tests/interaction/mcpserver/test_tools.py::test_call_tool_invalid_arguments_become_error_result[in-memory-2025-11-25] tests/server/lowlevel/test_server_discover.py::test_server_info_reflects_constructor_fields [gw15] [ 48%] PASSED tests/server/mcpserver/prompts/test_base.py::test_bare_content_returned_from_a_prompt_becomes_user_messages[returned0-expected0] [gw1] [ 48%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[streamable-http-stateless-2025-11-25] [gw2] [ 48%] PASSED tests/server/mcpserver/resources/test_resources.py::TestResourceAnnotations::test_resource_without_annotations [gw0] [ 48%] PASSED tests/interaction/transports/test_hosting_session.py::test_non_initialize_post_without_a_session_id_returns_400 tests/server/mcpserver/prompts/test_base.py::test_bare_content_returned_from_a_prompt_becomes_user_messages[returned1-expected1] tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[in-memory-2026-07-28] tests/server/mcpserver/resources/test_resources.py::TestResourceAnnotations::test_resource_annotations_in_mcpserver tests/interaction/transports/test_hosting_session.py::test_delete_terminates_the_session_and_subsequent_requests_return_404 [gw7] [ 48%] PASSED tests/server/lowlevel/test_server_discover.py::test_server_info_reflects_constructor_fields [gw2] [ 48%] PASSED tests/server/mcpserver/resources/test_resources.py::TestResourceAnnotations::test_resource_annotations_in_mcpserver [gw6] [ 48%] PASSED tests/interaction/mcpserver/test_tools.py::test_registering_a_tool_with_a_spec_invalid_name_warns_but_does_not_reject[streamable-http-stateless-2025-11-25] [gw4] [ 48%] PASSED tests/interaction/transports/test_hosting_http.py::test_messages_are_routed_to_exactly_one_stream [gw1] [ 48%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[in-memory-2026-07-28] [gw15] [ 48%] PASSED tests/server/mcpserver/prompts/test_base.py::test_bare_content_returned_from_a_prompt_becomes_user_messages[returned1-expected1] tests/server/mcpserver/resources/test_resources.py::TestResourceAnnotations::test_resource_annotations_with_both_audiences [gw14] [ 48%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_invalid_arguments_become_error_result[in-memory-2025-11-25] [gw8] [ 48%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[extensions] tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[streamable-http-2026-07-28] tests/interaction/transports/test_hosting_http.py::test_origin_validation_rejects_disallowed_origins_when_enabled tests/server/mcpserver/prompts/test_base.py::test_bare_content_returned_from_a_prompt_becomes_user_messages[returned2-expected2] tests/interaction/mcpserver/test_tools.py::test_registering_a_tool_with_a_spec_invalid_name_warns_but_does_not_reject[in-memory-2026-07-28] tests/interaction/mcpserver/test_tools.py::test_call_tool_invalid_arguments_become_error_result[sse-2025-11-25] tests/server/lowlevel/test_server_discover.py::test_an_unversioned_server_reports_an_empty_version [gw7] [ 48%] PASSED tests/server/lowlevel/test_server_discover.py::test_an_unversioned_server_reports_an_empty_version tests/examples/test_stories.py::test_main_signature_matches_manifest[identity_assertion] [gw2] [ 48%] PASSED tests/server/mcpserver/resources/test_resources.py::TestResourceAnnotations::test_resource_annotations_with_both_audiences [gw3] [ 48%] PASSED tests/examples/test_stories.py::test_story[bearer_auth-server_lowlevel-http-asgi-legacy] [gw15] [ 48%] PASSED tests/server/mcpserver/prompts/test_base.py::test_bare_content_returned_from_a_prompt_becomes_user_messages[returned2-expected2] tests/server/mcpserver/prompts/test_base.py::test_prompt_returning_media_with_an_unreadable_file_fails_to_render tests/server/lowlevel/test_server_discover.py::test_instructions_threaded_through tests/server/mcpserver/resources/test_resources.py::TestAnnotationsValidation::test_priority_validation [gw10] [ 48%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_returning_input_required_dynamically_with_resolvers_is_an_error [gw1] [ 48%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[streamable-http-2026-07-28] tests/examples/test_stories.py::test_story[oauth-server-http-asgi-modern] [gw2] [ 48%] PASSED tests/server/mcpserver/resources/test_resources.py::TestAnnotationsValidation::test_priority_validation tests/server/mcpserver/test_resolve.py::test_question_digest_pins_the_rendered_question tests/interaction/lowlevel/test_logging.py::test_log_delivery_follows_the_per_request_log_level[in-memory-2026-07-28] [gw8] [ 48%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[identity_assertion] [gw1] [ 48%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_delivery_follows_the_per_request_log_level[in-memory-2026-07-28] [gw7] [ 48%] PASSED tests/server/lowlevel/test_server_discover.py::test_instructions_threaded_through tests/server/mcpserver/resources/test_resources.py::TestAnnotationsValidation::test_audience_validation tests/examples/test_stories.py::test_main_signature_matches_manifest[json_response] [gw10] [ 48%] PASSED tests/server/mcpserver/test_resolve.py::test_question_digest_pins_the_rendered_question tests/interaction/lowlevel/test_logging.py::test_log_delivery_follows_the_per_request_log_level[streamable-http-2026-07-28] tests/server/lowlevel/test_server_discover.py::test_capabilities_derived_from_registered_handlers [gw2] [ 48%] PASSED tests/server/mcpserver/resources/test_resources.py::TestAnnotationsValidation::test_audience_validation [gw0] [ 48%] PASSED tests/interaction/transports/test_hosting_session.py::test_delete_terminates_the_session_and_subsequent_requests_return_404 tests/server/mcpserver/test_resolve.py::test_state_round_trips_question_digests_at_v3 tests/server/mcpserver/resources/test_resources.py::TestResourceMetadata::test_resource_with_metadata [gw2] [ 48%] PASSED tests/server/mcpserver/resources/test_resources.py::TestResourceMetadata::test_resource_with_metadata [gw7] [ 48%] PASSED tests/server/lowlevel/test_server_discover.py::test_capabilities_derived_from_registered_handlers [gw8] [ 48%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[json_response] [gw10] [ 48%] PASSED tests/server/mcpserver/test_resolve.py::test_state_round_trips_question_digests_at_v3 tests/server/mcpserver/resources/test_resources.py::TestResourceMetadata::test_resource_without_metadata tests/interaction/transports/test_hosting_session.py::test_terminating_one_session_leaves_others_working [gw15] [ 48%] PASSED tests/server/mcpserver/prompts/test_base.py::test_prompt_returning_media_with_an_unreadable_file_fails_to_render [gw2] [ 48%] PASSED tests/server/mcpserver/resources/test_resources.py::TestResourceMetadata::test_resource_without_metadata tests/examples/test_stories.py::test_main_signature_matches_manifest[legacy_elicitation] tests/server/mcpserver/test_resolve.py::test_restored_answer_with_matching_digest_completes_without_reasking tests/server/mcpserver/servers/test_file_server.py::test_list_resources tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_add_prompt tests/server/lowlevel/test_server_discover.py::test_discover_result_defaults_to_immediately_stale_private_cache [gw1] [ 48%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_delivery_follows_the_per_request_log_level[streamable-http-2026-07-28] [gw14] [ 48%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_invalid_arguments_become_error_result[sse-2025-11-25] [gw7] [ 48%] PASSED tests/server/lowlevel/test_server_discover.py::test_discover_result_defaults_to_immediately_stale_private_cache [gw8] [ 48%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[legacy_elicitation] tests/interaction/lowlevel/test_logging.py::test_a_request_with_an_unrecognized_log_level_is_rejected[in-memory-2026-07-28] [gw1] [ 48%] PASSED tests/interaction/lowlevel/test_logging.py::test_a_request_with_an_unrecognized_log_level_is_rejected[in-memory-2026-07-28] tests/interaction/lowlevel/test_logging.py::test_a_request_with_an_unrecognized_log_level_is_rejected[streamable-http-2026-07-28] tests/interaction/mcpserver/test_tools.py::test_call_tool_invalid_arguments_become_error_result[streamable-http-2025-11-25] [gw15] [ 48%] PASSED tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_add_prompt [gw2] [ 48%] PASSED tests/server/mcpserver/servers/test_file_server.py::test_list_resources [gw3] [ 48%] PASSED tests/examples/test_stories.py::test_story[oauth-server-http-asgi-modern] tests/examples/test_stories.py::test_main_signature_matches_manifest[legacy_routing] tests/examples/test_stories.py::test_story[oauth-server-http-asgi-legacy] tests/server/lowlevel/test_server_discover.py::test_overridable_via_add_request_handler tests/server/mcpserver/servers/test_file_server.py::test_read_resource_dir [gw1] [ 48%] PASSED tests/interaction/lowlevel/test_logging.py::test_a_request_with_an_unrecognized_log_level_is_rejected[streamable-http-2026-07-28] tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[in-memory-2025-11-25] tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_add_duplicate_prompt [gw7] [ 49%] PASSED tests/server/lowlevel/test_server_discover.py::test_overridable_via_add_request_handler [gw15] [ 49%] PASSED tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_add_duplicate_prompt [gw1] [ 49%] PASSED tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[in-memory-2025-11-25] tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[sse-2025-11-25] [gw8] [ 49%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[legacy_routing] tests/server/lowlevel/test_server_discover.py::test_modern_subscription_bits_derive_from_listen_serving [gw2] [ 49%] PASSED tests/server/mcpserver/servers/test_file_server.py::test_read_resource_dir [gw12] [ 49%] PASSED tests/issues/test_1363_race_condition_streamable_http.py::test_race_condition_message_router_async_for tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_disable_warn_on_duplicate_prompts tests/server/mcpserver/servers/test_file_server.py::test_read_resource_file [gw10] [ 49%] PASSED tests/server/mcpserver/test_resolve.py::test_restored_answer_with_matching_digest_completes_without_reasking [gw7] [ 49%] PASSED tests/server/lowlevel/test_server_discover.py::test_modern_subscription_bits_derive_from_listen_serving tests/examples/test_stories.py::test_main_signature_matches_manifest[lifespan] [gw15] [ 49%] PASSED tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_disable_warn_on_duplicate_prompts tests/issues/test_141_resource_templates.py::test_resource_template_edge_cases tests/server/mcpserver/test_resolve.py::test_restored_entry_is_repersisted_with_its_question_digest_intact tests/server/lowlevel/test_server_discover.py::test_legacy_capability_derivation_ignores_listen [gw2] [ 49%] PASSED tests/server/mcpserver/servers/test_file_server.py::test_read_resource_file tests/server/mcpserver/servers/test_file_server.py::test_delete_file tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_list_prompts [gw8] [ 49%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[lifespan] [gw15] [ 49%] PASSED tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_list_prompts tests/examples/test_stories.py::test_main_signature_matches_manifest[middleware] [gw14] [ 49%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_invalid_arguments_become_error_result[streamable-http-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_call_tool_invalid_arguments_become_error_result[streamable-http-stateless-2025-11-25] [gw12] [ 49%] PASSED tests/issues/test_141_resource_templates.py::test_resource_template_edge_cases [gw7] [ 49%] PASSED tests/server/lowlevel/test_server_discover.py::test_legacy_capability_derivation_ignores_listen tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_auto_enabled_for_127_0_0_1_sse [gw4] [ 49%] PASSED tests/interaction/transports/test_hosting_http.py::test_origin_validation_rejects_disallowed_origins_when_enabled tests/interaction/transports/test_hosting_http_modern.py::test_modern_tools_call_returns_result_type_complete_without_initialize tests/issues/test_141_resource_templates.py::test_resource_template_client_interaction tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_render_prompt [gw4] [ 49%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_tools_call_returns_result_type_complete_without_initialize tests/interaction/transports/test_hosting_http_modern.py::test_modern_response_carries_no_session_id_header [gw7] [ 49%] PASSED tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_auto_enabled_for_127_0_0_1_sse [gw4] [ 49%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_response_carries_no_session_id_header tests/interaction/transports/test_hosting_http_modern.py::test_modern_notification_post_is_acknowledged_202_and_a_posted_response_is_rejected[stateless-flag-json] [gw15] [ 49%] PASSED tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_render_prompt [gw8] [ 49%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[middleware] tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_auto_enabled_for_127_0_0_1_streamable_http [gw4] [ 49%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_notification_post_is_acknowledged_202_and_a_posted_response_is_rejected[stateless-flag-json] tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_render_prompt_with_args tests/interaction/transports/test_hosting_http_modern.py::test_modern_notification_post_is_acknowledged_202_and_a_posted_response_is_rejected[stateless-flag-sse] [gw10] [ 49%] PASSED tests/server/mcpserver/test_resolve.py::test_restored_entry_is_repersisted_with_its_question_digest_intact tests/server/mcpserver/test_resolve.py::test_decline_and_cancel_entries_carry_the_question_digest tests/examples/test_stories.py::test_main_signature_matches_manifest[mrtr] [gw4] [ 49%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_notification_post_is_acknowledged_202_and_a_posted_response_is_rejected[stateless-flag-sse] [gw14] [ 49%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_invalid_arguments_become_error_result[streamable-http-stateless-2025-11-25] [gw7] [ 49%] PASSED tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_auto_enabled_for_127_0_0_1_streamable_http tests/interaction/mcpserver/test_tools.py::test_call_tool_invalid_arguments_become_error_result[in-memory-2026-07-28] [gw15] [ 49%] PASSED tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_render_prompt_with_args tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_render_unknown_prompt [gw12] [ 49%] PASSED tests/issues/test_141_resource_templates.py::test_resource_template_client_interaction tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_auto_enabled_for_localhost_sse [gw8] [ 49%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[mrtr] tests/examples/test_stories.py::test_main_signature_matches_manifest[oauth] [gw15] [ 49%] PASSED tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_render_unknown_prompt tests/issues/test_152_resource_mime_type.py::test_mcpserver_resource_mime_type [gw14] [ 49%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_invalid_arguments_become_error_result[in-memory-2026-07-28] tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_render_prompt_with_missing_args tests/interaction/mcpserver/test_tools.py::test_call_tool_invalid_arguments_become_error_result[streamable-http-2026-07-28] [gw7] [ 49%] PASSED tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_auto_enabled_for_localhost_sse [gw15] [ 49%] PASSED tests/server/mcpserver/prompts/test_manager.py::TestPromptManager::test_render_prompt_with_missing_args [gw8] [ 49%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[oauth] tests/server/mcpserver/resources/test_file_resources.py::test_file_resource_creation tests/interaction/transports/test_hosting_http_modern.py::test_modern_notification_post_is_acknowledged_202_and_a_posted_response_is_rejected[default-json] [gw14] [ 49%] PASSED tests/interaction/mcpserver/test_tools.py::test_call_tool_invalid_arguments_become_error_result[streamable-http-2026-07-28] [gw4] [ 49%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_notification_post_is_acknowledged_202_and_a_posted_response_is_rejected[default-json] tests/interaction/transports/test_hosting_http_modern.py::test_modern_notification_post_is_acknowledged_202_and_a_posted_response_is_rejected[default-sse] tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_mismatched_structured_content_is_an_error_result[in-memory-2025-11-25] tests/examples/test_stories.py::test_main_signature_matches_manifest[oauth_client_credentials] tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_auto_enabled_for_ipv6_localhost_sse [gw4] [ 49%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_notification_post_is_acknowledged_202_and_a_posted_response_is_rejected[default-sse] [gw0] [ 49%] PASSED tests/interaction/transports/test_hosting_session.py::test_terminating_one_session_leaves_others_working [gw15] [ 49%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_file_resource_creation [gw12] [ 49%] PASSED tests/issues/test_152_resource_mime_type.py::test_mcpserver_resource_mime_type tests/server/mcpserver/resources/test_file_resources.py::test_file_resource_str_path_conversion [gw7] [ 49%] PASSED tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_auto_enabled_for_ipv6_localhost_sse tests/issues/test_152_resource_mime_type.py::test_lowlevel_resource_mime_type [gw3] [ 49%] PASSED tests/examples/test_stories.py::test_story[oauth-server-http-asgi-legacy] [gw2] [ 49%] PASSED tests/server/mcpserver/servers/test_file_server.py::test_delete_file tests/server/mcpserver/servers/test_file_server.py::test_delete_file_and_check_resources [gw15] [ 49%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_file_resource_str_path_conversion tests/server/mcpserver/resources/test_file_resources.py::test_read_text_file tests/interaction/transports/test_hosting_session.py::test_second_initialize_on_an_existing_session_is_accepted [gw8] [ 49%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[oauth_client_credentials] tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_not_auto_enabled_for_other_hosts_sse tests/interaction/transports/test_hosting_http_modern.py::test_modern_initialize_is_method_not_found [gw10] [ 49%] PASSED tests/server/mcpserver/test_resolve.py::test_decline_and_cancel_entries_carry_the_question_digest tests/examples/test_stories.py::test_story[oauth-server_lowlevel-http-asgi-modern] [gw7] [ 49%] PASSED tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_not_auto_enabled_for_other_hosts_sse [gw4] [ 49%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_initialize_is_method_not_found tests/examples/test_stories.py::test_main_signature_matches_manifest[pagination] tests/server/mcpserver/test_resolve.py::test_state_entry_without_a_question_digest_is_dropped_and_reasked tests/interaction/transports/test_hosting_http_modern.py::test_legacy_version_header_falls_through_and_unrecognised_header_routes_to_modern [gw12] [ 49%] PASSED tests/issues/test_152_resource_mime_type.py::test_lowlevel_resource_mime_type [gw15] [ 49%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_read_text_file tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_explicit_settings_not_overridden_sse tests/server/mcpserver/resources/test_file_resources.py::test_encoding_none_reads_bytes [gw4] [ 49%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_legacy_version_header_falls_through_and_unrecognised_header_routes_to_modern tests/interaction/transports/test_hosting_http_modern.py::test_modern_handler_exception_maps_to_internal_error_without_leaking_the_message tests/issues/test_1574_resource_uri_validation.py::test_relative_uri_roundtrip [gw2] [ 49%] PASSED tests/server/mcpserver/servers/test_file_server.py::test_delete_file_and_check_resources [gw8] [ 49%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[pagination] [gw7] [ 49%] PASSED tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_explicit_settings_not_overridden_sse tests/server/mcpserver/test_elicitation.py::test_elicitation_accept_returns_the_users_answer_to_the_tool tests/examples/test_stories.py::test_main_signature_matches_manifest[parallel_calls] [gw15] [ 49%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_encoding_none_reads_bytes tests/server/mcpserver/resources/test_file_resources.py::test_textual_mime_types_default_to_utf8_sig[text/plain] tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_explicit_settings_not_overridden_streamable_http [gw11] [ 49%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-2026-07-28] tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[in-memory-2025-11-25] [gw12] [ 49%] PASSED tests/issues/test_1574_resource_uri_validation.py::test_relative_uri_roundtrip [gw7] [ 49%] PASSED tests/server/mcpserver/test_server.py::TestDnsRebindingProtection::test_explicit_settings_not_overridden_streamable_http [gw14] [ 49%] PASSED tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_mismatched_structured_content_is_an_error_result[in-memory-2025-11-25] [gw8] [ 50%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[parallel_calls] tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_mismatched_structured_content_is_an_error_result[sse-2025-11-25] tests/issues/test_1574_resource_uri_validation.py::test_custom_scheme_uri_roundtrip [gw4] [ 50%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_handler_exception_maps_to_internal_error_without_leaking_the_message [gw10] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_state_entry_without_a_question_digest_is_dropped_and_reasked tests/server/mcpserver/test_server.py::TestServerTools::test_add_tool tests/interaction/transports/test_hosting_http_modern.py::test_modern_server_discover_returns_capabilities_and_supported_versions tests/examples/test_stories.py::test_main_signature_matches_manifest[prompts] [gw15] [ 50%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_textual_mime_types_default_to_utf8_sig[text/plain] tests/server/mcpserver/resources/test_file_resources.py::test_textual_mime_types_default_to_utf8_sig[text/html] [gw4] [ 50%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_server_discover_returns_capabilities_and_supported_versions [gw12] [ 50%] PASSED tests/issues/test_1574_resource_uri_validation.py::test_custom_scheme_uri_roundtrip tests/server/mcpserver/test_resolve.py::test_reworded_question_drops_the_stored_answer_and_reasks [gw11] [ 50%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[in-memory-2025-11-25] [gw0] [ 50%] PASSED tests/interaction/transports/test_hosting_session.py::test_second_initialize_on_an_existing_session_is_accepted tests/interaction/transports/test_hosting_session.py::test_stateless_mode_never_issues_a_session_id tests/interaction/transports/test_hosting_http_modern.py::test_modern_removed_method_is_method_not_found_at_http_404 [gw15] [ 50%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_textual_mime_types_default_to_utf8_sig[text/html] [gw4] [ 50%] PASSED tests/interaction/transports/test_hosting_http_modern.py::test_modern_removed_method_is_method_not_found_at_http_404 tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[sse-2025-11-25] [gw8] [ 50%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[prompts] tests/server/mcpserver/test_resolve.py::test_callable_object_resolver_error_uses_type_name tests/issues/test_1574_resource_uri_validation.py::test_uri_json_roundtrip_preserves_value tests/server/mcpserver/test_server.py::TestServerResources::test_init_with_resources [gw4] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_callable_object_resolver_error_uses_type_name tests/examples/test_stories.py::test_main_signature_matches_manifest[reconnect] tests/server/mcpserver/test_resolve.py::test_by_name_resolver_param_uses_aliased_tool_arg [gw12] [ 50%] PASSED tests/issues/test_1574_resource_uri_validation.py::test_uri_json_roundtrip_preserves_value [gw13] [ 50%] PASSED tests/interaction/mcpserver/test_resources.py::test_read_static_resource[streamable-http-2026-07-28] tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://api.example.com-False] tests/issues/test_1574_resource_uri_validation.py::test_resource_contents_uri_json_roundtrip [gw8] [ 50%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[reconnect] [gw4] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_by_name_resolver_param_uses_aliased_tool_arg tests/server/mcpserver/test_resolve.py::test_resolver_may_return_non_basemodel_value tests/examples/test_stories.py::test_main_signature_matches_manifest[refund_desk] [gw12] [ 50%] PASSED tests/issues/test_1574_resource_uri_validation.py::test_resource_contents_uri_json_roundtrip tests/issues/test_1754_mime_type_parameters.py::test_mime_type_with_parameters [gw15] [ 50%] PASSED tests/server/mcpserver/test_server.py::TestServerResources::test_init_with_resources [gw3] [ 50%] PASSED tests/examples/test_stories.py::test_story[oauth-server_lowlevel-http-asgi-modern] [gw11] [ 50%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[sse-2025-11-25] [gw4] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_resolver_may_return_non_basemodel_value [gw10] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_reworded_question_drops_the_stored_answer_and_reasks tests/server/mcpserver/test_resolve.py::test_decline_of_a_reworded_question_does_not_suppress_the_new_question tests/server/mcpserver/test_resolve.py::test_resolver_accepts_optional_context_annotation tests/server/mcpserver/test_server.py::TestServerResources::test_text_resource tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-2025-11-25] [gw8] [ 50%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[refund_desk] [gw4] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_resolver_accepts_optional_context_annotation [gw13] [ 50%] PASSED tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://api.example.com-False] tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://api.example.com/mcp/child-False] [gw12] [ 50%] PASSED tests/issues/test_1754_mime_type_parameters.py::test_mime_type_with_parameters tests/server/mcpserver/test_resolve.py::test_bound_method_resolver_runs_once_across_references tests/server/mcpserver/resources/test_file_resources.py::test_textual_mime_types_default_to_utf8_sig[application/json] tests/examples/test_stories.py::test_main_signature_matches_manifest[resources] [gw15] [ 50%] PASSED tests/server/mcpserver/test_server.py::TestServerResources::test_text_resource [gw10] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_decline_of_a_reworded_question_does_not_suppress_the_new_question tests/issues/test_1754_mime_type_parameters.py::test_mime_type_with_parameters_and_space tests/server/mcpserver/test_resolve.py::test_reworded_question_reasks_even_when_the_answer_first_arrives tests/server/mcpserver/test_server.py::TestServerResources::test_read_unknown_resource [gw4] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_bound_method_resolver_runs_once_across_references tests/server/mcpserver/test_resolve.py::test_bound_method_cycle_is_detected [gw8] [ 50%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[resources] [gw12] [ 50%] PASSED tests/issues/test_1754_mime_type_parameters.py::test_mime_type_with_parameters_and_space [gw3] [ 50%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_textual_mime_types_default_to_utf8_sig[application/json] tests/server/mcpserver/resources/test_file_resources.py::test_textual_mime_types_default_to_utf8_sig[application/xml] [gw4] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_bound_method_cycle_is_detected tests/examples/test_stories.py::test_main_signature_matches_manifest[roots] [gw0] [ 50%] PASSED tests/interaction/transports/test_hosting_session.py::test_stateless_mode_never_issues_a_session_id tests/interaction/transports/test_hosting_session.py::test_stateless_mode_serves_concurrent_clients_independently tests/server/mcpserver/test_resolve.py::test_resolver_and_body_see_the_same_validated_default [gw10] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_reworded_question_reasks_even_when_the_answer_first_arrives [gw11] [ 50%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-2025-11-25] tests/server/mcpserver/test_resolve.py::test_an_answer_without_the_echoed_state_is_reasked_not_consumed [gw8] [ 50%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[roots] tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-stateless-2025-11-25] tests/examples/test_stories.py::test_main_signature_matches_manifest[sampling] [gw3] [ 50%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_textual_mime_types_default_to_utf8_sig[application/xml] [gw15] [ 50%] PASSED tests/server/mcpserver/test_server.py::TestServerResources::test_read_unknown_resource tests/server/mcpserver/test_server.py::TestServerResources::test_read_resource_error tests/issues/test_1754_mime_type_parameters.py::test_mime_type_with_multiple_parameters [gw12] [ 50%] PASSED tests/issues/test_1754_mime_type_parameters.py::test_mime_type_with_multiple_parameters [gw4] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_resolver_and_body_see_the_same_validated_default [gw8] [ 50%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[sampling] tests/server/mcpserver/resources/test_file_resources.py::test_textual_mime_types_default_to_utf8_sig[application/vnd.api+json] tests/server/mcpserver/test_resolve.py::test_resolver_key_is_stable_for_methods_and_distinct_callables [gw13] [ 50%] PASSED tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://api.example.com/mcp/child-False] tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://api.example.com/other-False] tests/issues/test_1754_mime_type_parameters.py::test_mime_type_preserved_in_read_resource [gw4] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_resolver_key_is_stable_for_methods_and_distinct_callables [gw3] [ 50%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_textual_mime_types_default_to_utf8_sig[application/vnd.api+json] tests/server/mcpserver/resources/test_file_resources.py::test_textual_mime_types_default_to_utf8_sig[image/svg+xml] [gw3] [ 50%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_textual_mime_types_default_to_utf8_sig[image/svg+xml] tests/server/mcpserver/resources/test_file_resources.py::test_binary_mime_types_default_to_no_encoding[image/png] [gw11] [ 50%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[in-memory-2026-07-28] [gw11] [ 50%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[in-memory-2026-07-28] tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-2026-07-28] tests/examples/test_stories.py::test_main_signature_matches_manifest[schema_validators] [gw8] [ 50%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[schema_validators] tests/examples/test_stories.py::test_main_signature_matches_manifest[serve_one] [gw8] [ 50%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[serve_one] tests/examples/test_stories.py::test_main_signature_matches_manifest[sse_polling] [gw8] [ 50%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[sse_polling] [gw3] [ 50%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_binary_mime_types_default_to_no_encoding[image/png] tests/server/mcpserver/resources/test_file_resources.py::test_binary_mime_types_default_to_no_encoding[application/octet-stream] [gw12] [ 50%] PASSED tests/issues/test_1754_mime_type_parameters.py::test_mime_type_preserved_in_read_resource [gw10] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_an_answer_without_the_echoed_state_is_reasked_not_consumed tests/server/mcpserver/test_resolve.py::test_recorded_answer_containing_a_lone_surrogate_survives_to_later_rounds [gw10] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_recorded_answer_containing_a_lone_surrogate_survives_to_later_rounds tests/server/mcpserver/test_resolve.py::test_resolver_elicitation_seals_and_completes_on_a_fully_default_server [gw10] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_resolver_elicitation_seals_and_completes_on_a_fully_default_server tests/server/mcpserver/test_resolve.py::test_delete_empty_folder_does_not_elicit [gw4] [ 50%] PASSED tests/server/mcpserver/test_resolve.py::test_delete_empty_folder_does_not_elicit tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[accept-content0-deleted /docs] tests/examples/test_stories.py::test_main_signature_matches_manifest[standalone_get] tests/server/mcpserver/test_resolve.py::test_sample_resolver_injects_result[legacy] [gw5] [ 50%] PASSED tests/client/test_stdio.py::test_exiting_the_context_terminates_the_entire_process_tree [gw11] [ 50%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-2026-07-28] [gw3] [ 51%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_binary_mime_types_default_to_no_encoding[application/octet-stream] tests/interaction/lowlevel/test_wire.py::test_request_ids_are_unique_and_never_null tests/issues/test_176_progress_token.py::test_progress_token_zero_first_call [gw13] [ 51%] PASSED tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://api.example.com/other-False] [gw1] [ 51%] PASSED tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[sse-2025-11-25] tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[streamable-http-2025-11-25] tests/client/test_stdio.py::test_tree_kill_reaches_children_after_the_leader_has_already_exited tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://other.example.com/mcp-False] tests/server/mcpserver/resources/test_file_resources.py::test_binary_mime_types_default_to_no_encoding[application/pdf] [gw12] [ 51%] PASSED tests/issues/test_176_progress_token.py::test_progress_token_zero_first_call [gw11] [ 51%] PASSED tests/interaction/lowlevel/test_wire.py::test_request_ids_are_unique_and_never_null [gw8] [ 51%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[standalone_get] [gw3] [ 51%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_binary_mime_types_default_to_no_encoding[application/pdf] tests/interaction/lowlevel/test_wire.py::test_notifications_are_never_answered [gw4] [ 51%] PASSED tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[accept-content0-deleted /docs] tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[accept-content1-kept the folder] tests/server/mcpserver/resources/test_file_resources.py::test_declared_charset_becomes_default_encoding[text/plain; charset=iso-8859-1] tests/examples/test_stories.py::test_main_signature_matches_manifest[starlette_mount] [gw10] [ 51%] PASSED tests/server/mcpserver/test_resolve.py::test_sample_resolver_injects_result[legacy] tests/server/mcpserver/test_resolve.py::test_sample_resolver_injects_result[auto] tests/issues/test_192_request_id.py::test_request_id_match [gw3] [ 51%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_declared_charset_becomes_default_encoding[text/plain; charset=iso-8859-1] [gw7] [ 51%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_add_tool tests/server/mcpserver/resources/test_file_resources.py::test_declared_charset_becomes_default_encoding[text/plain; format=flowed; charset="iso-8859-1"] [gw8] [ 51%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[starlette_mount] tests/examples/test_stories.py::test_main_signature_matches_manifest[stateless_legacy] [gw3] [ 51%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_declared_charset_becomes_default_encoding[text/plain; format=flowed; charset="iso-8859-1"] tests/server/mcpserver/test_server.py::TestServerTools::test_list_tools [gw4] [ 51%] PASSED tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[accept-content1-kept the folder] [gw8] [ 51%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[stateless_legacy] tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[decline-None-declined: folder not deleted] tests/examples/test_stories.py::test_main_signature_matches_manifest[stickynotes] [gw0] [ 51%] PASSED tests/interaction/transports/test_hosting_session.py::test_stateless_mode_serves_concurrent_clients_independently tests/server/mcpserver/resources/test_file_resources.py::test_removed_is_binary_kwarg_is_rejected [gw13] [ 51%] PASSED tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://other.example.com/mcp-False] [gw12] [ 51%] PASSED tests/issues/test_192_request_id.py::test_request_id_match [gw8] [ 51%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[stickynotes] [gw11] [ 51%] PASSED tests/interaction/lowlevel/test_wire.py::test_notifications_are_never_answered tests/interaction/lowlevel/test_wire.py::test_recording_read_stream_ends_iteration_when_the_sender_closes tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-api.example.com-False] [gw14] [ 51%] PASSED tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_mismatched_structured_content_is_an_error_result[sse-2025-11-25] tests/examples/test_stories.py::test_main_signature_matches_manifest[streaming] [gw11] [ 51%] PASSED tests/interaction/lowlevel/test_wire.py::test_recording_read_stream_ends_iteration_when_the_sender_closes [gw10] [ 51%] PASSED tests/server/mcpserver/test_resolve.py::test_sample_resolver_injects_result[auto] tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_mismatched_structured_content_is_an_error_result[streamable-http-2025-11-25] tests/issues/test_342_base64_encoding.py::test_server_base64_encoding tests/interaction/transports/test_legacy_wire.py::test_legacy_streamable_http_exchange_carries_no_modern_protocol_vocabulary tests/interaction/lowlevel/test_wire.py::test_exactly_one_initialized_notification_is_sent_after_the_handshake [gw8] [ 51%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[streaming] tests/server/mcpserver/test_resolve.py::test_list_roots_resolver_injects_result[legacy] [gw4] [ 51%] PASSED tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[decline-None-declined: folder not deleted] tests/examples/test_stories.py::test_main_signature_matches_manifest[subscriptions] tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[cancel-None-cancelled: folder not deleted] [gw11] [ 51%] PASSED tests/interaction/lowlevel/test_wire.py::test_exactly_one_initialized_notification_is_sent_after_the_handshake [gw3] [ 51%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_removed_is_binary_kwarg_is_rejected [gw8] [ 51%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[subscriptions] tests/interaction/lowlevel/test_wire.py::test_closing_the_transport_fails_in_flight_requests_with_connection_closed tests/server/mcpserver/resources/test_file_resources.py::test_unknown_encoding_is_rejected tests/examples/test_stories.py::test_main_signature_matches_manifest[tools] [gw1] [ 51%] PASSED tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[streamable-http-2025-11-25] [gw11] [ 51%] PASSED tests/interaction/lowlevel/test_wire.py::test_closing_the_transport_fails_in_flight_requests_with_connection_closed [gw12] [ 51%] PASSED tests/issues/test_342_base64_encoding.py::test_server_base64_encoding [gw3] [ 51%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_unknown_encoding_is_rejected [gw8] [ 51%] PASSED tests/examples/test_stories.py::test_main_signature_matches_manifest[tools] tests/examples/test_stories_smoke.py::test_story_main_runs_end_to_end[tools-stdio] tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_wire.py::test_malformed_request_params_are_answered_with_invalid_params [gw11] [ 51%] PASSED tests/interaction/lowlevel/test_wire.py::test_malformed_request_params_are_answered_with_invalid_params [gw15] [ 51%] PASSED tests/server/mcpserver/test_server.py::TestServerResources::test_read_resource_error tests/server/mcpserver/test_server.py::TestServerResources::test_binary_resource tests/issues/test_552_windows_hang.py::test_initialize_succeeds_and_shutdown_returns_after_the_server_exits_mid_session [gw12] [ 51%] SKIPPED tests/issues/test_552_windows_hang.py::test_initialize_succeeds_and_shutdown_returns_after_the_server_exits_mid_session [gw13] [ 51%] PASSED tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-api.example.com-False] tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_no_user tests/interaction/lowlevel/test_wire.py::test_set_level_with_an_unrecognized_value_is_answered_with_invalid_params [gw4] [ 51%] PASSED tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[cancel-None-cancelled: folder not deleted] tests/issues/test_973_url_decoding.py::test_template_matches_decodes_space [gw13] [ 51%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_no_user tests/server/mcpserver/resources/test_file_resources.py::test_unknown_declared_charset_is_rejected [gw3] [ 51%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_unknown_declared_charset_is_rejected tests/server/mcpserver/resources/test_file_resources.py::test_multibyte_encoding_is_accepted [gw3] [ 51%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_multibyte_encoding_is_accepted tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_non_authenticated_user [gw8] [ 51%] SKIPPED tests/examples/test_stories_smoke.py::test_story_main_runs_end_to_end[tools-stdio] tests/examples/test_stories_smoke.py::test_story_main_runs_end_to_end[tools-http] [gw8] [ 51%] SKIPPED tests/examples/test_stories_smoke.py::test_story_main_runs_end_to_end[tools-http] [gw11] [ 51%] PASSED tests/interaction/lowlevel/test_wire.py::test_set_level_with_an_unrecognized_value_is_answered_with_invalid_params tests/interaction/lowlevel/test_wire.py::test_abandoning_a_call_on_a_modern_stream_wire_sends_one_cancelled_frame tests/server/mcpserver/test_resolve.py::test_input_required_first_round_returns_the_question tests/server/mcpserver/resources/test_file_resources.py::test_non_text_codec_is_rejected tests/examples/test_stories_smoke.py::test_story_main_runs_end_to_end[bearer_auth-http] [gw13] [ 51%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_non_authenticated_user [gw8] [ 51%] SKIPPED tests/examples/test_stories_smoke.py::test_story_main_runs_end_to_end[bearer_auth-http] tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_missing_required_scope [gw7] [ 51%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_list_tools tests/examples/test_story_shape.py::test_main_constructs_client_inline[apps] [gw3] [ 51%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_non_text_codec_is_rejected [gw10] [ 51%] PASSED tests/server/mcpserver/test_resolve.py::test_list_roots_resolver_injects_result[legacy] tests/server/mcpserver/test_server.py::TestServerTools::test_call_tool tests/server/mcpserver/resources/test_file_resources.py::test_json_file_is_served_as_text_by_default [gw11] [ 51%] PASSED tests/interaction/lowlevel/test_wire.py::test_abandoning_a_call_on_a_modern_stream_wire_sends_one_cancelled_frame tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[in-memory-2025-11-25] tests/server/mcpserver/test_resolve.py::test_list_roots_resolver_injects_result[auto] [gw13] [ 51%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_missing_required_scope tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_no_auth_credentials [gw13] [ 51%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_no_auth_credentials [gw4] [ 51%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_first_round_returns_the_question tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_has_required_scopes [gw8] [ 51%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[apps] [gw11] [ 51%] PASSED tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[in-memory-2025-11-25] [gw13] [ 51%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_has_required_scopes tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[accept-content0-deleted /docs] tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_multiple_required_scopes tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[sse-2025-11-25] tests/examples/test_story_shape.py::test_main_constructs_client_inline[bearer_auth] [gw13] [ 51%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_multiple_required_scopes [gw15] [ 51%] PASSED tests/server/mcpserver/test_server.py::TestServerResources::test_binary_resource tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_no_required_scopes [gw12] [ 51%] PASSED tests/issues/test_973_url_decoding.py::test_template_matches_decodes_space [gw8] [ 52%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[bearer_auth] tests/server/mcpserver/test_server.py::TestServerResources::test_file_resource_text [gw13] [ 52%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestRequireAuthMiddleware::test_no_required_scopes tests/examples/test_story_shape.py::test_main_constructs_client_inline[custom_methods] tests/server/auth/middleware/test_bearer_auth.py::test_authorization_context_is_built_from_principal_components tests/issues/test_973_url_decoding.py::test_template_matches_decodes_accented_characters [gw13] [ 52%] PASSED tests/server/auth/middleware/test_bearer_auth.py::test_authorization_context_is_built_from_principal_components [gw7] [ 52%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_call_tool tests/server/mcpserver/test_server.py::TestServerTools::test_tool_exception_handling tests/server/auth/test_error_handling.py::test_registration_error_handling [gw8] [ 52%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[custom_methods] [gw6] [ 52%] PASSED tests/interaction/mcpserver/test_tools.py::test_registering_a_tool_with_a_spec_invalid_name_warns_but_does_not_reject[in-memory-2026-07-28] [gw12] [ 52%] PASSED tests/issues/test_973_url_decoding.py::test_template_matches_decodes_accented_characters [gw10] [ 52%] PASSED tests/server/mcpserver/test_resolve.py::test_list_roots_resolver_injects_result[auto] [gw11] [ 52%] PASSED tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[sse-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_registering_a_tool_with_a_spec_invalid_name_warns_but_does_not_reject[streamable-http-2026-07-28] [gw13] [ 52%] PASSED tests/server/auth/test_error_handling.py::test_registration_error_handling tests/examples/test_story_shape.py::test_main_constructs_client_inline[dual_era] tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[streamable-http-2025-11-25] tests/server/mcpserver/test_resolve.py::test_mixed_kinds_batch_into_one_round [gw4] [ 52%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[accept-content0-deleted /docs] tests/issues/test_973_url_decoding.py::test_template_matches_decodes_complex_phrase tests/server/auth/test_error_handling.py::test_authorize_error_handling [gw0] [ 52%] PASSED tests/interaction/transports/test_legacy_wire.py::test_legacy_streamable_http_exchange_carries_no_modern_protocol_vocabulary tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[accept-content1-kept the folder] tests/interaction/transports/test_sse.py::test_endpoint_event_names_the_message_endpoint_with_a_fresh_session_id [gw8] [ 52%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[dual_era] tests/examples/test_story_shape.py::test_main_constructs_client_inline[error_handling] [gw12] [ 52%] PASSED tests/issues/test_973_url_decoding.py::test_template_matches_decodes_complex_phrase [gw13] [ 52%] PASSED tests/server/auth/test_error_handling.py::test_authorize_error_handling [gw8] [ 52%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[error_handling] tests/issues/test_973_url_decoding.py::test_template_matches_preserves_plus_sign tests/server/auth/test_error_handling.py::test_token_error_handling_auth_code tests/examples/test_story_shape.py::test_main_constructs_client_inline[extensions] [gw11] [ 52%] PASSED tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[streamable-http-2025-11-25] tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[streamable-http-stateless-2025-11-25] [gw1] [ 52%] PASSED tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[streamable-http-stateless-2025-11-25] [gw5] [ 52%] PASSED tests/client/test_stdio.py::test_tree_kill_reaches_children_after_the_leader_has_already_exited tests/client/test_stdio.py::test_terminating_an_already_exited_process_is_a_no_op [gw8] [ 52%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[extensions] [gw12] [ 52%] PASSED tests/issues/test_973_url_decoding.py::test_template_matches_preserves_plus_sign tests/server/auth/middleware/test_auth_context.py::test_auth_context_middleware_with_authenticated_user [gw13] [ 52%] PASSED tests/server/auth/test_error_handling.py::test_token_error_handling_auth_code tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[in-memory-2025-11-25] [gw0] [ 52%] PASSED tests/interaction/transports/test_sse.py::test_endpoint_event_names_the_message_endpoint_with_a_fresh_session_id tests/examples/test_story_shape.py::test_main_constructs_client_inline[identity_assertion] [gw4] [ 52%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[accept-content1-kept the folder] tests/interaction/transports/test_sse.py::test_post_without_a_session_id_is_rejected tests/server/auth/test_error_handling.py::test_token_error_handling_refresh_token tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[decline-None-declined: folder not deleted] [gw12] [ 52%] PASSED tests/server/auth/middleware/test_auth_context.py::test_auth_context_middleware_with_authenticated_user tests/server/auth/middleware/test_auth_context.py::test_auth_context_middleware_with_no_user [gw8] [ 52%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[identity_assertion] [gw11] [ 52%] PASSED tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[streamable-http-stateless-2025-11-25] [gw10] [ 52%] PASSED tests/server/mcpserver/test_resolve.py::test_mixed_kinds_batch_into_one_round [gw12] [ 52%] PASSED tests/server/auth/middleware/test_auth_context.py::test_auth_context_middleware_with_no_user tests/examples/test_story_shape.py::test_main_constructs_client_inline[json_response] tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[in-memory-2025-11-25] [gw1] [ 52%] PASSED tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[in-memory-2025-11-25] tests/server/mcpserver/test_resolve.py::test_sampling_tool_without_client_capability_is_a_protocol_error tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_no_auth_header tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[sse-2025-11-25] [gw13] [ 52%] PASSED tests/server/auth/test_error_handling.py::test_token_error_handling_refresh_token [gw8] [ 52%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[json_response] [gw12] [ 52%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_no_auth_header [gw11] [ 52%] PASSED tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[in-memory-2025-11-25] tests/examples/test_story_shape.py::test_main_constructs_client_inline[legacy_elicitation] tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[sse-2025-11-25] tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_non_bearer_auth_header [gw12] [ 52%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_non_bearer_auth_header [gw4] [ 52%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[decline-None-declined: folder not deleted] [gw8] [ 52%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[legacy_elicitation] tests/examples/test_story_shape.py::test_main_constructs_client_inline[legacy_routing] [gw10] [ 52%] PASSED tests/server/mcpserver/test_resolve.py::test_sampling_tool_without_client_capability_is_a_protocol_error tests/server/mcpserver/test_resolve.py::test_roots_tool_without_client_capability_is_a_protocol_error [gw1] [ 52%] PASSED tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[sse-2025-11-25] tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[POST-/token-application/x-www-form-urlencoded] tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_invalid_token tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[cancel-None-cancelled: folder not deleted] [gw8] [ 52%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[legacy_routing] tests/examples/test_story_shape.py::test_main_constructs_client_inline[lifespan] [gw5] [ 52%] PASSED tests/client/test_stdio.py::test_terminating_an_already_exited_process_is_a_no_op tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[streamable-http-2025-11-25] [gw8] [ 52%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[lifespan] tests/client/test_stdio.py::test_escalation_kills_a_process_that_ignores_sigterm tests/examples/test_story_shape.py::test_main_constructs_client_inline[middleware] [gw12] [ 52%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_invalid_token [gw11] [ 52%] PASSED tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[sse-2025-11-25] [gw8] [ 52%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[middleware] [gw10] [ 52%] PASSED tests/server/mcpserver/test_resolve.py::test_roots_tool_without_client_capability_is_a_protocol_error tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[streamable-http-2025-11-25] tests/examples/test_story_shape.py::test_main_constructs_client_inline[mrtr] tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_expired_token [gw8] [ 52%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[mrtr] [gw12] [ 52%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_expired_token tests/server/mcpserver/test_resolve.py::test_legacy_eliciting_tool_without_capability_is_a_protocol_error tests/examples/test_story_shape.py::test_main_constructs_client_inline[oauth] [gw13] [ 52%] PASSED tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[POST-/token-application/x-www-form-urlencoded] [gw1] [ 52%] PASSED tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[streamable-http-2025-11-25] tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[streamable-http-stateless-2025-11-25] tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[POST-/revoke-application/x-www-form-urlencoded] [gw13] [ 52%] PASSED tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[POST-/revoke-application/x-www-form-urlencoded] [gw11] [ 52%] PASSED tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[streamable-http-2025-11-25] [gw0] [ 52%] PASSED tests/interaction/transports/test_sse.py::test_post_without_a_session_id_is_rejected tests/interaction/transports/test_sse.py::test_post_with_a_malformed_session_id_is_rejected tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[streamable-http-stateless-2025-11-25] [gw10] [ 52%] PASSED tests/server/mcpserver/test_resolve.py::test_legacy_eliciting_tool_without_capability_is_a_protocol_error tests/server/mcpserver/test_resolve.py::test_sample_tools_require_the_tools_subcapability[_ask_with_tools] [gw4] [ 52%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[cancel-None-cancelled: folder not deleted] tests/server/mcpserver/test_resolve.py::test_input_required_empty_folder_completes_without_eliciting tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[POST-/register-application/json] tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_valid_token [gw12] [ 52%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_valid_token tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_token_without_expiry [gw12] [ 52%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_token_without_expiry tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_lowercase_bearer_prefix [gw8] [ 52%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[oauth] tests/examples/test_story_shape.py::test_main_constructs_client_inline[oauth_client_credentials] [gw1] [ 52%] PASSED tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[in-memory-2026-07-28] [gw10] [ 53%] PASSED tests/server/mcpserver/test_resolve.py::test_sample_tools_require_the_tools_subcapability[_ask_with_tools] tests/server/mcpserver/test_resolve.py::test_sample_tools_require_the_tools_subcapability[_ask_with_tool_choice] [gw12] [ 53%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_lowercase_bearer_prefix tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_mixed_case_bearer_prefix [gw13] [ 53%] PASSED tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[POST-/register-application/json] tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[POST-/authorize-application/x-www-form-urlencoded] [gw8] [ 53%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[oauth_client_credentials] [gw1] [ 53%] PASSED tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[in-memory-2026-07-28] tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[streamable-http-2026-07-28] [gw3] [ 53%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_json_file_is_served_as_text_by_default tests/server/mcpserver/resources/test_file_resources.py::test_utf8_bom_is_stripped_by_default tests/examples/test_story_shape.py::test_main_constructs_client_inline[pagination] [gw11] [ 53%] PASSED tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[in-memory-2025-11-25] [gw15] [ 53%] PASSED tests/server/mcpserver/test_server.py::TestServerResources::test_file_resource_text tests/server/mcpserver/test_server.py::TestServerResources::test_file_resource_binary [gw12] [ 53%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_mixed_case_bearer_prefix [gw1] [ 53%] PASSED tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[streamable-http-2026-07-28] [gw8] [ 53%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[pagination] tests/examples/test_story_shape.py::test_main_constructs_client_inline[parallel_calls] tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[in-memory-2025-11-25] [gw10] [ 53%] PASSED tests/server/mcpserver/test_resolve.py::test_sample_tools_require_the_tools_subcapability[_ask_with_tool_choice] tests/server/mcpserver/test_resolve.py::test_sample_with_tools_round_trips_with_declared_subcapability [gw8] [ 53%] PASSED tests/examples/test_story_shape.py::test_main_constructs_client_inline[parallel_calls] [gw7] [ 53%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_exception_handling [gw1] [ 53%] PASSED tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[in-memory-2025-11-25] tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_object_tool [gw4] [ 53%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_empty_folder_completes_without_eliciting tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_mixed_case_authorization_header [gw12] [ 53%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_mixed_case_authorization_header tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[sse-2025-11-25] [gw13] [ 53%] PASSED tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[POST-/authorize-application/x-www-form-urlencoded] tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[OPTIONS-/token-application/x-www-form-urlencoded] [gw11] [ 53%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[in-memory-2025-11-25] [gw8] [ 53%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_object_tool tests/server/mcpserver/test_resolve.py::test_input_required_asks_each_question_once_while_bodies_rerun tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[sse-2025-11-25] [gw10] [ 53%] PASSED tests/server/mcpserver/test_resolve.py::test_sample_with_tools_round_trips_with_declared_subcapability tests/server/mcpserver/test_resolve.py::test_no_tool_use_answer_to_a_tools_request_is_accepted tests/server/mcpserver/test_server.py::TestServerTools::test_tool_error_handling tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[None-https://other.example.com/mcp-True] tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_async_object_tool [gw8] [ 53%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_async_object_tool tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_default_args [gw13] [ 53%] PASSED tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[OPTIONS-/token-application/x-www-form-urlencoded] [gw0] [ 53%] PASSED tests/interaction/transports/test_sse.py::test_post_with_a_malformed_session_id_is_rejected [gw8] [ 53%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_default_args [gw1] [ 53%] PASSED tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[sse-2025-11-25] [gw12] [ 53%] PASSED tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[None-https://other.example.com/mcp-True] tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_missing_args tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[streamable-http-2025-11-25] tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[None-None-True] [gw15] [ 53%] PASSED tests/server/mcpserver/test_server.py::TestServerResources::test_file_resource_binary tests/interaction/transports/test_sse.py::test_post_for_an_unknown_session_is_rejected tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[OPTIONS-/revoke-application/x-www-form-urlencoded] [gw12] [ 53%] PASSED tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[None-None-True] tests/server/mcpserver/test_server.py::TestServerResources::test_function_resource tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-None-False] [gw8] [ 53%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_missing_args [gw10] [ 53%] PASSED tests/server/mcpserver/test_resolve.py::test_no_tool_use_answer_to_a_tools_request_is_accepted [gw11] [ 53%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[sse-2025-11-25] tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_unknown_tool tests/server/mcpserver/test_resolve.py::test_sample_outcome_persists_across_rounds tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-2025-11-25] [gw15] [ 53%] PASSED tests/server/mcpserver/test_server.py::TestServerResources::test_function_resource [gw8] [ 53%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_unknown_tool tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_with_params tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_list_int_input [gw4] [ 53%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_asks_each_question_once_while_bodies_rerun tests/server/mcpserver/test_resolve.py::test_input_required_batches_independent_elicits_in_one_round [gw13] [ 53%] PASSED tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[OPTIONS-/revoke-application/x-www-form-urlencoded] [gw15] [ 53%] PASSED tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_with_params tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_with_uri_params [gw8] [ 53%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_list_int_input [gw3] [ 53%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_utf8_bom_is_stripped_by_default tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[OPTIONS-/register-application/json] tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_list_str_or_str_input [gw15] [ 53%] PASSED tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_with_uri_params [gw1] [ 53%] PASSED tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[streamable-http-2025-11-25] [gw4] [ 53%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_batches_independent_elicits_in_one_round [gw10] [ 53%] PASSED tests/server/mcpserver/test_resolve.py::test_sample_outcome_persists_across_rounds tests/server/mcpserver/resources/test_file_resources.py::test_explicit_encoding_overrides_default tests/server/mcpserver/test_resolve.py::test_wrong_kind_response_for_sample_raises [gw13] [ 53%] PASSED tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[OPTIONS-/register-application/json] tests/server/mcpserver/test_resolve.py::test_auto_driver_answers_independent_questions_in_a_single_round tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_with_untyped_params [gw15] [ 53%] PASSED tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_with_untyped_params [gw12] [ 53%] PASSED tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-None-False] tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://api.example.com/mcp-True] [gw12] [ 53%] PASSED tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://api.example.com/mcp-True] tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[streamable-http-stateless-2025-11-25] tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_matching_params [gw11] [ 53%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-2025-11-25] tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-stateless-2025-11-25] tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://api.example.com/mcp/-True] [gw8] [ 53%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_list_str_or_str_input tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_complex_model [gw12] [ 53%] PASSED tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://api.example.com/mcp/-True] tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[HEAD-/authorize-application/x-www-form-urlencoded] [gw8] [ 53%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_complex_model [gw15] [ 53%] PASSED tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_matching_params tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://API.EXAMPLE.COM:443/mcp-True] [gw12] [ 53%] PASSED tests/server/auth/middleware/test_bearer_auth.py::test_backend_accepts_only_tokens_issued_for_its_resource[https://api.example.com/mcp-https://API.EXAMPLE.COM:443/mcp-True] tests/server/mcpserver/test_tool_manager.py::TestToolSchema::test_context_arg_excluded_from_schema tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_mismatched_params tests/server/mcpserver/test_server.py::test_call_tool_wraps_a_crash_as_unexpected_tool_error_chained_to_the_original [gw4] [ 53%] PASSED tests/server/mcpserver/test_resolve.py::test_auto_driver_answers_independent_questions_in_a_single_round tests/server/mcpserver/test_resolve.py::test_uses_input_required_version_gate [gw15] [ 53%] PASSED tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_mismatched_params [gw8] [ 53%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolSchema::test_context_arg_excluded_from_schema tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_multiple_params [gw4] [ 53%] PASSED tests/server/mcpserver/test_resolve.py::test_uses_input_required_version_gate tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[None] [gw1] [ 53%] PASSED tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[streamable-http-stateless-2025-11-25] tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_parameter_detection [gw13] [ 53%] PASSED tests/server/auth/test_error_handling.py::test_oversized_request_body_returns_413[HEAD-/authorize-application/x-www-form-urlencoded] tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[in-memory-2026-07-28] [gw12] [ 53%] PASSED tests/server/mcpserver/test_server.py::test_call_tool_wraps_a_crash_as_unexpected_tool_error_chained_to_the_original tests/server/auth/test_error_handling.py::test_request_body_within_the_limit_is_still_parsed tests/server/mcpserver/test_server.py::test_call_tool_keeps_a_deliberate_tool_error_a_plain_tool_error [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[None] [gw10] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_wrong_kind_response_for_sample_raises tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[] [gw1] [ 54%] PASSED tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[in-memory-2026-07-28] tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[streamable-http-2026-07-28] [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[] [gw8] [ 54%] PASSED tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_parameter_detection [gw0] [ 54%] PASSED tests/interaction/transports/test_sse.py::test_post_for_an_unknown_session_is_rejected [gw12] [ 54%] PASSED tests/server/mcpserver/test_server.py::test_call_tool_keeps_a_deliberate_tool_error_a_plain_tool_error tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[not json] tests/server/mcpserver/test_resolve.py::test_mixed_marker_arms_raise_at_registration tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_injection tests/interaction/transports/test_stdio.py::test_stdio_server_writes_one_jsonrpc_message_per_line [gw11] [ 54%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-stateless-2025-11-25] tests/server/mcpserver/test_server.py::test_nested_tool_crash_stays_unexpected_through_the_outer_tool [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[not json] [gw13] [ 54%] PASSED tests/server/auth/test_error_handling.py::test_request_body_within_the_limit_is_still_parsed tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[{"v": 99, "outcomes": {}}] [gw10] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_mixed_marker_arms_raise_at_registration tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[in-memory-2026-07-28] tests/server/mcpserver/test_resolve.py::test_marker_union_with_generic_alias_member_registers [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[{"v": 99, "outcomes": {}}] [gw8] [ 54%] PASSED tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_injection tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_injection_async tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[{"v": 1}] [gw1] [ 54%] PASSED tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[streamable-http-2026-07-28] [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[{"v": 1}] tests/server/auth/test_error_handling.py::test_cors_preflight_is_still_answered [gw10] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_marker_union_with_generic_alias_member_registers tests/interaction/lowlevel/test_pagination.py::test_paginating_until_next_cursor_is_absent_yields_every_page[in-memory-2025-11-25] tests/server/mcpserver/test_resolve.py::test_decline_entry_for_a_sample_marker_is_invalid [gw10] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_decline_entry_for_a_sample_marker_is_invalid [gw8] [ 54%] PASSED tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_injection_async tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[{"v": 1, "outcomes": []}] [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[{"v": 1, "outcomes": []}] tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[[1, 2, 3]] tests/server/mcpserver/test_resolve.py::test_bare_initialized_session_is_still_gated [gw11] [ 54%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[in-memory-2026-07-28] tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-2026-07-28] [gw15] [ 54%] PASSED tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_multiple_params tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_multiple_mismatched_params [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[[1, 2, 3]] tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_error_handling tests/server/mcpserver/test_resolve.py::test_state_round_trips_accept_decline_cancel [gw1] [ 54%] PASSED tests/interaction/lowlevel/test_pagination.py::test_paginating_until_next_cursor_is_absent_yields_every_page[in-memory-2025-11-25] tests/interaction/lowlevel/test_pagination.py::test_paginating_until_next_cursor_is_absent_yields_every_page[sse-2025-11-25] [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_state_round_trips_accept_decline_cancel [gw10] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_bare_initialized_session_is_still_gated [gw13] [ 54%] PASSED tests/server/auth/test_error_handling.py::test_cors_preflight_is_still_answered tests/server/mcpserver/test_resolve.py::test_check_elicit_return_allows_one_arm_and_rejects_two [gw8] [ 54%] PASSED tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_error_handling tests/server/mcpserver/test_resolve.py::test_tool_choice_only_sample_validates_as_tools_mode[legacy] tests/server/auth/test_error_handling.py::test_oversized_cross_origin_request_gets_413_with_cors_headers [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_check_elicit_return_allows_one_arm_and_rejects_two tests/server/mcpserver/test_tool_manager.py::TestToolAnnotations::test_tool_annotations tests/server/mcpserver/test_resolve.py::test_non_elicitation_response_raises [gw11] [ 54%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-2026-07-28] [gw1] [ 54%] PASSED tests/interaction/lowlevel/test_pagination.py::test_paginating_until_next_cursor_is_absent_yields_every_page[sse-2025-11-25] tests/interaction/lowlevel/test_pagination.py::test_paginating_until_next_cursor_is_absent_yields_every_page[streamable-http-2025-11-25] [gw8] [ 54%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolAnnotations::test_tool_annotations tests/server/mcpserver/test_tool_manager.py::TestToolAnnotations::test_tool_annotations_in_mcpserver [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_non_elicitation_response_raises tests/server/mcpserver/test_resolve.py::test_direct_call_tool_with_non_eliciting_resolver [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_direct_call_tool_with_non_eliciting_resolver tests/server/mcpserver/test_resolve.py::test_two_instances_of_one_method_do_not_collide [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_two_instances_of_one_method_do_not_collide tests/server/mcpserver/test_resolve.py::test_non_serializable_sibling_resolver_does_not_break_rounds [gw15] [ 54%] PASSED tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_multiple_mismatched_params tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_template_to_resource_conversion [gw15] [ 54%] PASSED tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_template_to_resource_conversion tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_template_includes_mime_type [gw10] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_choice_only_sample_validates_as_tools_mode[legacy] [gw13] [ 54%] PASSED tests/server/auth/test_error_handling.py::test_oversized_cross_origin_request_gets_413_with_cors_headers tests/server/auth/test_identity_assertion.py::test_build_metadata_advertises_id_jag_profile_when_enabled [gw13] [ 54%] PASSED tests/server/auth/test_identity_assertion.py::test_build_metadata_advertises_id_jag_profile_when_enabled tests/server/auth/test_identity_assertion.py::test_metadata_endpoint_lists_id_jag_profile [gw13] [ 54%] PASSED tests/server/auth/test_identity_assertion.py::test_metadata_endpoint_lists_id_jag_profile [gw7] [ 54%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_error_handling tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[in-memory-2025-11-25] [gw11] [ 54%] PASSED tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[in-memory-2025-11-25] tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[sse-2025-11-25] [gw9] [ 54%] PASSED tests/docs_src/test_apps.py::test_one_tool_two_answers tests/server/mcpserver/test_resolve.py::test_tool_choice_only_sample_validates_as_tools_mode[auto] [gw8] [ 54%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolAnnotations::test_tool_annotations_in_mcpserver tests/docs_src/test_apps.py::test_capability_advertised_under_server_extensions [gw9] [ 54%] PASSED tests/docs_src/test_apps.py::test_capability_advertised_under_server_extensions tests/docs_src/test_apps.py::test_csp_permissions_domain_and_border_ride_the_resource_meta [gw9] [ 54%] PASSED tests/docs_src/test_apps.py::test_csp_permissions_domain_and_border_ride_the_resource_meta tests/docs_src/test_apps.py::test_an_app_only_tool_is_still_listed_and_callable tests/server/auth/test_identity_assertion.py::test_identity_assertion_success tests/server/mcpserver/test_server.py::TestServerTools::test_tool_error_details tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_basemodel_output [gw9] [ 54%] PASSED tests/docs_src/test_apps.py::test_an_app_only_tool_is_still_listed_and_callable [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_non_serializable_sibling_resolver_does_not_break_rounds tests/docs_src/test_apps.py::test_a_file_resource_is_served_with_the_app_mime_type_filled_in [gw11] [ 54%] PASSED tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[sse-2025-11-25] [gw3] [ 54%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_explicit_encoding_overrides_default tests/server/mcpserver/test_resolve.py::test_bare_elicit_dependency_restored_as_model [gw15] [ 54%] PASSED tests/server/mcpserver/test_server.py::TestServerResourceTemplates::test_resource_template_includes_mime_type tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[streamable-http-2025-11-25] [gw1] [ 54%] PASSED tests/interaction/lowlevel/test_pagination.py::test_paginating_until_next_cursor_is_absent_yields_every_page[streamable-http-2025-11-25] tests/server/mcpserver/test_server.py::TestServerResourceMetadata::test_resource_decorator_with_metadata [gw13] [ 54%] PASSED tests/server/auth/test_identity_assertion.py::test_identity_assertion_success tests/server/auth/test_identity_assertion.py::test_identity_assertion_invalid_assertion tests/server/mcpserver/resources/test_file_resources.py::test_relative_path_error [gw8] [ 54%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_basemodel_output tests/interaction/lowlevel/test_pagination.py::test_paginating_until_next_cursor_is_absent_yields_every_page[streamable-http-stateless-2025-11-25] [gw15] [ 54%] PASSED tests/server/mcpserver/test_server.py::TestServerResourceMetadata::test_resource_decorator_with_metadata [gw10] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_choice_only_sample_validates_as_tools_mode[auto] tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_primitive_output [gw12] [ 54%] PASSED tests/server/mcpserver/test_server.py::test_nested_tool_crash_stays_unexpected_through_the_outer_tool [gw4] [ 54%] PASSED tests/server/mcpserver/test_resolve.py::test_bare_elicit_dependency_restored_as_model tests/server/mcpserver/test_resolve.py::test_a_resolver_fills_its_parameter_without_any_client_interaction tests/server/mcpserver/test_server.py::TestServerResourceMetadata::test_resource_template_decorator_with_metadata tests/server/mcpserver/test_server.py::test_context_exposes_client_capabilities_from_connection tests/server/mcpserver/test_resolve.py::test_accept_with_no_content_is_an_error_not_a_cancel[legacy] [gw13] [ 54%] PASSED tests/server/auth/test_identity_assertion.py::test_identity_assertion_invalid_assertion [gw3] [ 55%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_relative_path_error tests/server/auth/test_identity_assertion.py::test_identity_assertion_rejected_when_disabled [gw8] [ 55%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_primitive_output tests/server/mcpserver/resources/test_file_resources.py::test_missing_file_error tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_typeddict_output [gw13] [ 55%] PASSED tests/server/auth/test_identity_assertion.py::test_identity_assertion_rejected_when_disabled [gw10] [ 55%] PASSED tests/server/mcpserver/test_resolve.py::test_a_resolver_fills_its_parameter_without_any_client_interaction [gw4] [ 55%] PASSED tests/server/mcpserver/test_resolve.py::test_accept_with_no_content_is_an_error_not_a_cancel[legacy] tests/server/mcpserver/test_resolve.py::test_a_resolver_may_depend_on_another_resolvers_value tests/server/mcpserver/test_resolve.py::test_accept_with_no_content_is_an_error_not_a_cancel[auto] [gw15] [ 55%] PASSED tests/server/mcpserver/test_server.py::TestServerResourceMetadata::test_resource_template_decorator_with_metadata tests/server/mcpserver/test_server.py::TestServerResourceMetadata::test_read_resource_returns_meta [gw12] [ 55%] PASSED tests/server/mcpserver/test_server.py::test_context_exposes_client_capabilities_from_connection tests/server/auth/test_identity_assertion.py::test_identity_assertion_rejects_public_client [gw3] [ 55%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_missing_file_error [gw1] [ 55%] PASSED tests/interaction/lowlevel/test_pagination.py::test_paginating_until_next_cursor_is_absent_yields_every_page[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_pagination.py::test_paginating_until_next_cursor_is_absent_yields_every_page[in-memory-2026-07-28] [gw5] [ 55%] PASSED tests/client/test_stdio.py::test_escalation_kills_a_process_that_ignores_sigterm tests/server/mcpserver/test_server.py::test_context_input_responses_and_request_state_are_none_on_initial_round [gw4] [ 55%] PASSED tests/server/mcpserver/test_resolve.py::test_accept_with_no_content_is_an_error_not_a_cancel[auto] [gw14] [ 55%] PASSED tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_mismatched_structured_content_is_an_error_result[streamable-http-2025-11-25] [gw10] [ 55%] PASSED tests/server/mcpserver/test_resolve.py::test_a_resolver_may_depend_on_another_resolvers_value [gw8] [ 55%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_typeddict_output tests/client/test_stdio.py::test_a_graceful_exit_with_a_surviving_child_leaks_no_pipe_fds tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_call_removed_tool_raises_error tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_dataclass_output [gw1] [ 55%] PASSED tests/interaction/lowlevel/test_pagination.py::test_paginating_until_next_cursor_is_absent_yields_every_page[in-memory-2026-07-28] [gw7] [ 55%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_error_details tests/server/mcpserver/test_server.py::TestServerTools::test_tool_return_value_conversion tests/server/mcpserver/resources/test_file_resources.py::test_permission_error [gw13] [ 55%] PASSED tests/server/auth/test_identity_assertion.py::test_identity_assertion_rejects_public_client tests/interaction/lowlevel/test_pagination.py::test_paginating_until_next_cursor_is_absent_yields_every_page[streamable-http-2026-07-28] tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_mismatched_structured_content_is_an_error_result[streamable-http-stateless-2025-11-25] tests/server/auth/test_identity_assertion.py::test_identity_assertion_rejects_secretless_confidential_client [gw8] [ 55%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_dataclass_output tests/server/mcpserver/test_resolve.py::test_a_client_supplied_value_for_a_resolved_parameter_is_discarded [gw15] [ 55%] PASSED tests/server/mcpserver/test_server.py::TestServerResourceMetadata::test_read_resource_returns_meta tests/server/mcpserver/test_server.py::TestContextInjection::test_context_detection tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_list_output [gw4] [ 55%] PASSED tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_call_removed_tool_raises_error tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_tool_case_sensitive [gw3] [ 55%] PASSED tests/server/mcpserver/resources/test_file_resources.py::test_permission_error [gw12] [ 55%] PASSED tests/server/mcpserver/test_server.py::test_context_input_responses_and_request_state_are_none_on_initial_round [gw8] [ 55%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_list_output tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_without_structured_output [gw13] [ 55%] PASSED tests/server/auth/test_identity_assertion.py::test_identity_assertion_rejects_secretless_confidential_client tests/server/auth/test_identity_assertion.py::test_malformed_request_missing_assertion_is_invalid_request [gw1] [ 55%] PASSED tests/interaction/lowlevel/test_pagination.py::test_paginating_until_next_cursor_is_absent_yields_every_page[streamable-http-2026-07-28] tests/interaction/lowlevel/test_pagination.py::test_the_client_follows_opaque_cursors_through_pages_of_varying_sizes[in-memory-2025-11-25] [gw15] [ 55%] PASSED tests/server/mcpserver/test_server.py::TestContextInjection::test_context_detection [gw4] [ 55%] PASSED tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_tool_case_sensitive tests/server/mcpserver/test_server.py::TestContextInjection::test_context_injection tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_function_resource_creation [gw13] [ 55%] PASSED tests/server/auth/test_identity_assertion.py::test_malformed_request_missing_assertion_is_invalid_request tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_accept [gw7] [ 55%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_return_value_conversion [gw10] [ 55%] PASSED tests/server/mcpserver/test_resolve.py::test_a_client_supplied_value_for_a_resolved_parameter_is_discarded [gw1] [ 55%] PASSED tests/interaction/lowlevel/test_pagination.py::test_the_client_follows_opaque_cursors_through_pages_of_varying_sizes[in-memory-2025-11-25] tests/server/mcpserver/test_server.py::test_context_notify_methods_publish_to_the_configured_bus [gw8] [ 55%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_without_structured_output tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_output_schema_property tests/server/mcpserver/test_resolve.py::test_resolved_parameters_are_absent_from_the_advertised_tool_schema tests/interaction/lowlevel/test_pagination.py::test_the_client_follows_opaque_cursors_through_pages_of_varying_sizes[sse-2025-11-25] [gw9] [ 55%] PASSED tests/docs_src/test_apps.py::test_a_file_resource_is_served_with_the_app_mime_type_filled_in tests/server/auth/test_identity_assertion.py::test_client_without_the_grant_registered_is_rejected [gw8] [ 55%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_output_schema_property [gw3] [ 55%] PASSED tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_function_resource_creation tests/docs_src/test_asgi.py::test_the_server_behind_the_app_is_unchanged tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_dict_str_any_output tests/server/mcpserver/test_server.py::TestServerTools::test_call_tool_always_returns_call_tool_result [gw13] [ 55%] PASSED tests/server/auth/test_identity_assertion.py::test_client_without_the_grant_registered_is_rejected [gw15] [ 55%] PASSED tests/server/mcpserver/test_server.py::TestContextInjection::test_context_injection [gw10] [ 55%] PASSED tests/server/mcpserver/test_resolve.py::test_resolved_parameters_are_absent_from_the_advertised_tool_schema tests/server/mcpserver/test_server.py::TestContextInjection::test_async_context [gw8] [ 55%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_dict_str_any_output tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_read_text [gw4] [ 55%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_accept tests/server/auth/test_identity_assertion.py::test_dcr_refuses_to_register_the_jwt_bearer_grant tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_dict_str_typed_output tests/server/mcpserver/test_resolve.py::test_an_elicit_marker_asks_the_client_and_injects_the_accepted_answer[legacy] [gw1] [ 55%] PASSED tests/interaction/lowlevel/test_pagination.py::test_the_client_follows_opaque_cursors_through_pages_of_varying_sizes[sse-2025-11-25] tests/interaction/lowlevel/test_pagination.py::test_the_client_follows_opaque_cursors_through_pages_of_varying_sizes[streamable-http-2025-11-25] tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_decline [gw3] [ 55%] PASSED tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_read_text [gw9] [ 55%] PASSED tests/docs_src/test_asgi.py::test_the_server_behind_the_app_is_unchanged [gw8] [ 55%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_dict_str_typed_output [gw13] [ 55%] PASSED tests/server/auth/test_identity_assertion.py::test_dcr_refuses_to_register_the_jwt_bearer_grant tests/server/auth/test_identity_assertion.py::test_default_provider_rejects_identity_assertion tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_add_tool_with_metadata tests/docs_src/test_asgi.py::test_a_request_before_the_session_manager_runs_is_rejected [gw15] [ 55%] PASSED tests/server/mcpserver/test_server.py::TestContextInjection::test_async_context [gw13] [ 55%] PASSED tests/server/auth/test_identity_assertion.py::test_default_provider_rejects_identity_assertion tests/server/mcpserver/test_server.py::TestContextInjection::test_context_logging tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_read_binary [gw9] [ 55%] PASSED tests/docs_src/test_asgi.py::test_a_request_before_the_session_manager_runs_is_rejected [gw7] [ 55%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_call_tool_always_returns_call_tool_result tests/server/mcpserver/test_server.py::TestServerTools::test_tool_image_helper [gw8] [ 55%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_add_tool_with_metadata tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_add_tool_without_metadata [gw12] [ 55%] PASSED tests/server/mcpserver/test_server.py::test_context_notify_methods_publish_to_the_configured_bus tests/server/mcpserver/test_server.py::test_programmatic_entry_points_carry_the_subscription_bus tests/docs_src/test_asgi.py::test_mounting_at_the_root_keeps_the_default_path tests/server/auth/test_protected_resource.py::test_metadata_endpoint_with_path [gw4] [ 55%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_decline tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_cancel [gw9] [ 55%] PASSED tests/docs_src/test_asgi.py::test_mounting_at_the_root_keeps_the_default_path tests/docs_src/test_asgi.py::test_a_root_mount_swallows_routes_listed_after_it [gw13] [ 55%] PASSED tests/server/auth/test_protected_resource.py::test_metadata_endpoint_with_path [gw1] [ 55%] PASSED tests/interaction/lowlevel/test_pagination.py::test_the_client_follows_opaque_cursors_through_pages_of_varying_sizes[streamable-http-2025-11-25] [gw3] [ 55%] PASSED tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_read_binary tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_json_conversion tests/interaction/lowlevel/test_pagination.py::test_the_client_follows_opaque_cursors_through_pages_of_varying_sizes[streamable-http-stateless-2025-11-25] [gw8] [ 55%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_add_tool_without_metadata tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_in_mcpserver_decorator [gw9] [ 55%] PASSED tests/docs_src/test_asgi.py::test_a_root_mount_swallows_routes_listed_after_it tests/docs_src/test_asgi.py::test_the_host_lifespan_enters_the_session_manager [gw15] [ 55%] PASSED tests/server/mcpserver/test_server.py::TestContextInjection::test_context_logging tests/server/auth/test_protected_resource.py::test_metadata_endpoint_root_path_returns_404 tests/server/mcpserver/test_server.py::TestContextInjection::test_optional_context [gw9] [ 56%] PASSED tests/docs_src/test_asgi.py::test_the_host_lifespan_enters_the_session_manager tests/docs_src/test_asgi.py::test_two_servers_get_two_mounts [gw10] [ 56%] PASSED tests/server/mcpserver/test_resolve.py::test_an_elicit_marker_asks_the_client_and_injects_the_accepted_answer[legacy] [gw15] [ 56%] PASSED tests/server/mcpserver/test_server.py::TestContextInjection::test_optional_context [gw4] [ 56%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_cancel tests/server/mcpserver/test_resolve.py::test_an_elicit_marker_asks_the_client_and_injects_the_accepted_answer[auto] [gw8] [ 56%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_in_mcpserver_decorator tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_in_list_tools tests/server/mcpserver/test_server.py::TestContextInjection::test_context_resource_access [gw9] [ 56%] PASSED tests/docs_src/test_asgi.py::test_two_servers_get_two_mounts [gw3] [ 56%] PASSED tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_json_conversion tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_helper_function tests/docs_src/test_asgi.py::test_one_lifespan_starts_both_session_managers tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_error_handling [gw8] [ 56%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_in_list_tools [gw13] [ 56%] PASSED tests/server/auth/test_protected_resource.py::test_metadata_endpoint_root_path_returns_404 tests/server/auth/test_protected_resource.py::test_metadata_endpoint_without_path [gw12] [ 56%] PASSED tests/server/mcpserver/test_server.py::test_programmatic_entry_points_carry_the_subscription_bus [gw3] [ 56%] PASSED tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_error_handling tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_basemodel_conversion [gw1] [ 56%] PASSED tests/interaction/lowlevel/test_pagination.py::test_the_client_follows_opaque_cursors_through_pages_of_varying_sizes[streamable-http-stateless-2025-11-25] [gw15] [ 56%] PASSED tests/server/mcpserver/test_server.py::TestContextInjection::test_context_resource_access tests/server/mcpserver/test_server.py::TestContextInjection::test_resource_with_context tests/server/mcpserver/test_server.py::test_server_advertises_change_notifications_on_the_modern_wire_by_default tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_multiple_tools_with_different_metadata tests/interaction/lowlevel/test_pagination.py::test_the_client_follows_opaque_cursors_through_pages_of_varying_sizes[in-memory-2026-07-28] [gw10] [ 56%] PASSED tests/server/mcpserver/test_resolve.py::test_an_elicit_marker_asks_the_client_and_injects_the_accepted_answer[auto] tests/server/mcpserver/test_resolve.py::test_a_declined_elicitation_fails_the_call_for_a_plain_model_consumer[legacy] [gw1] [ 56%] PASSED tests/interaction/lowlevel/test_pagination.py::test_the_client_follows_opaque_cursors_through_pages_of_varying_sizes[in-memory-2026-07-28] [gw4] [ 56%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_helper_function [gw13] [ 56%] PASSED tests/server/auth/test_protected_resource.py::test_metadata_endpoint_without_path tests/interaction/lowlevel/test_pagination.py::test_the_client_follows_opaque_cursors_through_pages_of_varying_sizes[streamable-http-2026-07-28] [gw12] [ 56%] PASSED tests/server/mcpserver/test_server.py::test_server_advertises_change_notifications_on_the_modern_wire_by_default [gw3] [ 56%] PASSED tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_basemodel_conversion tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_custom_type_conversion [gw7] [ 56%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_image_helper tests/server/mcpserver/test_server.py::test_subscriptions_false_neither_advertises_nor_serves_listen [gw9] [ 56%] PASSED tests/docs_src/test_asgi.py::test_one_lifespan_starts_both_session_managers tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header [gw15] [ 56%] PASSED tests/server/mcpserver/test_server.py::TestContextInjection::test_resource_with_context tests/server/mcpserver/test_url_elicitation.py::test_url_no_content_in_response tests/server/auth/test_protected_resource.py::test_metadata_url_construction_url_without_path [gw9] [ 56%] PASSED tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_helper tests/server/mcpserver/test_server.py::TestContextInjection::test_resource_without_context [gw8] [ 56%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_multiple_tools_with_different_metadata tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_with_complex_structure [gw14] [ 56%] PASSED tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_mismatched_structured_content_is_an_error_result[streamable-http-stateless-2025-11-25] [gw3] [ 56%] PASSED tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_custom_type_conversion tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint [gw9] [ 56%] PASSED tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_mismatched_structured_content_is_an_error_result[in-memory-2026-07-28] tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_async_read_text [gw13] [ 56%] PASSED tests/server/auth/test_protected_resource.py::test_metadata_url_construction_url_without_path tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol [gw1] [ 56%] PASSED tests/interaction/lowlevel/test_pagination.py::test_the_client_follows_opaque_cursors_through_pages_of_varying_sizes[streamable-http-2026-07-28] tests/interaction/lowlevel/test_pagination.py::test_an_unrecognized_pagination_cursor_is_rejected_with_invalid_params[in-memory-2025-11-25] [gw3] [ 56%] PASSED tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_async_read_text [gw12] [ 56%] PASSED tests/server/mcpserver/test_server.py::test_subscriptions_false_neither_advertises_nor_serves_listen tests/server/mcpserver/test_server.py::test_notify_still_succeeds_when_subscriptions_are_off [gw8] [ 56%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_with_complex_structure [gw9] [ 56%] PASSED tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol [gw10] [ 56%] PASSED tests/server/mcpserver/test_resolve.py::test_a_declined_elicitation_fails_the_call_for_a_plain_model_consumer[legacy] [gw1] [ 56%] PASSED tests/interaction/lowlevel/test_pagination.py::test_an_unrecognized_pagination_cursor_is_rejected_with_invalid_params[in-memory-2025-11-25] tests/server/auth/test_protected_resource.py::test_metadata_url_construction_url_with_path_component tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_empty_dict tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_from_function [gw3] [ 56%] PASSED tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResource::test_from_function [gw4] [ 56%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_url_no_content_in_response tests/server/mcpserver/test_url_elicitation.py::test_form_mode_still_works [gw12] [ 56%] PASSED tests/server/mcpserver/test_server.py::test_notify_still_succeeds_when_subscriptions_are_off tests/interaction/lowlevel/test_pagination.py::test_an_unrecognized_pagination_cursor_is_rejected_with_invalid_params[sse-2025-11-25] tests/server/mcpserver/test_resolve.py::test_a_declined_elicitation_fails_the_call_for_a_plain_model_consumer[auto] tests/server/mcpserver/test_server.py::test_context_mcp_server_outside_request_raises tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResourceMetadata::test_from_function_with_metadata [gw8] [ 56%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_empty_dict [gw12] [ 56%] PASSED tests/server/mcpserver/test_server.py::test_context_mcp_server_outside_request_raises [gw3] [ 56%] PASSED tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResourceMetadata::test_from_function_with_metadata [gw13] [ 56%] PASSED tests/server/auth/test_protected_resource.py::test_metadata_url_construction_url_with_path_component tests/server/mcpserver/test_server.py::test_context_request_context_outside_request_raises [gw15] [ 56%] PASSED tests/server/mcpserver/test_server.py::TestContextInjection::test_resource_without_context tests/server/mcpserver/test_server.py::TestContextInjection::test_resource_context_custom_name [gw1] [ 56%] PASSED tests/interaction/lowlevel/test_pagination.py::test_an_unrecognized_pagination_cursor_is_rejected_with_invalid_params[sse-2025-11-25] [gw12] [ 56%] PASSED tests/server/mcpserver/test_server.py::test_context_request_context_outside_request_raises tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResourceMetadata::test_from_function_without_metadata tests/interaction/lowlevel/test_pagination.py::test_an_unrecognized_pagination_cursor_is_rejected_with_invalid_params[streamable-http-2025-11-25] tests/server/mcpserver/test_server.py::test_context_notify_outside_a_request_raises [gw0] [ 56%] PASSED tests/interaction/transports/test_stdio.py::test_stdio_server_writes_one_jsonrpc_message_per_line tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_with_annotations [gw12] [ 56%] PASSED tests/server/mcpserver/test_server.py::test_context_notify_outside_a_request_raises tests/server/auth/test_protected_resource.py::test_metadata_url_construction_url_with_trailing_slash_only [gw7] [ 56%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_helper tests/server/mcpserver/test_server.py::test_context_exposes_its_mcp_server tests/interaction/transports/test_streamable_http.py::test_tool_call_over_streamable_http_with_json_responses [gw3] [ 56%] PASSED tests/server/mcpserver/resources/test_function_resources.py::TestFunctionResourceMetadata::test_from_function_without_metadata tests/server/mcpserver/resources/test_function_resources.py::test_sync_fn_runs_in_worker_thread [gw12] [ 56%] PASSED tests/server/mcpserver/test_server.py::test_context_exposes_its_mcp_server tests/server/mcpserver/test_server.py::test_remove_prompt_removes_and_unknown_name_raises [gw8] [ 56%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_with_annotations tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.wav-audio/wav] [gw4] [ 56%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_form_mode_still_works tests/server/mcpserver/test_url_elicitation.py::test_elicit_complete_notification [gw13] [ 56%] PASSED tests/server/auth/test_protected_resource.py::test_metadata_url_construction_url_with_trailing_slash_only [gw15] [ 56%] PASSED tests/server/mcpserver/test_server.py::TestContextInjection::test_resource_context_custom_name [gw12] [ 56%] PASSED tests/server/mcpserver/test_server.py::test_remove_prompt_removes_and_unknown_name_raises tests/server/test_connection.py::test_from_envelope_is_born_ready_with_no_back_channel tests/server/mcpserver/test_server.py::test_middleware_kwarg_and_property_share_the_low_level_chain [gw1] [ 56%] PASSED tests/interaction/lowlevel/test_pagination.py::test_an_unrecognized_pagination_cursor_is_rejected_with_invalid_params[streamable-http-2025-11-25] [gw3] [ 56%] PASSED tests/server/mcpserver/resources/test_function_resources.py::test_sync_fn_runs_in_worker_thread tests/interaction/lowlevel/test_pagination.py::test_an_unrecognized_pagination_cursor_is_rejected_with_invalid_params[streamable-http-stateless-2025-11-25] tests/server/mcpserver/test_server.py::TestContextInjection::test_prompt_with_context tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_existing_tool tests/server/mcpserver/resources/test_function_resources.py::test_sync_fn_does_not_block_event_loop [gw8] [ 56%] PASSED tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_existing_tool [gw10] [ 56%] PASSED tests/server/mcpserver/test_resolve.py::test_a_declined_elicitation_fails_the_call_for_a_plain_model_consumer[auto] [gw12] [ 57%] PASSED tests/server/mcpserver/test_server.py::test_middleware_kwarg_and_property_share_the_low_level_chain tests/server/mcpserver/test_resolve.py::test_a_declined_elicitation_reaches_a_consumer_that_asked_for_the_outcome_union[legacy] tests/server/mcpserver/test_server.py::test_middleware_can_refuse_subscriptions_listen_before_the_ack [gw1] [ 57%] PASSED tests/interaction/lowlevel/test_pagination.py::test_an_unrecognized_pagination_cursor_is_rejected_with_invalid_params[streamable-http-stateless-2025-11-25] tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_nonexistent_tool [gw3] [ 57%] PASSED tests/server/mcpserver/resources/test_function_resources.py::test_sync_fn_does_not_block_event_loop tests/server/mcpserver/resources/test_function_resources.py::test_read_rejects_an_input_required_result_from_a_static_function tests/interaction/lowlevel/test_pagination.py::test_an_unrecognized_pagination_cursor_is_rejected_with_invalid_params[in-memory-2026-07-28] [gw12] [ 57%] PASSED tests/server/mcpserver/test_server.py::test_middleware_can_refuse_subscriptions_listen_before_the_ack [gw13] [ 57%] PASSED tests/server/test_connection.py::test_from_envelope_is_born_ready_with_no_back_channel tests/server/test_connection.py::test_from_envelope_records_client_params_when_both_info_and_caps_supplied tests/server/mcpserver/test_title.py::test_server_name_title_description_version [gw1] [ 57%] PASSED tests/interaction/lowlevel/test_pagination.py::test_an_unrecognized_pagination_cursor_is_rejected_with_invalid_params[in-memory-2026-07-28] tests/interaction/lowlevel/test_pagination.py::test_an_unrecognized_pagination_cursor_is_rejected_with_invalid_params[streamable-http-2026-07-28] [gw3] [ 57%] PASSED tests/server/mcpserver/resources/test_function_resources.py::test_read_rejects_an_input_required_result_from_a_static_function [gw8] [ 57%] PASSED tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_nonexistent_tool [gw15] [ 57%] PASSED tests/server/mcpserver/test_server.py::TestContextInjection::test_prompt_with_context tests/server/mcpserver/test_server.py::TestContextInjection::test_prompt_without_context tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_tool_from_multiple_tools tests/server/mcpserver/resources/test_resource_manager.py::test_init_with_resources [gw1] [ 57%] PASSED tests/interaction/lowlevel/test_pagination.py::test_an_unrecognized_pagination_cursor_is_rejected_with_invalid_params[streamable-http-2026-07-28] [gw7] [ 57%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.wav-audio/wav] tests/interaction/lowlevel/test_pagination.py::test_resources_list_supports_cursor_pagination[in-memory-2025-11-25] [gw9] [ 57%] PASSED tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end [gw9] [ 57%] PASSED tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.mp3-audio/mpeg] [gw0] [ 57%] PASSED tests/interaction/transports/test_streamable_http.py::test_tool_call_over_streamable_http_with_json_responses [gw12] [ 57%] PASSED tests/server/mcpserver/test_title.py::test_server_name_title_description_version tests/server/mcpserver/test_title.py::test_tool_title_precedence [gw13] [ 57%] PASSED tests/server/test_connection.py::test_from_envelope_records_client_params_when_both_info_and_caps_supplied tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates tests/interaction/transports/test_streamable_http.py::test_tool_calls_over_stateless_streamable_http tests/server/test_connection.py::test_from_envelope_leaves_client_params_none_when_either_is_missing[None-caps0] [gw1] [ 57%] PASSED tests/interaction/lowlevel/test_pagination.py::test_resources_list_supports_cursor_pagination[in-memory-2025-11-25] tests/interaction/lowlevel/test_pagination.py::test_resources_list_supports_cursor_pagination[sse-2025-11-25] [gw15] [ 57%] PASSED tests/server/mcpserver/test_server.py::TestContextInjection::test_prompt_without_context [gw9] [ 57%] PASSED tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together [gw3] [ 57%] PASSED tests/server/mcpserver/resources/test_resource_manager.py::test_init_with_resources tests/server/mcpserver/resources/test_resource_manager.py::test_add_resource tests/server/mcpserver/test_server.py::test_parameterized_context_carries_the_request_into_templates_and_prompts [gw13] [ 57%] PASSED tests/server/test_connection.py::test_from_envelope_leaves_client_params_none_when_either_is_missing[None-caps0] [gw9] [ 57%] PASSED tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together [gw8] [ 57%] PASSED tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_tool_from_multiple_tools tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route tests/server/test_connection.py::test_from_envelope_leaves_client_params_none_when_either_is_missing[info1-None] [gw9] [ 57%] PASSED tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route [gw1] [ 57%] PASSED tests/interaction/lowlevel/test_pagination.py::test_resources_list_supports_cursor_pagination[sse-2025-11-25] tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings tests/server/test_request_state_boundary.py::test_tampered_request_state_is_rejected_with_the_frozen_wire_error [gw3] [ 57%] PASSED tests/server/mcpserver/resources/test_resource_manager.py::test_add_resource tests/interaction/lowlevel/test_pagination.py::test_resources_list_supports_cursor_pagination[streamable-http-2025-11-25] [gw10] [ 57%] PASSED tests/server/mcpserver/test_resolve.py::test_a_declined_elicitation_reaches_a_consumer_that_asked_for_the_outcome_union[legacy] [gw9] [ 57%] PASSED tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol [gw11] [ 57%] PASSED tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[streamable-http-2025-11-25] tests/server/mcpserver/resources/test_resource_manager.py::test_add_duplicate_resource [gw9] [ 57%] PASSED tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol [gw13] [ 57%] PASSED tests/server/test_connection.py::test_from_envelope_leaves_client_params_none_when_either_is_missing[info1-None] [gw7] [ 57%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.mp3-audio/mpeg] [gw12] [ 57%] PASSED tests/server/mcpserver/test_title.py::test_tool_title_precedence tests/server/mcpserver/test_title.py::test_prompt_title [gw14] [ 57%] PASSED tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_mismatched_structured_content_is_an_error_result[in-memory-2026-07-28] tests/server/test_connection.py::test_from_envelope_with_explicit_outbound_has_standalone_channel tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 tests/server/mcpserver/test_resolve.py::test_a_declined_elicitation_reaches_a_consumer_that_asked_for_the_outcome_union[auto] tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.ogg-audio/ogg] [gw4] [ 57%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_elicit_complete_notification tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_mismatched_structured_content_is_an_error_result[streamable-http-2026-07-28] [gw9] [ 57%] PASSED tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[in-memory-2025-11-25] tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_required_error_code [gw15] [ 57%] PASSED tests/server/mcpserver/test_server.py::test_parameterized_context_carries_the_request_into_templates_and_prompts tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_prompt_direct_call_without_context [gw13] [ 57%] PASSED tests/server/test_connection.py::test_from_envelope_with_explicit_outbound_has_standalone_channel tests/server/test_connection.py::test_for_loop_seeds_version_from_hint_or_latest_and_is_not_born_ready [gw3] [ 57%] PASSED tests/server/mcpserver/resources/test_resource_manager.py::test_add_duplicate_resource [gw1] [ 57%] PASSED tests/interaction/lowlevel/test_pagination.py::test_resources_list_supports_cursor_pagination[streamable-http-2025-11-25] tests/interaction/lowlevel/test_pagination.py::test_resources_list_supports_cursor_pagination[streamable-http-stateless-2025-11-25] [gw9] [ 57%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request [gw12] [ 57%] PASSED tests/server/mcpserver/test_title.py::test_prompt_title tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token [gw4] [ 57%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_required_error_code tests/server/mcpserver/test_url_elicitation.py::test_elicit_url_typed_results [gw11] [ 57%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[in-memory-2025-11-25] tests/server/mcpserver/resources/test_resource_manager.py::test_warn_on_duplicate_resources tests/server/mcpserver/test_title.py::test_resource_title [gw15] [ 57%] PASSED tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_prompt_direct_call_without_context [gw13] [ 57%] PASSED tests/server/test_connection.py::test_for_loop_seeds_version_from_hint_or_latest_and_is_not_born_ready tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[sse-2025-11-25] [gw0] [ 57%] PASSED tests/interaction/transports/test_streamable_http.py::test_tool_calls_over_stateless_streamable_http tests/server/mcpserver/test_server.py::TestServerPrompts::test_prompt_decorator tests/interaction/transports/test_streamable_http.py::test_stateless_streamable_http_rejects_server_initiated_requests tests/server/test_connection.py::test_for_loop_records_session_id_when_supplied [gw3] [ 57%] PASSED tests/server/mcpserver/resources/test_resource_manager.py::test_warn_on_duplicate_resources [gw8] [ 57%] PASSED tests/server/test_request_state_boundary.py::test_tampered_request_state_is_rejected_with_the_frozen_wire_error tests/server/test_request_state_boundary.py::test_expired_request_state_is_rejected_and_just_inside_ttl_is_accepted [gw1] [ 57%] PASSED tests/interaction/lowlevel/test_pagination.py::test_resources_list_supports_cursor_pagination[streamable-http-stateless-2025-11-25] [gw13] [ 57%] PASSED tests/server/test_connection.py::test_for_loop_records_session_id_when_supplied [gw12] [ 57%] PASSED tests/server/mcpserver/test_title.py::test_resource_title tests/server/test_connection.py::test_connection_notify_forwards_to_outbound tests/interaction/lowlevel/test_pagination.py::test_resources_list_supports_cursor_pagination[in-memory-2026-07-28] [gw9] [ 57%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token tests/server/mcpserver/resources/test_resource_manager.py::test_disable_warn_on_duplicate_resources [gw1] [ 57%] PASSED tests/interaction/lowlevel/test_pagination.py::test_resources_list_supports_cursor_pagination[in-memory-2026-07-28] tests/server/mcpserver/test_title.py::test_get_display_name_utility [gw15] [ 57%] PASSED tests/server/mcpserver/test_server.py::TestServerPrompts::test_prompt_decorator tests/server/mcpserver/test_server.py::TestServerPrompts::test_prompt_decorator_with_name [gw10] [ 57%] PASSED tests/server/mcpserver/test_resolve.py::test_a_declined_elicitation_reaches_a_consumer_that_asked_for_the_outcome_union[auto] tests/interaction/lowlevel/test_pagination.py::test_resources_list_supports_cursor_pagination[streamable-http-2026-07-28] tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint [gw12] [ 57%] PASSED tests/server/mcpserver/test_title.py::test_get_display_name_utility [gw13] [ 57%] PASSED tests/server/test_connection.py::test_connection_notify_forwards_to_outbound tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_basic_function [gw9] [ 57%] PASSED tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint [gw12] [ 58%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_basic_function tests/server/mcpserver/test_resolve.py::test_an_undeclared_capability_refuses_the_call_instead_of_asking[legacy] [gw15] [ 58%] PASSED tests/server/mcpserver/test_server.py::TestServerPrompts::test_prompt_decorator_with_name tests/server/mcpserver/test_server.py::TestServerPrompts::test_prompt_decorator_with_description tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private [gw3] [ 58%] PASSED tests/server/mcpserver/resources/test_resource_manager.py::test_disable_warn_on_duplicate_resources tests/server/mcpserver/resources/test_resource_manager.py::test_get_resource tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_init_with_tools [gw1] [ 58%] PASSED tests/interaction/lowlevel/test_pagination.py::test_resources_list_supports_cursor_pagination[streamable-http-2026-07-28] tests/interaction/lowlevel/test_pagination.py::test_resource_templates_list_supports_cursor_pagination[in-memory-2025-11-25] tests/server/test_connection.py::test_connection_notify_swallows_broken_stream_and_debug_logs [gw12] [ 58%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_init_with_tools [gw11] [ 58%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[sse-2025-11-25] tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_async_function [gw7] [ 58%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.ogg-audio/ogg] [gw4] [ 58%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_elicit_url_typed_results [gw8] [ 58%] PASSED tests/server/test_request_state_boundary.py::test_expired_request_state_is_rejected_and_just_inside_ttl_is_accepted tests/server/test_request_state_boundary.py::test_state_minted_in_the_future_is_rejected_beyond_the_sixty_second_skew [gw15] [ 58%] PASSED tests/server/mcpserver/test_server.py::TestServerPrompts::test_prompt_decorator_with_description tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.flac-audio/flac] [gw3] [ 58%] PASSED tests/server/mcpserver/resources/test_resource_manager.py::test_get_resource [gw9] [ 58%] PASSED tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private tests/server/mcpserver/test_server.py::TestServerPrompts::test_prompt_decorator_error [gw1] [ 58%] PASSED tests/interaction/lowlevel/test_pagination.py::test_resource_templates_list_supports_cursor_pagination[in-memory-2025-11-25] tests/server/mcpserver/resources/test_resource_manager.py::test_get_resource_from_template [gw12] [ 58%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_async_function tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_pydantic_model_function tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-2025-11-25] tests/interaction/lowlevel/test_pagination.py::test_resource_templates_list_supports_cursor_pagination[sse-2025-11-25] tests/server/mcpserver/test_url_elicitation.py::test_deprecated_elicit_method [gw15] [ 58%] PASSED tests/server/mcpserver/test_server.py::TestServerPrompts::test_prompt_decorator_error [gw9] [ 58%] PASSED tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private tests/server/test_request_state.py::test_a_mixed_ring_of_bytes_bytearray_and_str_entries_still_works [gw12] [ 58%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_pydantic_model_function tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_callable_object [gw0] [ 58%] PASSED tests/interaction/transports/test_streamable_http.py::test_stateless_streamable_http_rejects_server_initiated_requests tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction [gw12] [ 58%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_callable_object [gw9] [ 58%] PASSED tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction [gw15] [ 58%] PASSED tests/server/test_request_state.py::test_a_mixed_ring_of_bytes_bytearray_and_str_entries_still_works tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_async_callable_object tests/interaction/transports/test_streamable_http.py::test_json_response_streamable_http_rejects_request_scoped_server_requests tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field [gw12] [ 58%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_async_callable_object [gw1] [ 58%] PASSED tests/interaction/lowlevel/test_pagination.py::test_resource_templates_list_supports_cursor_pagination[sse-2025-11-25] tests/interaction/lowlevel/test_pagination.py::test_resource_templates_list_supports_cursor_pagination[streamable-http-2025-11-25] [gw10] [ 58%] PASSED tests/server/mcpserver/test_resolve.py::test_an_undeclared_capability_refuses_the_call_instead_of_asking[legacy] tests/server/mcpserver/test_resolve.py::test_an_undeclared_capability_refuses_the_call_instead_of_asking[auto] tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_invalid_tool [gw4] [ 58%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_deprecated_elicit_method [gw12] [ 58%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_invalid_tool [gw6] [ 58%] PASSED tests/interaction/mcpserver/test_tools.py::test_registering_a_tool_with_a_spec_invalid_name_warns_but_does_not_reject[streamable-http-2026-07-28] tests/server/test_request_state.py::test_a_str_key_is_equivalent_to_its_utf8_bytes_form [gw15] [ 58%] PASSED tests/server/test_request_state.py::test_a_str_key_is_equivalent_to_its_utf8_bytes_form tests/server/test_request_state.py::test_bytearray_key_material_is_copied_at_construction tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_lambda [gw3] [ 58%] PASSED tests/server/mcpserver/resources/test_resource_manager.py::test_get_resource_from_template tests/server/mcpserver/resources/test_resource_manager.py::test_get_unknown_resource [gw3] [ 58%] PASSED tests/server/mcpserver/resources/test_resource_manager.py::test_get_unknown_resource [gw12] [ 58%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_lambda tests/server/mcpserver/test_url_elicitation.py::test_ctx_elicit_url_convenience_method tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_lambda_with_no_name tests/interaction/mcpserver/test_tools.py::test_decorated_tool_raising_url_elicitation_required_surfaces_as_error_32042[in-memory-2025-11-25] [gw8] [ 58%] PASSED tests/server/test_request_state_boundary.py::test_state_minted_in_the_future_is_rejected_beyond_the_sixty_second_skew [gw12] [ 58%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_lambda_with_no_name tests/server/test_request_state_boundary.py::test_round_one_state_replayed_on_a_different_tool_is_rejected [gw15] [ 58%] PASSED tests/server/test_request_state.py::test_bytearray_key_material_is_copied_at_construction tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_warn_on_duplicate_tools tests/server/test_request_state.py::test_the_token_reveals_the_payload_neither_in_its_text_nor_its_decoded_bytes [gw15] [ 58%] PASSED tests/server/test_request_state.py::test_the_token_reveals_the_payload_neither_in_its_text_nor_its_decoded_bytes tests/server/test_request_state.py::test_every_substitution_of_the_final_token_character_is_rejected [gw11] [ 58%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-2025-11-25] [gw12] [ 58%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_warn_on_duplicate_tools tests/server/mcpserver/resources/test_resource_manager.py::test_list_resources tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_disable_warn_on_duplicate_tools [gw9] [ 58%] PASSED tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field [gw1] [ 58%] PASSED tests/interaction/lowlevel/test_pagination.py::test_resource_templates_list_supports_cursor_pagination[streamable-http-2025-11-25] tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-stateless-2025-11-25] [gw12] [ 58%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_disable_warn_on_duplicate_tools tests/interaction/lowlevel/test_pagination.py::test_resource_templates_list_supports_cursor_pagination[streamable-http-stateless-2025-11-25] [gw4] [ 58%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_ctx_elicit_url_convenience_method tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool [gw15] [ 58%] PASSED tests/server/test_request_state.py::test_every_substitution_of_the_final_token_character_is_rejected tests/server/test_request_state.py::test_a_non_canonical_token_body_is_rejected[junk-chars-injected] [gw10] [ 58%] PASSED tests/server/mcpserver/test_resolve.py::test_an_undeclared_capability_refuses_the_call_instead_of_asking[auto] tests/server/mcpserver/test_url_elicitation_error_throw.py::test_url_elicitation_error_thrown_from_tool [gw15] [ 58%] PASSED tests/server/test_request_state.py::test_a_non_canonical_token_body_is_rejected[junk-chars-injected] tests/server/mcpserver/test_server.py::TestServer::test_create_server [gw3] [ 58%] PASSED tests/server/mcpserver/resources/test_resource_manager.py::test_list_resources [gw9] [ 58%] PASSED tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls tests/server/test_request_state.py::test_a_non_canonical_token_body_is_rejected[newline-appended] [gw0] [ 58%] PASSED tests/interaction/transports/test_streamable_http.py::test_json_response_streamable_http_rejects_request_scoped_server_requests tests/server/test_apps.py::test_apps_tool_rejects_non_ui_resource_uri [gw14] [ 58%] PASSED tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_mismatched_structured_content_is_an_error_result[streamable-http-2026-07-28] tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch [gw7] [ 58%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.flac-audio/flac] [gw12] [ 58%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_async_tool [gw15] [ 58%] PASSED tests/server/test_request_state.py::test_a_non_canonical_token_body_is_rejected[newline-appended] tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_is_error_result_skips_output_validation[in-memory-2025-11-25] tests/interaction/transports/test_streamable_http.py::test_json_response_streamable_http_delivers_only_unrelated_notifications [gw6] [ 58%] PASSED tests/interaction/mcpserver/test_tools.py::test_decorated_tool_raising_url_elicitation_required_surfaces_as_error_32042[in-memory-2025-11-25] [gw10] [ 58%] PASSED tests/server/mcpserver/test_server.py::TestServer::test_create_server tests/server/mcpserver/test_server.py::TestServer::test_dependencies [gw1] [ 58%] PASSED tests/interaction/lowlevel/test_pagination.py::test_resource_templates_list_supports_cursor_pagination[streamable-http-stateless-2025-11-25] tests/interaction/lowlevel/test_pagination.py::test_resource_templates_list_supports_cursor_pagination[in-memory-2026-07-28] [gw9] [ 58%] PASSED tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch tests/server/test_request_state.py::test_a_non_canonical_token_body_is_rejected[padding-appended] [gw1] [ 58%] PASSED tests/interaction/lowlevel/test_pagination.py::test_resource_templates_list_supports_cursor_pagination[in-memory-2026-07-28] tests/interaction/lowlevel/test_pagination.py::test_resource_templates_list_supports_cursor_pagination[streamable-http-2026-07-28] [gw14] [ 58%] PASSED tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_is_error_result_skips_output_validation[in-memory-2025-11-25] [gw12] [ 58%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_async_tool [gw4] [ 58%] PASSED tests/server/mcpserver/test_url_elicitation_error_throw.py::test_url_elicitation_error_thrown_from_tool tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_is_error_result_skips_output_validation[sse-2025-11-25] [gw11] [ 59%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-stateless-2025-11-25] [gw15] [ 59%] PASSED tests/server/test_request_state.py::test_a_non_canonical_token_body_is_rejected[padding-appended] [gw3] [ 59%] PASSED tests/server/test_apps.py::test_apps_tool_rejects_non_ui_resource_uri tests/server/test_apps.py::test_add_html_resource_rejects_non_ui_resource_uri tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.aac-audio/aac] tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[in-memory-2026-07-28] tests/interaction/mcpserver/test_tools.py::test_decorated_tool_raising_url_elicitation_required_surfaces_as_error_32042[sse-2025-11-25] [gw10] [ 59%] PASSED tests/server/mcpserver/test_server.py::TestServer::test_dependencies [gw9] [ 59%] PASSED tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default tests/server/test_runner.py::test_runner_malformed_params_for_unregistered_spec_method_raises_invalid_params tests/server/test_request_state.py::test_a_token_reprefixed_to_a_future_format_version_is_rejected tests/server/mcpserver/test_url_elicitation_error_throw.py::test_url_elicitation_error_from_error [gw1] [ 59%] PASSED tests/interaction/lowlevel/test_pagination.py::test_resource_templates_list_supports_cursor_pagination[streamable-http-2026-07-28] tests/interaction/lowlevel/test_pagination.py::test_prompts_list_supports_cursor_pagination[in-memory-2025-11-25] [gw11] [ 59%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[in-memory-2026-07-28] tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-2026-07-28] [gw3] [ 59%] PASSED tests/server/test_apps.py::test_add_html_resource_rejects_non_ui_resource_uri [gw12] [ 59%] PASSED tests/server/test_runner.py::test_runner_malformed_params_for_unregistered_spec_method_raises_invalid_params tests/server/mcpserver/test_server.py::TestServer::test_sse_app_returns_starlette_app [gw14] [ 59%] PASSED tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_is_error_result_skips_output_validation[sse-2025-11-25] [gw13] [ 59%] PASSED tests/server/test_connection.py::test_connection_notify_swallows_broken_stream_and_debug_logs [gw15] [ 59%] PASSED tests/server/test_request_state.py::test_a_token_reprefixed_to_a_future_format_version_is_rejected tests/server/test_request_state.py::test_a_kid_transplanted_onto_another_tokens_body_is_rejected [gw1] [ 59%] PASSED tests/interaction/lowlevel/test_pagination.py::test_prompts_list_supports_cursor_pagination[in-memory-2025-11-25] tests/interaction/lowlevel/test_pagination.py::test_prompts_list_supports_cursor_pagination[sse-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_is_error_result_skips_output_validation[streamable-http-2025-11-25] [gw10] [ 59%] PASSED tests/server/mcpserver/test_server.py::TestServer::test_sse_app_returns_starlette_app tests/server/mcpserver/test_server.py::TestServer::test_non_ascii_description tests/server/test_runner.py::test_runner_rejects_snake_case_initialize_params tests/server/test_connection.py::test_connection_notify_drops_when_no_standalone_channel [gw9] [ 59%] PASSED tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry [gw12] [ 59%] PASSED tests/server/test_runner.py::test_runner_rejects_snake_case_initialize_params [gw15] [ 59%] PASSED tests/server/test_request_state.py::test_a_kid_transplanted_onto_another_tokens_body_is_rejected tests/server/test_request_state.py::test_keys_and_codec_together_are_rejected_at_policy_construction tests/server/test_apps.py::test_apps_tool_stamps_visibility_when_given [gw11] [ 59%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-2026-07-28] [gw4] [ 59%] PASSED tests/server/mcpserver/test_url_elicitation_error_throw.py::test_url_elicitation_error_from_error [gw9] [ 59%] PASSED tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry tests/interaction/mcpserver/test_context.py::test_context_elicit_returns_typed_result[in-memory-2025-11-25] [gw1] [ 59%] PASSED tests/interaction/lowlevel/test_pagination.py::test_prompts_list_supports_cursor_pagination[sse-2025-11-25] tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache [gw10] [ 59%] PASSED tests/server/mcpserver/test_server.py::TestServer::test_non_ascii_description tests/server/mcpserver/test_server.py::TestServer::test_add_tool_decorator [gw15] [ 59%] PASSED tests/server/test_request_state.py::test_keys_and_codec_together_are_rejected_at_policy_construction tests/server/test_request_state_boundary.py::test_a_forged_principal_claim_that_is_not_base64_is_rejected tests/server/test_runner.py::test_runner_initialize_with_absent_params_returns_invalid_params_and_stays_alive tests/server/mcpserver/test_url_elicitation_error_throw.py::test_normal_exceptions_still_return_error_result [gw12] [ 59%] PASSED tests/server/test_runner.py::test_runner_initialize_with_absent_params_returns_invalid_params_and_stays_alive tests/server/test_request_state.py::test_a_policy_with_neither_keys_nor_codec_is_rejected [gw10] [ 59%] PASSED tests/server/mcpserver/test_server.py::TestServer::test_add_tool_decorator [gw9] [ 59%] PASSED tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache tests/server/test_runner.py::test_runner_rejects_snake_case_params_for_custom_handler [gw11] [ 59%] PASSED tests/interaction/mcpserver/test_context.py::test_context_elicit_returns_typed_result[in-memory-2025-11-25] tests/interaction/mcpserver/test_context.py::test_context_elicit_returns_typed_result[sse-2025-11-25] [gw15] [ 59%] PASSED tests/server/test_request_state.py::test_a_policy_with_neither_keys_nor_codec_is_rejected tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails tests/server/mcpserver/test_server.py::TestServer::test_add_tool_decorator_incorrect_usage tests/server/test_request_state.py::test_a_non_positive_or_non_finite_ttl_is_rejected_at_policy_construction[zero] [gw8] [ 59%] PASSED tests/server/test_request_state_boundary.py::test_round_one_state_replayed_on_a_different_tool_is_rejected [gw10] [ 59%] PASSED tests/server/mcpserver/test_server.py::TestServer::test_add_tool_decorator_incorrect_usage tests/server/mcpserver/test_server.py::TestServer::test_add_resource_decorator [gw9] [ 59%] PASSED tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails [gw12] [ 59%] PASSED tests/server/test_runner.py::test_runner_rejects_snake_case_params_for_custom_handler [gw14] [ 59%] PASSED tests/interaction/mcpserver/test_tools.py::test_tool_with_output_schema_returning_is_error_result_skips_output_validation[streamable-http-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_in_pipe_union_is_rejected [gw14] [ 59%] PASSED tests/server/mcpserver/test_func_metadata.py::test_tool_call_result_in_pipe_union_is_rejected tests/server/test_request_state_boundary.py::test_retry_with_different_arguments_is_rejected_and_the_original_arguments_complete tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches tests/server/mcpserver/test_func_metadata.py::test_structured_output_with_field_descriptions [gw15] [ 59%] PASSED tests/server/test_request_state.py::test_a_non_positive_or_non_finite_ttl_is_rejected_at_policy_construction[zero] [gw6] [ 59%] PASSED tests/interaction/mcpserver/test_tools.py::test_decorated_tool_raising_url_elicitation_required_surfaces_as_error_32042[sse-2025-11-25] [gw14] [ 59%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_with_field_descriptions [gw0] [ 59%] PASSED tests/interaction/transports/test_streamable_http.py::test_json_response_streamable_http_delivers_only_unrelated_notifications tests/interaction/transports/test_streamable_http.py::test_unrelated_server_messages_arrive_on_the_standalone_stream [gw10] [ 59%] PASSED tests/server/mcpserver/test_server.py::TestServer::test_add_resource_decorator tests/interaction/mcpserver/test_tools.py::test_decorated_tool_raising_url_elicitation_required_surfaces_as_error_32042[streamable-http-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_structured_output_nested_models tests/server/test_request_state.py::test_a_non_positive_or_non_finite_ttl_is_rejected_at_policy_construction[negative] tests/server/test_runner.py::test_runner_on_notify_drops_snake_case_params [gw1] [ 59%] PASSED tests/server/test_request_state_boundary.py::test_a_forged_principal_claim_that_is_not_base64_is_rejected [gw14] [ 59%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_nested_models [gw3] [ 59%] PASSED tests/server/test_apps.py::test_apps_tool_stamps_visibility_when_given tests/server/mcpserver/test_server.py::TestServer::test_add_resource_decorator_incorrect_usage [gw9] [ 59%] PASSED tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches tests/server/mcpserver/test_func_metadata.py::test_structured_output_self_referential_model_gets_an_object_root [gw15] [ 59%] PASSED tests/server/test_request_state.py::test_a_non_positive_or_non_finite_ttl_is_rejected_at_policy_construction[negative] tests/server/test_request_state.py::test_a_non_positive_or_non_finite_ttl_is_rejected_at_policy_construction[nan] tests/server/test_request_state_boundary.py::test_a_non_string_principal_claim_is_rejected_with_the_frozen_error[int] tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip [gw14] [ 59%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_self_referential_model_gets_an_object_root tests/server/mcpserver/test_func_metadata.py::test_structured_output_unserializable_type_error [gw9] [ 59%] PASSED tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip [gw15] [ 59%] PASSED tests/server/test_request_state.py::test_a_non_positive_or_non_finite_ttl_is_rejected_at_policy_construction[nan] tests/server/test_apps.py::test_apps_tool_merges_extra_meta_alongside_ui [gw10] [ 59%] PASSED tests/server/mcpserver/test_server.py::TestServer::test_add_resource_decorator_incorrect_usage tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition [gw11] [ 59%] PASSED tests/interaction/mcpserver/test_context.py::test_context_elicit_returns_typed_result[sse-2025-11-25] tests/server/test_otel.py::test_records_error_status_on_mcp_error [gw9] [ 59%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition tests/interaction/mcpserver/test_context.py::test_context_elicit_returns_typed_result[streamable-http-2025-11-25] [gw14] [ 59%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_unserializable_type_error tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id tests/server/test_request_state.py::test_a_non_positive_or_non_finite_ttl_is_rejected_at_policy_construction[inf] tests/server/mcpserver/test_func_metadata.py::test_structured_output_aliases [gw9] [ 59%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id [gw14] [ 59%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_aliases tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works tests/server/mcpserver/test_func_metadata.py::test_basemodel_reserved_names [gw9] [ 59%] PASSED tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works [gw14] [ 59%] PASSED tests/server/mcpserver/test_func_metadata.py::test_basemodel_reserved_names tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] tests/server/mcpserver/test_func_metadata.py::test_basemodel_reserved_names_validation [gw15] [ 59%] PASSED tests/server/test_request_state.py::test_a_non_positive_or_non_finite_ttl_is_rejected_at_policy_construction[inf] [gw1] [ 59%] PASSED tests/server/test_request_state_boundary.py::test_a_non_string_principal_claim_is_rejected_with_the_frozen_error[int] tests/server/test_request_state_boundary.py::test_a_non_string_principal_claim_is_rejected_with_the_frozen_error[object] [gw6] [ 59%] PASSED tests/interaction/mcpserver/test_tools.py::test_decorated_tool_raising_url_elicitation_required_surfaces_as_error_32042[streamable-http-2025-11-25] [gw14] [ 59%] PASSED tests/server/mcpserver/test_func_metadata.py::test_basemodel_reserved_names_validation tests/server/test_request_state.py::test_keys_produce_a_working_built_in_codec_on_the_policy tests/server/mcpserver/test_func_metadata.py::test_basemodel_reserved_names_with_json_preparsing [gw10] [ 60%] PASSED tests/server/test_otel.py::test_records_error_status_on_mcp_error [gw11] [ 60%] PASSED tests/interaction/mcpserver/test_context.py::test_context_elicit_returns_typed_result[streamable-http-2025-11-25] tests/interaction/mcpserver/test_tools.py::test_decorated_tool_raising_url_elicitation_required_surfaces_as_error_32042[streamable-http-stateless-2025-11-25] tests/interaction/mcpserver/test_context.py::test_context_read_resource_reads_registered_resource[in-memory-2025-11-25] [gw3] [ 60%] PASSED tests/server/test_apps.py::test_apps_tool_merges_extra_meta_alongside_ui [gw14] [ 60%] PASSED tests/server/mcpserver/test_func_metadata.py::test_basemodel_reserved_names_with_json_preparsing tests/server/test_otel.py::test_validation_failure_sets_sanitized_status tests/server/mcpserver/test_func_metadata.py::test_disallowed_type_qualifier [gw15] [ 60%] PASSED tests/server/test_request_state.py::test_keys_produce_a_working_built_in_codec_on_the_policy [gw14] [ 60%] PASSED tests/server/mcpserver/test_func_metadata.py::test_disallowed_type_qualifier tests/server/test_apps.py::test_add_html_resource_stamps_csp_and_permissions_on_resource_meta tests/server/mcpserver/test_func_metadata.py::test_preserves_pydantic_metadata [gw11] [ 60%] PASSED tests/interaction/mcpserver/test_context.py::test_context_read_resource_reads_registered_resource[in-memory-2025-11-25] tests/interaction/mcpserver/test_context.py::test_context_read_resource_reads_registered_resource[sse-2025-11-25] [gw14] [ 60%] PASSED tests/server/mcpserver/test_func_metadata.py::test_preserves_pydantic_metadata tests/server/mcpserver/test_func_metadata.py::test_convert_result_passes_input_required_result_through_unchanged [gw7] [ 60%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.aac-audio/aac] tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.m4a-audio/mp4] tests/server/test_request_state.py::test_a_custom_codec_is_stored_on_the_policy_as_is [gw2] [ 60%] PASSED tests/server/mcpserver/test_elicitation.py::test_elicitation_accept_returns_the_users_answer_to_the_tool [gw15] [ 60%] PASSED tests/server/test_request_state.py::test_a_custom_codec_is_stored_on_the_policy_as_is [gw14] [ 60%] PASSED tests/server/mcpserver/test_func_metadata.py::test_convert_result_passes_input_required_result_through_unchanged tests/server/mcpserver/test_func_metadata.py::test_input_required_result_return_annotation_yields_no_output_schema tests/server/mcpserver/test_elicitation.py::test_elicitation_decline_reaches_the_tool_without_content [gw13] [ 60%] PASSED tests/server/test_connection.py::test_connection_notify_drops_when_no_standalone_channel tests/server/test_connection.py::test_connection_send_raw_request_raises_nobackchannel_when_no_standalone_channel [gw3] [ 60%] PASSED tests/server/test_apps.py::test_add_html_resource_stamps_csp_and_permissions_on_resource_meta [gw10] [ 60%] PASSED tests/server/test_otel.py::test_validation_failure_sets_sanitized_status tests/server/test_request_state.py::test_ephemeral_policies_are_protected_and_mutually_unintelligible [gw12] [ 60%] PASSED tests/server/test_runner.py::test_runner_on_notify_drops_snake_case_params tests/server/test_runner.py::test_runner_on_notify_drops_a_spec_notification_absent_at_the_negotiated_version tests/server/test_otel.py::test_records_error_status_on_handler_exception [gw13] [ 60%] PASSED tests/server/test_connection.py::test_connection_send_raw_request_raises_nobackchannel_when_no_standalone_channel tests/server/test_connection.py::test_connection_send_raw_request_forwards_when_standalone_channel_present [gw13] [ 60%] PASSED tests/server/test_connection.py::test_connection_send_raw_request_forwards_when_standalone_channel_present tests/server/test_connection.py::test_connection_send_request_with_spec_type_infers_result_type tests/server/test_apps.py::test_apps_tool_with_unregistered_resource_uri_is_rejected_at_construction [gw14] [ 60%] PASSED tests/server/mcpserver/test_func_metadata.py::test_input_required_result_return_annotation_yields_no_output_schema [gw13] [ 60%] PASSED tests/server/test_connection.py::test_connection_send_request_with_spec_type_infers_result_type [gw8] [ 60%] PASSED tests/server/test_request_state_boundary.py::test_retry_with_different_arguments_is_rejected_and_the_original_arguments_complete [gw15] [ 60%] PASSED tests/server/test_request_state.py::test_ephemeral_policies_are_protected_and_mutually_unintelligible tests/server/test_request_state.py::test_the_policy_stores_an_explicit_audience_and_defaults_to_none tests/server/test_connection.py::test_connection_send_request_validates_result_alias_only [gw13] [ 60%] PASSED tests/server/test_connection.py::test_connection_send_request_validates_result_alias_only tests/server/test_connection.py::test_connection_send_request_with_result_type_kwarg_validates_custom_type [gw13] [ 60%] PASSED tests/server/test_connection.py::test_connection_send_request_with_result_type_kwarg_validates_custom_type tests/server/test_connection.py::test_connection_send_request_nonconforming_result_raises_validation_error [gw3] [ 60%] PASSED tests/server/test_apps.py::test_apps_tool_with_unregistered_resource_uri_is_rejected_at_construction tests/server/test_apps.py::test_add_resource_registers_a_prebuilt_ui_resource tests/server/test_request_state_boundary.py::test_state_minted_with_a_principal_is_rejected_when_the_verifier_derives_none [gw6] [ 60%] PASSED tests/interaction/mcpserver/test_tools.py::test_decorated_tool_raising_url_elicitation_required_surfaces_as_error_32042[streamable-http-stateless-2025-11-25] tests/server/mcpserver/test_func_metadata.py::test_union_with_input_required_result_derives_schema_from_residual_arm [gw13] [ 60%] PASSED tests/server/test_connection.py::test_connection_send_request_nonconforming_result_raises_validation_error [gw2] [ 60%] PASSED tests/server/mcpserver/test_elicitation.py::test_elicitation_decline_reaches_the_tool_without_content tests/server/test_connection.py::test_send_request_validates_the_client_result_against_the_surface_schema [gw14] [ 60%] PASSED tests/server/mcpserver/test_func_metadata.py::test_union_with_input_required_result_derives_schema_from_residual_arm tests/interaction/mcpserver/test_tools.py::test_adding_and_removing_tools_does_not_notify_connected_clients[in-memory-2025-11-25] [gw13] [ 60%] PASSED tests/server/test_connection.py::test_send_request_validates_the_client_result_against_the_surface_schema [gw9] [ 60%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] [gw15] [ 60%] PASSED tests/server/test_request_state.py::test_the_policy_stores_an_explicit_audience_and_defaults_to_none [gw4] [ 60%] PASSED tests/server/mcpserver/test_url_elicitation_error_throw.py::test_normal_exceptions_still_return_error_result tests/server/test_connection.py::test_send_request_passes_a_spec_valid_client_result tests/server/mcpserver/test_elicitation.py::test_elicitation_schema_validation [gw1] [ 60%] PASSED tests/server/test_request_state_boundary.py::test_a_non_string_principal_claim_is_rejected_with_the_frozen_error[object] [gw3] [ 60%] PASSED tests/server/test_apps.py::test_add_resource_registers_a_prebuilt_ui_resource [gw13] [ 60%] PASSED tests/server/test_connection.py::test_send_request_passes_a_spec_valid_client_result [gw11] [ 60%] PASSED tests/interaction/mcpserver/test_context.py::test_context_read_resource_reads_registered_resource[sse-2025-11-25] tests/server/test_apps.py::test_add_resource_rejects_non_ui_resource_uri tests/server/test_connection.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version tests/server/test_request_state_boundary.py::test_the_wire_error_never_varies_by_cause_and_logs_never_leak_secrets tests/interaction/mcpserver/test_context.py::test_context_read_resource_reads_registered_resource[streamable-http-2025-11-25] tests/server/test_request_state.py::test_the_default_principal_binding_is_authenticated_principal tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[legacy] tests/server/mcpserver/test_func_metadata.py::test_call_tool_result_unioned_with_input_required_result_is_accepted [gw13] [ 60%] PASSED tests/server/test_connection.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version [gw3] [ 60%] PASSED tests/server/test_apps.py::test_add_resource_rejects_non_ui_resource_uri tests/server/test_connection.py::test_send_request_with_a_custom_method_skips_the_surface_gate [gw14] [ 60%] PASSED tests/server/mcpserver/test_func_metadata.py::test_call_tool_result_unioned_with_input_required_result_is_accepted tests/server/mcpserver/tools/test_base.py::test_context_detected_in_union_annotation tests/server/test_apps.py::test_apps_tool_rejects_a_ui_meta_key [gw13] [ 60%] PASSED tests/server/test_connection.py::test_send_request_with_a_custom_method_skips_the_surface_gate [gw3] [ 60%] PASSED tests/server/test_apps.py::test_apps_tool_rejects_a_ui_meta_key tests/server/test_connection.py::test_connection_ping_sends_ping_on_standalone tests/server/test_apps.py::test_add_resource_defaults_the_mime_type_to_the_app_mime tests/server/mcpserver/test_func_metadata.py::test_basemodel_union_input_required_result_derives_model_schema [gw15] [ 60%] PASSED tests/server/test_request_state.py::test_the_default_principal_binding_is_authenticated_principal [gw13] [ 60%] PASSED tests/server/test_connection.py::test_connection_ping_sends_ping_on_standalone tests/server/test_connection.py::test_connection_log_sends_logging_message_notification [gw13] [ 60%] PASSED tests/server/test_connection.py::test_connection_log_sends_logging_message_notification [gw14] [ 60%] PASSED tests/server/mcpserver/test_func_metadata.py::test_basemodel_union_input_required_result_derives_model_schema tests/server/mcpserver/test_func_metadata.py::test_call_tool_result_in_union_with_input_required_result_is_still_rejected tests/server/test_request_state.py::test_an_explicit_principal_binding_callable_is_stored tests/server/test_connection.py::test_connection_log_sends_nothing_on_a_modern_connection [gw13] [ 60%] PASSED tests/server/test_connection.py::test_connection_log_sends_nothing_on_a_modern_connection tests/server/test_connection.py::test_connection_log_with_meta_includes_meta_in_params [gw13] [ 60%] PASSED tests/server/test_connection.py::test_connection_log_with_meta_includes_meta_in_params tests/server/test_connection.py::test_connection_list_changed_notifications_send_correct_methods [gw2] [ 60%] PASSED tests/server/mcpserver/test_elicitation.py::test_elicitation_schema_validation [gw6] [ 60%] PASSED tests/interaction/mcpserver/test_tools.py::test_adding_and_removing_tools_does_not_notify_connected_clients[in-memory-2025-11-25] [gw13] [ 60%] PASSED tests/server/test_connection.py::test_connection_list_changed_notifications_send_correct_methods [gw4] [ 60%] PASSED tests/server/mcpserver/tools/test_base.py::test_context_detected_in_union_annotation [gw14] [ 60%] PASSED tests/server/mcpserver/test_func_metadata.py::test_call_tool_result_in_union_with_input_required_result_is_still_rejected tests/server/mcpserver/test_func_metadata.py::test_union_of_only_input_required_subclasses_yields_no_output_schema tests/server/mcpserver/test_elicitation.py::test_elicitation_with_optional_fields [gw3] [ 60%] PASSED tests/server/test_apps.py::test_add_resource_defaults_the_mime_type_to_the_app_mime tests/server/test_apps.py::test_add_resource_rejects_an_explicit_non_app_mime_type tests/server/test_connection.py::test_connection_send_tool_list_changed_with_meta_includes_meta_only_params tests/server/mcpserver/tools/test_base.py::test_mcperror_raised_from_a_tool_surfaces_as_a_top_level_jsonrpc_error_with_code_and_data_intact tests/interaction/mcpserver/test_tools.py::test_adding_and_removing_tools_does_not_notify_connected_clients[sse-2025-11-25] [gw15] [ 60%] PASSED tests/server/test_request_state.py::test_an_explicit_principal_binding_callable_is_stored [gw0] [ 60%] PASSED tests/interaction/transports/test_streamable_http.py::test_unrelated_server_messages_arrive_on_the_standalone_stream [gw13] [ 60%] PASSED tests/server/test_connection.py::test_connection_send_tool_list_changed_with_meta_includes_meta_only_params tests/server/test_request_state.py::test_authenticated_principal_is_none_without_an_auth_context [gw11] [ 60%] PASSED tests/interaction/mcpserver/test_context.py::test_context_read_resource_reads_registered_resource[streamable-http-2025-11-25] tests/server/test_connection.py::test_connection_check_capability_false_when_no_capabilities_recorded [gw15] [ 60%] PASSED tests/server/test_request_state.py::test_authenticated_principal_is_none_without_an_auth_context tests/interaction/mcpserver/test_context.py::test_context_read_resource_reads_registered_resource[streamable-http-stateless-2025-11-25] tests/server/test_request_state.py::test_authenticated_principal_is_the_tokens_client_issuer_subject_identity[client-only] [gw12] [ 61%] PASSED tests/server/test_runner.py::test_runner_on_notify_drops_a_spec_notification_absent_at_the_negotiated_version [gw13] [ 61%] PASSED tests/server/test_connection.py::test_connection_check_capability_false_when_no_capabilities_recorded tests/server/test_connection.py::test_from_envelope_records_capabilities_without_client_info [gw3] [ 61%] PASSED tests/server/test_apps.py::test_add_resource_rejects_an_explicit_non_app_mime_type [gw15] [ 61%] PASSED tests/server/test_request_state.py::test_authenticated_principal_is_the_tokens_client_issuer_subject_identity[client-only] tests/server/test_runner.py::test_runner_on_notify_server_direction_spec_method_routes_to_a_registered_handler [gw13] [ 61%] PASSED tests/server/test_connection.py::test_from_envelope_records_capabilities_without_client_info [gw10] [ 61%] PASSED tests/server/test_otel.py::test_records_error_status_on_handler_exception tests/server/test_request_state.py::test_authenticated_principal_is_the_tokens_client_issuer_subject_identity[with-subject] tests/server/test_connection.py::test_client_params_assignment_keeps_capabilities_in_lockstep [gw15] [ 61%] PASSED tests/server/test_request_state.py::test_authenticated_principal_is_the_tokens_client_issuer_subject_identity[with-subject] [gw13] [ 61%] PASSED tests/server/test_connection.py::test_client_params_assignment_keeps_capabilities_in_lockstep tests/interaction/transports/test_streamable_http.py::test_server_initiated_elicitation_round_trips_during_a_tool_call [gw12] [ 61%] PASSED tests/server/test_runner.py::test_runner_on_notify_server_direction_spec_method_routes_to_a_registered_handler tests/server/test_request_state.py::test_authenticated_principal_is_the_tokens_client_issuer_subject_identity[with-issuer-and-subject] tests/server/test_connection.py::test_check_capability_per_field_branches[have0-want0-False] tests/server/test_runner.py::test_runner_on_notify_initialized_sets_flag_and_connection_event tests/server/test_otel.py::test_records_error_status_on_malformed_spec_result [gw14] [ 61%] PASSED tests/server/mcpserver/test_func_metadata.py::test_union_of_only_input_required_subclasses_yields_no_output_schema [gw15] [ 61%] PASSED tests/server/test_request_state.py::test_authenticated_principal_is_the_tokens_client_issuer_subject_identity[with-issuer-and-subject] [gw13] [ 61%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have0-want0-False] tests/server/mcpserver/test_integration.py::test_basic_tools tests/server/test_request_state.py::test_authenticated_principal_distinguishes_two_subjects_of_one_client tests/server/test_caching.py::test_cache_hint_defaults_match_the_conservative_model_defaults [gw12] [ 61%] PASSED tests/server/test_runner.py::test_runner_on_notify_initialized_sets_flag_and_connection_event tests/server/test_connection.py::test_check_capability_per_field_branches[have1-want1-False] [gw15] [ 61%] PASSED tests/server/test_request_state.py::test_authenticated_principal_distinguishes_two_subjects_of_one_client tests/server/test_runner.py::test_runner_on_notify_malformed_initialized_does_not_initialize tests/server/test_request_state.py::test_authenticated_principal_uses_the_same_components_as_session_ownership [gw3] [ 61%] PASSED tests/server/test_caching.py::test_cache_hint_defaults_match_the_conservative_model_defaults [gw13] [ 61%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have1-want1-False] [gw15] [ 61%] PASSED tests/server/test_request_state.py::test_authenticated_principal_uses_the_same_components_as_session_ownership tests/server/test_request_state_boundary.py::test_request_state_is_sealed_on_the_wire_and_restored_for_the_handler tests/server/test_connection.py::test_check_capability_per_field_branches[have2-want2-False] tests/server/test_caching.py::test_a_negative_ttl_is_rejected_at_hint_construction [gw13] [ 61%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have2-want2-False] tests/server/test_connection.py::test_check_capability_per_field_branches[have3-want3-False] [gw15] [ 61%] PASSED tests/server/test_request_state_boundary.py::test_request_state_is_sealed_on_the_wire_and_restored_for_the_handler [gw4] [ 61%] PASSED tests/server/mcpserver/tools/test_base.py::test_mcperror_raised_from_a_tool_surfaces_as_a_top_level_jsonrpc_error_with_code_and_data_intact tests/server/test_request_state_boundary.py::test_lowlevel_server_gets_identical_sealing_from_the_one_line_middleware_append [gw11] [ 61%] PASSED tests/interaction/mcpserver/test_context.py::test_context_read_resource_reads_registered_resource[streamable-http-stateless-2025-11-25] [gw14] [ 61%] PASSED tests/server/mcpserver/test_integration.py::test_basic_tools tests/server/mcpserver/test_integration.py::test_basic_resources tests/interaction/mcpserver/test_context.py::test_context_read_resource_reads_registered_resource[in-memory-2026-07-28] [gw13] [ 61%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have3-want3-False] tests/server/test_runner.py::test_initialize_after_modern_data_arms [gw15] [ 61%] PASSED tests/server/test_request_state_boundary.py::test_lowlevel_server_gets_identical_sealing_from_the_one_line_middleware_append [gw8] [ 61%] PASSED tests/server/test_request_state_boundary.py::test_state_minted_with_a_principal_is_rejected_when_the_verifier_derives_none [gw2] [ 61%] PASSED tests/server/mcpserver/test_elicitation.py::test_elicitation_with_optional_fields tests/server/test_request_state_boundary.py::test_a_resource_template_flow_seals_on_resources_read_and_restores_the_plaintext tests/server/mcpserver/test_elicitation.py::test_elicitation_with_default_values [gw3] [ 61%] PASSED tests/server/test_caching.py::test_a_negative_ttl_is_rejected_at_hint_construction tests/server/test_caching.py::test_an_unknown_scope_is_rejected_at_hint_construction tests/server/test_request_state_boundary.py::test_state_minted_without_a_principal_is_rejected_when_the_verifier_derives_one tests/server/mcpserver/tools/test_base.py::test_non_mcperror_exception_raised_from_a_tool_is_wrapped_as_an_is_error_result [gw13] [ 61%] PASSED tests/server/test_runner.py::test_initialize_after_modern_data_arms tests/server/test_runner.py::test_no_server_requests_dispatch_context_denies_requests_and_delegates_the_rest [gw11] [ 61%] PASSED tests/interaction/mcpserver/test_context.py::test_context_read_resource_reads_registered_resource[in-memory-2026-07-28] [gw6] [ 61%] PASSED tests/interaction/mcpserver/test_tools.py::test_adding_and_removing_tools_does_not_notify_connected_clients[sse-2025-11-25] [gw14] [ 61%] PASSED tests/server/mcpserver/test_integration.py::test_basic_resources [gw3] [ 61%] PASSED tests/server/test_caching.py::test_an_unknown_scope_is_rejected_at_hint_construction [gw15] [ 61%] PASSED tests/server/test_request_state_boundary.py::test_a_resource_template_flow_seals_on_resources_read_and_restores_the_plaintext tests/server/mcpserver/test_integration.py::test_basic_prompts tests/interaction/mcpserver/test_context.py::test_context_read_resource_reads_registered_resource[streamable-http-2026-07-28] tests/server/test_session.py::test_send_request_passes_a_spec_valid_client_result [gw13] [ 61%] PASSED tests/server/test_runner.py::test_no_server_requests_dispatch_context_denies_requests_and_delegates_the_rest [gw15] [ 61%] PASSED tests/server/test_session.py::test_send_request_passes_a_spec_valid_client_result tests/server/test_runner.py::test_no_server_requests_dispatch_context_passes_an_already_denying_transport_through tests/server/test_caching.py::test_apply_cache_hint_fills_only_the_fields_the_handler_left_unset tests/interaction/mcpserver/test_tools.py::test_adding_and_removing_tools_does_not_notify_connected_clients[streamable-http-2025-11-25] [gw2] [ 61%] PASSED tests/server/mcpserver/test_elicitation.py::test_elicitation_with_default_values tests/server/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version [gw14] [ 61%] PASSED tests/server/mcpserver/test_integration.py::test_basic_prompts tests/server/mcpserver/test_elicitation.py::test_elicitation_with_enum_titles [gw13] [ 61%] PASSED tests/server/test_runner.py::test_no_server_requests_dispatch_context_passes_an_already_denying_transport_through tests/server/mcpserver/test_integration.py::test_tool_progress tests/server/test_runner.py::test_notify_only_outbound_forwards_notifications_and_refuses_requests [gw15] [ 61%] PASSED tests/server/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version [gw13] [ 61%] PASSED tests/server/test_runner.py::test_notify_only_outbound_forwards_notifications_and_refuses_requests [gw3] [ 61%] PASSED tests/server/test_caching.py::test_apply_cache_hint_fills_only_the_fields_the_handler_left_unset tests/server/test_session.py::test_send_request_validates_result_alias_only tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/tools/list_changed] [gw15] [ 61%] PASSED tests/server/test_session.py::test_send_request_validates_result_alias_only [gw14] [ 61%] PASSED tests/server/mcpserver/test_integration.py::test_tool_progress tests/server/test_session.py::test_create_message_with_tools_returns_with_tools_result [gw12] [ 61%] PASSED tests/server/test_runner.py::test_runner_on_notify_malformed_initialized_does_not_initialize [gw15] [ 61%] PASSED tests/server/test_session.py::test_create_message_with_tools_returns_with_tools_result tests/server/test_caching.py::test_apply_cache_hint_never_overrides_explicit_fields_even_at_default_values tests/server/mcpserver/test_integration.py::test_sampling tests/server/test_session.py::test_create_message_with_tool_choice_only_returns_with_tools_result [gw9] [ 61%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[legacy] [gw14] [ 61%] PASSED tests/server/mcpserver/test_integration.py::test_sampling [gw10] [ 61%] PASSED tests/server/test_otel.py::test_records_error_status_on_malformed_spec_result tests/docs_src/test_cancellation.py::test_abandoning_the_call_over_streamable_http_runs_the_cleanup_too[2026-07-28] tests/server/test_otel.py::test_passes_rewritten_context_through tests/server/mcpserver/test_integration.py::test_elicitation [gw15] [ 61%] PASSED tests/server/test_session.py::test_create_message_with_tool_choice_only_returns_with_tools_result tests/server/test_session.py::test_check_client_capability_delegates_to_connection tests/server/test_runner.py::test_runner_on_notify_initialized_routes_to_registered_handler_after_state_set [gw15] [ 61%] PASSED tests/server/test_session.py::test_check_client_capability_delegates_to_connection [gw3] [ 61%] PASSED tests/server/test_caching.py::test_apply_cache_hint_never_overrides_explicit_fields_even_at_default_values tests/server/test_caching.py::test_a_non_cacheable_method_in_cache_hints_is_rejected_at_server_construction [gw11] [ 61%] PASSED tests/interaction/mcpserver/test_context.py::test_context_read_resource_reads_registered_resource[streamable-http-2026-07-28] tests/interaction/mcpserver/test_context.py::test_set_logging_level_is_rejected_and_messages_are_never_filtered[in-memory-2025-11-25] [gw12] [ 61%] PASSED tests/server/test_runner.py::test_runner_on_notify_initialized_routes_to_registered_handler_after_state_set [gw7] [ 61%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.m4a-audio/mp4] tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.unknown-application/octet-stream] tests/server/test_session.py::test_protocol_version_proxies_connection [gw15] [ 61%] PASSED tests/server/test_session.py::test_protocol_version_proxies_connection tests/server/test_runner.py::test_server_add_request_handler_rejects_initialize tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[different-client] [gw14] [ 61%] PASSED tests/server/mcpserver/test_integration.py::test_elicitation tests/server/mcpserver/test_integration.py::test_notifications [gw3] [ 61%] PASSED tests/server/test_caching.py::test_a_non_cacheable_method_in_cache_hints_is_rejected_at_server_construction tests/server/test_caching.py::test_a_non_cache_hint_value_is_rejected_at_server_construction [gw10] [ 61%] PASSED tests/server/test_otel.py::test_passes_rewritten_context_through [gw2] [ 61%] PASSED tests/server/mcpserver/test_elicitation.py::test_elicitation_with_enum_titles [gw14] [ 61%] PASSED tests/server/mcpserver/test_integration.py::test_notifications tests/server/mcpserver/test_integration.py::test_completion tests/server/mcpserver/test_elicitation.py::test_elicitation_literal_field_renders_as_a_spec_enum_schema [gw12] [ 62%] PASSED tests/server/test_runner.py::test_server_add_request_handler_rejects_initialize tests/server/test_runner.py::test_runner_on_notify_routes_to_registered_handler tests/server/test_read_resource.py::test_read_resource_text [gw10] [ 62%] PASSED tests/server/test_read_resource.py::test_read_resource_text [gw11] [ 62%] PASSED tests/interaction/mcpserver/test_context.py::test_set_logging_level_is_rejected_and_messages_are_never_filtered[in-memory-2025-11-25] tests/server/test_read_resource.py::test_read_resource_binary [gw14] [ 62%] PASSED tests/server/mcpserver/test_integration.py::test_completion tests/server/mcpserver/test_integration.py::test_mcpserver_quickstart [gw8] [ 62%] PASSED tests/server/test_request_state_boundary.py::test_state_minted_without_a_principal_is_rejected_when_the_verifier_derives_one tests/server/test_request_state_boundary.py::test_state_for_a_different_principal_is_rejected_and_the_same_principal_completes tests/interaction/mcpserver/test_context.py::test_set_logging_level_is_rejected_and_messages_are_never_filtered[sse-2025-11-25] [gw10] [ 62%] PASSED tests/server/test_read_resource.py::test_read_resource_binary tests/server/test_request_state.py::test_seal_unseal_round_trips_any_payload[empty] [gw3] [ 62%] PASSED tests/server/test_caching.py::test_a_non_cache_hint_value_is_rejected_at_server_construction tests/server/test_caching.py::test_a_non_string_cache_hints_key_is_rejected_with_the_unknown_key_error [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_seal_unseal_round_trips_any_payload[empty] tests/server/test_request_state.py::test_seal_unseal_round_trips_any_payload[ascii] [gw7] [ 62%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_audio_suffix_detection[test.unknown-application/octet-stream] [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_seal_unseal_round_trips_any_payload[ascii] [gw13] [ 62%] PASSED tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/tools/list_changed] tests/server/test_request_state.py::test_seal_unseal_round_trips_any_payload[multi-byte-utf8] [gw12] [ 62%] PASSED tests/server/test_runner.py::test_runner_on_notify_routes_to_registered_handler [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_seal_unseal_round_trips_any_payload[multi-byte-utf8] [gw3] [ 62%] PASSED tests/server/test_caching.py::test_a_non_string_cache_hints_key_is_rejected_with_the_unknown_key_error tests/server/test_request_state.py::test_seal_unseal_round_trips_any_payload[raw-binary] tests/server/mcpserver/test_server.py::TestServerTools::test_tool_mixed_content [gw0] [ 62%] PASSED tests/interaction/transports/test_streamable_http.py::test_server_initiated_elicitation_round_trips_during_a_tool_call tests/interaction/transports/test_streamable_http.py::test_cancelled_request_is_terminated_with_request_cancelled[json-response] [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_seal_unseal_round_trips_any_payload[raw-binary] tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/prompts/list_changed] tests/server/test_request_state.py::test_seal_unseal_round_trips_any_payload[64KiB] tests/server/test_runner.py::test_runner_on_notify_handler_exception_is_swallowed_and_logged [gw2] [ 62%] PASSED tests/server/mcpserver/test_elicitation.py::test_elicitation_literal_field_renders_as_a_spec_enum_schema [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_seal_unseal_round_trips_any_payload[64KiB] [gw14] [ 62%] PASSED tests/server/mcpserver/test_integration.py::test_mcpserver_quickstart tests/server/test_request_state.py::test_a_sealed_token_is_v1_plus_unpadded_b64url_over_kid_nonce_and_ciphertext tests/server/test_caching.py::test_a_dict_returning_handler_takes_the_configured_hint tests/server/mcpserver/test_extension.py::test_additive_extension_registers_its_tool_and_resource [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_sealed_token_is_v1_plus_unpadded_b64url_over_kid_nonce_and_ciphertext tests/server/test_request_state.py::test_two_seals_of_the_same_payload_produce_distinct_tokens_that_both_unseal [gw7] [ 62%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_mixed_content tests/server/mcpserver/test_server.py::TestServerTools::test_tool_mixed_list_with_audio_and_image [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_two_seals_of_the_same_payload_produce_distinct_tokens_that_both_unseal tests/server/test_request_state.py::test_a_token_corrupted_in_any_region_is_rejected_without_echoing_the_payload[prefix-char] [gw1] [ 62%] PASSED tests/server/test_request_state_boundary.py::test_the_wire_error_never_varies_by_cause_and_logs_never_leak_secrets tests/server/mcpserver/test_integration.py::test_structured_output [gw15] [ 62%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[different-client] [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_token_corrupted_in_any_region_is_rejected_without_echoing_the_payload[prefix-char] tests/server/test_request_state.py::test_a_token_corrupted_in_any_region_is_rejected_without_echoing_the_payload[kid-byte] tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[unauthenticated-sender] [gw3] [ 62%] PASSED tests/server/test_caching.py::test_a_dict_returning_handler_takes_the_configured_hint tests/server/test_request_state_boundary.py::test_a_complete_result_crosses_the_boundary_untouched [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_token_corrupted_in_any_region_is_rejected_without_echoing_the_payload[kid-byte] [gw2] [ 62%] PASSED tests/server/mcpserver/test_extension.py::test_additive_extension_registers_its_tool_and_resource tests/server/test_request_state.py::test_a_token_corrupted_in_any_region_is_rejected_without_echoing_the_payload[nonce-byte] [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_token_corrupted_in_any_region_is_rejected_without_echoing_the_payload[nonce-byte] tests/server/test_caching.py::test_a_dict_provided_ttl_wins_and_the_hint_fills_only_the_missing_scope tests/server/mcpserver/test_extension.py::test_extension_settings_advertised_under_server_capabilities tests/server/test_request_state.py::test_a_token_corrupted_in_any_region_is_rejected_without_echoing_the_payload[ciphertext-byte] [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_token_corrupted_in_any_region_is_rejected_without_echoing_the_payload[ciphertext-byte] [gw5] [ 62%] PASSED tests/client/test_stdio.py::test_a_graceful_exit_with_a_surviving_child_leaks_no_pipe_fds tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_tool_result_larger_than_one_mebibyte [gw11] [ 62%] PASSED tests/interaction/mcpserver/test_context.py::test_set_logging_level_is_rejected_and_messages_are_never_filtered[sse-2025-11-25] [gw1] [ 62%] PASSED tests/server/test_request_state_boundary.py::test_a_complete_result_crosses_the_boundary_untouched tests/server/test_request_state.py::test_a_token_corrupted_in_any_region_is_rejected_without_echoing_the_payload[tag-byte] tests/server/test_request_state_boundary.py::test_input_required_without_request_state_is_untouched [gw2] [ 62%] PASSED tests/server/mcpserver/test_extension.py::test_extension_settings_advertised_under_server_capabilities [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_token_corrupted_in_any_region_is_rejected_without_echoing_the_payload[tag-byte] [gw6] [ 62%] PASSED tests/interaction/mcpserver/test_tools.py::test_adding_and_removing_tools_does_not_notify_connected_clients[streamable-http-2025-11-25] tests/server/test_request_state.py::test_a_structurally_malformed_token_is_rejected[empty-string] tests/server/mcpserver/test_extension.py::test_extension_settings_dropped_on_legacy_handshake tests/interaction/mcpserver/test_context.py::test_set_logging_level_is_rejected_and_messages_are_never_filtered[streamable-http-2025-11-25] [gw4] [ 62%] PASSED tests/server/mcpserver/tools/test_base.py::test_non_mcperror_exception_raised_from_a_tool_is_wrapped_as_an_is_error_result [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_structurally_malformed_token_is_rejected[empty-string] tests/interaction/mcpserver/test_tools.py::test_adding_and_removing_tools_does_not_notify_connected_clients[streamable-http-stateless-2025-11-25] tests/server/test_request_state.py::test_a_structurally_malformed_token_is_rejected[missing-prefix] [gw3] [ 62%] PASSED tests/server/test_caching.py::test_a_dict_provided_ttl_wins_and_the_hint_fills_only_the_missing_scope [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_structurally_malformed_token_is_rejected[missing-prefix] [gw0] [ 62%] PASSED tests/interaction/transports/test_streamable_http.py::test_cancelled_request_is_terminated_with_request_cancelled[json-response] tests/server/test_request_state.py::test_a_structurally_malformed_token_is_rejected[garbage-after-prefix] tests/server/mcpserver/tools/test_base.py::test_tool_with_an_invalid_x_mcp_header_annotation_is_rejected_at_registration[array] [gw2] [ 62%] PASSED tests/server/mcpserver/test_extension.py::test_extension_settings_dropped_on_legacy_handshake [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_structurally_malformed_token_is_rejected[garbage-after-prefix] tests/server/test_request_state.py::test_a_structurally_malformed_token_is_rejected[below-floor] tests/server/mcpserver/test_extension.py::test_duplicate_extension_identifier_raises [gw13] [ 62%] PASSED tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/prompts/list_changed] tests/server/test_caching.py::test_a_dict_returning_handler_leaks_no_hint_fields_to_a_2025_session [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_structurally_malformed_token_is_rejected[below-floor] tests/server/test_request_state.py::test_a_token_minted_under_a_key_outside_the_ring_is_rejected_as_unknown_key [gw2] [ 62%] PASSED tests/server/mcpserver/test_extension.py::test_duplicate_extension_identifier_raises tests/server/mcpserver/resources/test_resource_manager.py::test_add_template_with_metadata [gw14] [ 62%] PASSED tests/server/mcpserver/test_integration.py::test_structured_output [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_token_minted_under_a_key_outside_the_ring_is_rejected_as_unknown_key [gw1] [ 62%] PASSED tests/server/test_request_state_boundary.py::test_input_required_without_request_state_is_untouched tests/server/mcpserver/test_extension.py::test_extension_method_reachable_via_session_send_request tests/server/test_request_state_boundary.py::test_an_input_required_mapping_with_a_non_string_state_is_not_sealed tests/server/test_request_state.py::test_a_token_minted_under_the_old_key_unseals_under_any_ring_containing_it[rotation-phase-1] [gw1] [ 62%] PASSED tests/server/test_request_state_boundary.py::test_an_input_required_mapping_with_a_non_string_state_is_not_sealed [gw2] [ 62%] PASSED tests/server/mcpserver/test_extension.py::test_extension_method_reachable_via_session_send_request tests/server/mcpserver/test_extension.py::test_pass_through_interceptor_leaves_tool_result_unchanged tests/server/test_request_state_boundary.py::test_a_notification_crosses_the_boundary_unharmed [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_token_minted_under_the_old_key_unseals_under_any_ring_containing_it[rotation-phase-1] tests/server/test_request_state.py::test_a_token_minted_under_the_old_key_unseals_under_any_ring_containing_it[rotation-phase-2] [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_token_minted_under_the_old_key_unseals_under_any_ring_containing_it[rotation-phase-2] tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/resources/list_changed] tests/server/mcpserver/test_parameter_descriptions.py::test_parameter_descriptions tests/server/test_request_state.py::test_the_first_ring_key_mints_and_later_ring_keys_only_verify [gw1] [ 62%] PASSED tests/server/test_request_state_boundary.py::test_a_notification_crosses_the_boundary_unharmed tests/server/test_request_state_boundary.py::test_a_non_mrtr_method_with_no_params_is_untouched [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_the_first_ring_key_mints_and_later_ring_keys_only_verify tests/server/test_request_state.py::test_a_token_minted_under_a_retired_key_is_rejected [gw1] [ 62%] PASSED tests/server/test_request_state_boundary.py::test_a_non_mrtr_method_with_no_params_is_untouched tests/server/test_request_state_boundary.py::test_a_short_circuited_input_required_model_is_sealed_via_the_model_path [gw8] [ 62%] PASSED tests/server/test_request_state_boundary.py::test_state_for_a_different_principal_is_rejected_and_the_same_principal_completes [gw10] [ 62%] PASSED tests/server/test_request_state.py::test_a_token_minted_under_a_retired_key_is_rejected tests/server/test_request_state.py::test_an_empty_key_ring_is_rejected_at_construction [gw4] [ 62%] PASSED tests/server/mcpserver/tools/test_base.py::test_tool_with_an_invalid_x_mcp_header_annotation_is_rejected_at_registration[array] tests/server/mcpserver/tools/test_base.py::test_tool_with_an_invalid_x_mcp_header_annotation_is_rejected_at_registration[number] [gw1] [ 63%] PASSED tests/server/test_request_state_boundary.py::test_a_short_circuited_input_required_model_is_sealed_via_the_model_path [gw9] [ 63%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_over_streamable_http_runs_the_cleanup_too[2026-07-28] [gw10] [ 63%] PASSED tests/server/test_request_state.py::test_an_empty_key_ring_is_rejected_at_construction tests/server/test_request_state.py::test_a_key_shorter_than_32_bytes_is_rejected_with_generation_guidance tests/server/test_request_state_boundary.py::test_a_codec_that_raises_during_seal_yields_a_sanitized_internal_error [gw15] [ 63%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[unauthenticated-sender] [gw2] [ 63%] PASSED tests/server/mcpserver/test_extension.py::test_pass_through_interceptor_leaves_tool_result_unchanged tests/server/mcpserver/test_extension.py::test_short_circuiting_interceptor_replaces_tool_result [gw3] [ 63%] PASSED tests/server/test_caching.py::test_a_dict_returning_handler_leaks_no_hint_fields_to_a_2025_session [gw10] [ 63%] PASSED tests/server/test_request_state.py::test_a_key_shorter_than_32_bytes_is_rejected_with_generation_guidance tests/server/test_request_state_boundary.py::test_a_principal_binding_that_raises_fails_the_seal_as_an_internal_error [gw5] [ 63%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_tool_result_larger_than_one_mebibyte tests/server/test_request_state.py::test_a_duplicate_key_in_the_ring_is_rejected_at_construction tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[same-client-different-subject] tests/client/test_streamable_http.py::test_default_sse_limit_fails_one_large_tool_call_and_keeps_the_session_usable [gw0] [ 63%] PASSED tests/server/mcpserver/resources/test_resource_manager.py::test_add_template_with_metadata [gw10] [ 63%] PASSED tests/server/test_request_state.py::test_a_duplicate_key_in_the_ring_is_rejected_at_construction tests/server/test_request_state.py::test_a_non_key_typed_ring_entry_is_rejected_naming_its_index_and_type tests/docs_src/test_cancellation.py::test_abandoning_the_call_over_streamable_http_runs_the_cleanup_too[legacy] [gw10] [ 63%] PASSED tests/server/test_request_state.py::test_a_non_key_typed_ring_entry_is_rejected_naming_its_index_and_type tests/server/test_caching.py::test_an_input_required_shaped_dict_never_gets_cache_hints tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-empty-string] tests/server/mcpserver/resources/test_resource_manager.py::test_add_template_without_metadata [gw14] [ 63%] PASSED tests/server/mcpserver/test_parameter_descriptions.py::test_parameter_descriptions [gw4] [ 63%] PASSED tests/server/mcpserver/tools/test_base.py::test_tool_with_an_invalid_x_mcp_header_annotation_is_rejected_at_registration[number] [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-empty-string] tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-null] [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-null] [gw2] [ 63%] PASSED tests/server/mcpserver/test_extension.py::test_short_circuiting_interceptor_replaces_tool_result tests/server/mcpserver/test_extension.py::test_plain_extension_leaves_the_tool_call_handler_bare tests/server/mcpserver/tools/test_base.py::test_tool_with_an_invalid_x_mcp_header_annotation_is_rejected_at_registration[optional] [gw3] [ 63%] PASSED tests/server/test_caching.py::test_an_input_required_shaped_dict_never_gets_cache_hints tests/server/mcpserver/test_resolve.py::test_consumer_receives_result_union_and_branches tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-empty-string] [gw0] [ 63%] PASSED tests/server/mcpserver/resources/test_resource_manager.py::test_add_template_without_metadata [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-empty-string] tests/server/test_caching.py::test_server_cache_hints_reach_the_wire_for_a_bare_handler_result tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-null] [gw2] [ 63%] PASSED tests/server/mcpserver/test_extension.py::test_plain_extension_leaves_the_tool_call_handler_bare [gw12] [ 63%] PASSED tests/server/test_runner.py::test_runner_on_notify_handler_exception_is_swallowed_and_logged tests/server/mcpserver/resources/test_resource_template.py::test_matches_rfc6570_reserved_expansion tests/server/mcpserver/test_extension.py::test_overriding_extension_wraps_the_tool_call_handler [gw3] [ 63%] PASSED tests/server/test_caching.py::test_server_cache_hints_reach_the_wire_for_a_bare_handler_result [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-null] [gw0] [ 63%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_rfc6570_reserved_expansion tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-empty-string] tests/server/mcpserver/resources/test_resource_template.py::test_matches_rejects_encoded_slash_traversal tests/server/test_caching.py::test_every_page_of_a_paginated_list_carries_the_configured_scope [gw2] [ 63%] PASSED tests/server/mcpserver/test_extension.py::test_overriding_extension_wraps_the_tool_call_handler tests/server/test_runner.py::test_runner_on_notify_drops_malformed_params [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-empty-string] tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[token_endpoint_auth_method-null] [gw4] [ 63%] PASSED tests/server/mcpserver/tools/test_base.py::test_tool_with_an_invalid_x_mcp_header_annotation_is_rejected_at_registration[optional] tests/server/mcpserver/tools/test_base.py::test_tool_with_an_invalid_x_mcp_header_annotation_is_rejected_at_registration[non-token-name] [gw0] [ 63%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_rejects_encoded_slash_traversal tests/server/mcpserver/test_extension.py::test_default_interceptor_passes_through_alongside_an_overriding_one tests/server/mcpserver/resources/test_resource_template.py::test_matches_rejects_path_traversal_by_default [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[token_endpoint_auth_method-null] [gw0] [ 63%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_rejects_path_traversal_by_default [gw4] [ 63%] PASSED tests/server/mcpserver/tools/test_base.py::test_tool_with_an_invalid_x_mcp_header_annotation_is_rejected_at_registration[non-token-name] tests/server/mcpserver/resources/test_resource_template.py::test_matches_rejects_path_traversal_in_reserved_var tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[token_endpoint_auth_method-empty-string] tests/server/mcpserver/tools/test_base.py::test_tool_with_valid_x_mcp_header_annotations_is_registered [gw11] [ 63%] PASSED tests/interaction/mcpserver/test_context.py::test_set_logging_level_is_rejected_and_messages_are_never_filtered[streamable-http-2025-11-25] [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[token_endpoint_auth_method-empty-string] tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[scope-null] [gw3] [ 63%] PASSED tests/server/test_caching.py::test_every_page_of_a_paginated_list_carries_the_configured_scope [gw1] [ 63%] PASSED tests/server/test_request_state_boundary.py::test_a_codec_that_raises_during_seal_yields_a_sanitized_internal_error tests/server/test_request_state_boundary.py::test_a_non_string_principal_fails_closed_when_sealing [gw0] [ 63%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_rejects_path_traversal_in_reserved_var [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[scope-null] tests/server/mcpserver/resources/test_resource_template.py::test_matches_rejects_absolute_path [gw4] [ 63%] PASSED tests/server/mcpserver/tools/test_base.py::test_tool_with_valid_x_mcp_header_annotations_is_registered tests/interaction/mcpserver/test_context.py::test_set_logging_level_is_rejected_and_messages_are_never_filtered[streamable-http-stateless-2025-11-25] tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[scope-empty-string] [gw6] [ 63%] PASSED tests/interaction/mcpserver/test_tools.py::test_adding_and_removing_tools_does_not_notify_connected_clients[streamable-http-stateless-2025-11-25] [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[scope-empty-string] [gw0] [ 63%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_rejects_absolute_path tests/server/test_apps.py::test_apps_tool_stamps_ui_resource_uri_on_tool_meta tests/shared/test_auth.py::test_a_placeholder_client_id_is_a_missing_client_id tests/server/mcpserver/resources/test_resource_template.py::test_matches_allows_dotdot_as_substring tests/server/test_caching.py::test_the_default_discover_handler_takes_the_server_discover_hint [gw2] [ 63%] PASSED tests/server/mcpserver/test_extension.py::test_default_interceptor_passes_through_alongside_an_overriding_one [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_a_placeholder_client_id_is_a_missing_client_id [gw4] [ 63%] PASSED tests/server/test_apps.py::test_apps_tool_stamps_ui_resource_uri_on_tool_meta [gw0] [ 63%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_allows_dotdot_as_substring tests/shared/test_auth.py::test_client_information_that_is_not_an_object_still_fails_the_parse tests/interaction/mcpserver/test_tools.py::test_adding_and_removing_tools_does_not_notify_connected_clients[in-memory-2026-07-28] tests/server/test_apps.py::test_add_html_resource_serves_ui_resource_at_app_mime_type tests/server/mcpserver/resources/test_resource_template.py::test_matches_exempt_params_skip_security [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_client_information_that_is_not_an_object_still_fails_the_parse tests/server/mcpserver/test_extension.py::test_interceptors_run_in_registration_order_with_threaded_params tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[unspecified-absent] [gw0] [ 63%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_exempt_params_skip_security [gw3] [ 63%] PASSED tests/server/test_caching.py::test_the_default_discover_handler_takes_the_server_discover_hint tests/server/mcpserver/resources/test_resource_template.py::test_matches_disabled_policy_allows_traversal [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[unspecified-absent] tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[unspecified-empty] [gw14] [ 63%] PASSED tests/server/mcpserver/test_resolve.py::test_consumer_receives_result_union_and_branches tests/server/mcpserver/test_resolve.py::test_nested_resolver_sees_dependency_and_tool_args [gw4] [ 63%] PASSED tests/server/test_apps.py::test_add_html_resource_serves_ui_resource_at_app_mime_type [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[unspecified-empty] tests/server/test_apps.py::test_auto_mode_carries_apps_extension_under_server_capabilities [gw0] [ 63%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_disabled_policy_allows_traversal [gw5] [ 63%] PASSED tests/client/test_streamable_http.py::test_default_sse_limit_fails_one_large_tool_call_and_keeps_the_session_usable tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-absent] tests/server/mcpserver/resources/test_resource_template.py::test_matches_rejects_null_byte_by_default tests/server/test_caching.py::test_mcpserver_cache_hints_cover_every_high_level_handler [gw10] [ 63%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-absent] [gw13] [ 63%] PASSED tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/resources/list_changed] [gw0] [ 63%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_rejects_null_byte_by_default tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-empty] [gw4] [ 63%] PASSED tests/server/test_apps.py::test_auto_mode_carries_apps_extension_under_server_capabilities tests/server/mcpserver/resources/test_resource_template.py::test_matches_null_byte_check_can_be_disabled [gw0] [ 63%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_null_byte_check_can_be_disabled tests/server/mcpserver/resources/test_resource_template.py::test_security_rejection_does_not_fall_through_to_next_template tests/interaction/lowlevel/test_prompts.py::test_get_prompt_multiple_messages_preserve_roles_and_order[in-memory-2025-11-25] tests/server/test_apps.py::test_legacy_handshake_drops_apps_extension_from_capabilities [gw7] [ 64%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_mixed_list_with_audio_and_image [gw10] [ 64%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-empty] tests/shared/test_auth.py::test_request_metadata_restricts_application_type_to_the_values_the_sdk_sends [gw10] [ 64%] PASSED tests/shared/test_auth.py::test_request_metadata_restricts_application_type_to_the_values_the_sdk_sends tests/shared/test_auth.py::test_request_metadata_requires_at_least_one_redirect_uri tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/resources/updated] [gw4] [ 64%] PASSED tests/server/test_apps.py::test_legacy_handshake_drops_apps_extension_from_capabilities tests/server/test_apps.py::test_apps_tool_returns_rich_output_when_client_negotiated_apps [gw10] [ 64%] PASSED tests/shared/test_auth.py::test_request_metadata_requires_at_least_one_redirect_uri [gw0] [ 64%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_security_rejection_does_not_fall_through_to_next_template tests/server/mcpserver/resources/test_resource_template.py::test_matches_explode_checks_each_segment tests/server/mcpserver/test_server.py::TestServerTools::test_tool_structured_output_basemodel tests/shared/test_auth.py::test_invalid_non_empty_url_still_rejected [gw2] [ 64%] PASSED tests/server/mcpserver/test_extension.py::test_interceptors_run_in_registration_order_with_threaded_params tests/server/mcpserver/test_extension.py::test_an_interceptor_context_rewrite_does_not_change_the_tool_invocation [gw0] [ 64%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_explode_checks_each_segment tests/server/mcpserver/resources/test_resource_template.py::test_matches_encoded_backslash_caught_by_traversal_check [gw15] [ 64%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[same-client-different-subject] [gw5] [ 64%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_multiple_messages_preserve_roles_and_order[in-memory-2025-11-25] [gw10] [ 64%] PASSED tests/shared/test_auth.py::test_invalid_non_empty_url_still_rejected [gw0] [ 64%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_encoded_backslash_caught_by_traversal_check tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[same-client-no-subject] tests/server/mcpserver/resources/test_resource_template.py::test_matches_encoded_dots_caught_by_traversal_check [gw4] [ 64%] PASSED tests/server/test_apps.py::test_apps_tool_returns_rich_output_when_client_negotiated_apps tests/server/test_apps.py::test_client_supports_apps_from_lowlevel_request_context[html-mime-listed] [gw0] [ 64%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_encoded_dots_caught_by_traversal_check tests/shared/test_auth_utils.py::test_resource_url_from_server_url_removes_fragment tests/interaction/lowlevel/test_prompts.py::test_get_prompt_multiple_messages_preserve_roles_and_order[sse-2025-11-25] tests/server/mcpserver/resources/test_resource_template.py::test_matches_mixed_encoded_and_literal_slash [gw6] [ 64%] PASSED tests/interaction/mcpserver/test_tools.py::test_adding_and_removing_tools_does_not_notify_connected_clients[in-memory-2026-07-28] [gw10] [ 64%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_removes_fragment [gw4] [ 64%] PASSED tests/server/test_apps.py::test_client_supports_apps_from_lowlevel_request_context[html-mime-listed] tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_path [gw0] [ 64%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_mixed_encoded_and_literal_slash tests/interaction/mcpserver/test_tools.py::test_adding_and_removing_tools_does_not_notify_connected_clients[streamable-http-2026-07-28] tests/server/test_apps.py::test_client_supports_apps_from_lowlevel_request_context[in-process-tuple-mime-types] tests/server/mcpserver/resources/test_resource_template.py::test_matches_encoded_slash_without_traversal_allowed [gw4] [ 64%] PASSED tests/server/test_apps.py::test_client_supports_apps_from_lowlevel_request_context[in-process-tuple-mime-types] [gw0] [ 64%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_encoded_slash_without_traversal_allowed [gw10] [ 64%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_path tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_query tests/server/test_apps.py::test_client_supports_apps_from_lowlevel_request_context[extension-not-declared] tests/server/mcpserver/resources/test_resource_template.py::test_matches_escapes_template_literals [gw0] [ 64%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_matches_escapes_template_literals [gw4] [ 64%] PASSED tests/server/test_apps.py::test_client_supports_apps_from_lowlevel_request_context[extension-not-declared] [gw2] [ 64%] PASSED tests/server/mcpserver/test_extension.py::test_an_interceptor_context_rewrite_does_not_change_the_tool_invocation [gw3] [ 64%] PASSED tests/server/test_caching.py::test_mcpserver_cache_hints_cover_every_high_level_handler tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_template_creation [gw11] [ 64%] PASSED tests/interaction/mcpserver/test_context.py::test_set_logging_level_is_rejected_and_messages_are_never_filtered[streamable-http-stateless-2025-11-25] tests/server/test_apps.py::test_client_supports_apps_from_lowlevel_request_context[html-mime-not-offered] [gw10] [ 64%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_query tests/server/test_connection.py::test_check_capability_per_field_branches[have4-want4-False] [gw7] [ 64%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_structured_output_basemodel [gw0] [ 64%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_template_creation [gw14] [ 64%] PASSED tests/server/mcpserver/test_resolve.py::test_nested_resolver_sees_dependency_and_tool_args [gw1] [ 64%] PASSED tests/server/test_request_state_boundary.py::test_a_non_string_principal_fails_closed_when_sealing tests/server/mcpserver/test_extension.py::test_short_circuited_interceptor_result_carries_the_server_info_stamp tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_template_matches tests/server/mcpserver/test_resolve.py::test_resolver_runs_once_for_two_consumers [gw4] [ 64%] PASSED tests/server/test_apps.py::test_client_supports_apps_from_lowlevel_request_context[html-mime-not-offered] [gw11] [ 64%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have4-want4-False] tests/server/test_request_state_boundary.py::test_a_non_string_principal_fails_closed_when_verifying tests/server/test_apps.py::test_client_supports_apps_from_lowlevel_request_context[mime-types-key-missing] tests/server/test_connection.py::test_check_capability_per_field_branches[have5-want5-True] [gw0] [ 64%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_template_matches tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_port [gw6] [ 64%] PASSED tests/interaction/mcpserver/test_tools.py::test_adding_and_removing_tools_does_not_notify_connected_clients[streamable-http-2026-07-28] tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_create_resource tests/server/test_cancel_handling.py::test_server_remains_functional_after_cancel [gw5] [ 64%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_multiple_messages_preserve_roles_and_order[sse-2025-11-25] [gw10] [ 64%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_port [gw11] [ 64%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have5-want5-True] tests/interaction/test_coverage.py::test_every_requirement_is_exercised [gw12] [ 64%] PASSED tests/server/test_runner.py::test_runner_on_notify_drops_malformed_params tests/server/test_connection.py::test_check_capability_per_field_branches[have6-want6-True] tests/server/mcpserver/test_server.py::TestServerTools::test_tool_structured_output_primitive [gw4] [ 64%] PASSED tests/server/test_apps.py::test_client_supports_apps_from_lowlevel_request_context[mime-types-key-missing] tests/interaction/lowlevel/test_prompts.py::test_get_prompt_multiple_messages_preserve_roles_and_order[streamable-http-2025-11-25] [gw11] [ 64%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have6-want6-True] tests/server/test_runner.py::test_runner_with_born_ready_connection_skips_init_gate tests/shared/test_auth_utils.py::test_resource_url_from_server_url_lowercase_scheme_and_host [gw6] [ 64%] PASSED tests/interaction/test_coverage.py::test_every_requirement_is_exercised tests/server/test_connection.py::test_check_capability_per_field_branches[have7-want7-False] tests/interaction/test_coverage.py::test_every_test_exercises_a_requirement [gw10] [ 64%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_lowercase_scheme_and_host [gw4] [ 64%] PASSED tests/server/test_runner.py::test_runner_with_born_ready_connection_skips_init_gate [gw11] [ 64%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have7-want7-False] [gw2] [ 64%] PASSED tests/server/mcpserver/test_extension.py::test_short_circuited_interceptor_result_carries_the_server_info_stamp tests/server/test_connection.py::test_check_capability_per_field_branches[have8-want8-False] tests/server/test_runner.py::test_server_add_request_handler_routes_custom_method_with_validated_params [gw6] [ 64%] PASSED tests/interaction/test_coverage.py::test_every_test_exercises_a_requirement [gw0] [ 64%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_create_resource [gw11] [ 64%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have8-want8-False] tests/interaction/test_coverage.py::test_deferral_reasons_cite_existing_paths tests/server/test_runner.py::test_runner_on_notify_drops_absent_params_when_model_requires_them tests/shared/test_auth_utils.py::test_resource_url_from_server_url_handles_pydantic_urls tests/server/mcpserver/test_extension.py::test_extension_subclass_without_prefixed_identifier_is_rejected_at_definition tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_template_error tests/server/test_connection.py::test_check_capability_per_field_branches[have9-want9-False] [gw4] [ 64%] PASSED tests/server/test_runner.py::test_server_add_request_handler_routes_custom_method_with_validated_params [gw6] [ 64%] PASSED tests/interaction/test_coverage.py::test_deferral_reasons_cite_existing_paths [gw2] [ 64%] PASSED tests/server/mcpserver/test_extension.py::test_extension_subclass_without_prefixed_identifier_is_rejected_at_definition tests/server/test_runner.py::test_runner_spec_method_with_invalid_params_is_invalid_params_at_the_negotiated_version tests/interaction/test_coverage.py::test_spec_versions_are_known_and_include_latest [gw3] [ 64%] PASSED tests/server/test_cancel_handling.py::test_server_remains_functional_after_cancel [gw11] [ 64%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have9-want9-False] [gw10] [ 64%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_handles_pydantic_urls tests/shared/test_auth_utils.py::test_check_resource_allowed_identical_urls [gw6] [ 64%] PASSED tests/interaction/test_coverage.py::test_spec_versions_are_known_and_include_latest tests/interaction/test_coverage.py::test_spec_base_urls_are_pinned_to_their_revision tests/server/test_connection.py::test_check_capability_per_field_branches[have10-want10-True] [gw4] [ 64%] PASSED tests/server/test_runner.py::test_runner_spec_method_with_invalid_params_is_invalid_params_at_the_negotiated_version [gw13] [ 64%] PASSED tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/resources/updated] tests/server/test_cancel_handling.py::test_server_cancels_in_flight_handlers_on_transport_close tests/server/mcpserver/test_extension.py::test_extension_without_identifier_is_rejected_at_registration [gw6] [ 64%] PASSED tests/interaction/test_coverage.py::test_spec_base_urls_are_pinned_to_their_revision tests/server/test_runner.py::test_runner_handler_returning_malformed_dict_for_spec_method_is_internal_error tests/interaction/test_coverage.py::test_connectable_transports_match_connect_factories [gw15] [ 65%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[same-client-no-subject] [gw2] [ 65%] PASSED tests/server/mcpserver/test_extension.py::test_extension_without_identifier_is_rejected_at_registration [gw10] [ 65%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_identical_urls [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_connectable_transports_match_connect_factories tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[different-issuer] tests/interaction/test_coverage.py::test_supersession_links_are_symmetric_and_versioned tests/shared/test_auth_utils.py::test_check_resource_allowed_different_schemes [gw7] [ 65%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_structured_output_primitive tests/server/mcpserver/test_extension.py::test_version_pinned_method_is_served_at_an_allowed_version [gw11] [ 65%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have10-want10-True] tests/server/test_connection.py::test_connection_check_capability_true_when_client_declares_it [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_supersession_links_are_symmetric_and_versioned [gw3] [ 65%] PASSED tests/server/test_cancel_handling.py::test_server_cancels_in_flight_handlers_on_transport_close tests/server/test_cancel_handling.py::test_server_handles_transport_close_with_pending_server_to_client_requests tests/interaction/test_coverage.py::test_removed_entry_has_disposition tests/server/test_runner.py::test_dual_era_loop_carries_the_sender_context_through_the_replay [gw5] [ 65%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_multiple_messages_preserve_roles_and_order[streamable-http-2025-11-25] [gw9] [ 65%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_over_streamable_http_runs_the_cleanup_too[legacy] tests/docs_src/test_cancellation.py::test_a_client_timeout_cancels_the_tool_the_same_way[auto] [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_removed_entry_has_disposition [gw10] [ 65%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_different_schemes [gw14] [ 65%] PASSED tests/server/mcpserver/test_resolve.py::test_resolver_runs_once_for_two_consumers tests/server/mcpserver/test_server.py::TestServerTools::test_tool_structured_output_list tests/interaction/test_coverage.py::test_transport_restriction_has_note [gw0] [ 65%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_template_error [gw13] [ 65%] PASSED tests/server/test_runner.py::test_dual_era_loop_carries_the_sender_context_through_the_replay [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_transport_restriction_has_note tests/interaction/lowlevel/test_prompts.py::test_get_prompt_multiple_messages_preserve_roles_and_order[streamable-http-stateless-2025-11-25] [gw2] [ 65%] PASSED tests/server/mcpserver/test_extension.py::test_version_pinned_method_is_served_at_an_allowed_version tests/interaction/test_coverage.py::test_every_arm_exclusion_targets_a_reachable_cell tests/shared/test_dispatcher.py::test_ctx_send_raw_request_raises_nobackchannelerror_when_transport_disallows[direct] [gw11] [ 65%] PASSED tests/server/test_connection.py::test_connection_check_capability_true_when_client_declares_it [gw3] [ 65%] PASSED tests/server/test_cancel_handling.py::test_server_handles_transport_close_with_pending_server_to_client_requests [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_every_arm_exclusion_targets_a_reachable_cell tests/interaction/test_coverage.py::test_every_known_failure_targets_a_reachable_cell tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_async_text_resource tests/server/mcpserver/test_resolve.py::test_sync_resolver [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_every_known_failure_targets_a_reachable_cell tests/server/mcpserver/test_extension.py::test_version_pinned_method_is_method_not_found_at_a_disallowed_version tests/server/test_extensions_capability.py::test_get_capabilities_omits_extensions_when_none_registered tests/server/test_completion_with_context.py::test_completion_handler_receives_context tests/interaction/test_coverage.py::test_unknown_requirement_id_is_rejected tests/server/test_runner.py::test_dual_era_loop_leading_notifications_never_decide_the_era [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_unknown_requirement_id_is_rejected [gw10] [ 65%] PASSED tests/shared/test_dispatcher.py::test_ctx_send_raw_request_raises_nobackchannelerror_when_transport_disallows[direct] [gw11] [ 65%] PASSED tests/server/test_extensions_capability.py::test_get_capabilities_omits_extensions_when_none_registered tests/shared/test_dispatcher.py::test_ctx_send_raw_request_raises_nobackchannelerror_when_transport_disallows[jsonrpc] tests/interaction/test_coverage.py::test_invalid_requirement_source_is_rejected [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_invalid_requirement_source_is_rejected tests/interaction/test_coverage.py::test_arm_exclusion_with_unknown_spec_version_is_rejected [gw8] [ 65%] PASSED tests/server/test_request_state_boundary.py::test_a_principal_binding_that_raises_fails_the_seal_as_an_internal_error tests/server/test_request_state_boundary.py::test_a_principal_binding_that_raises_fails_the_unseal_with_the_frozen_rejection [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_arm_exclusion_with_unknown_spec_version_is_rejected [gw4] [ 65%] PASSED tests/server/test_runner.py::test_runner_handler_returning_malformed_dict_for_spec_method_is_internal_error tests/server/test_runner.py::test_runner_handler_returning_typed_monolith_result_passes_outbound_validation [gw4] [ 65%] PASSED tests/server/test_runner.py::test_runner_handler_returning_typed_monolith_result_passes_outbound_validation tests/server/test_runner.py::test_runner_outbound_sieve_drops_2026_only_result_keys_at_a_pre_2026_version [gw0] [ 65%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_async_text_resource tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_async_binary_resource tests/interaction/test_coverage.py::test_known_failure_with_empty_note_is_rejected tests/server/test_extensions_capability.py::test_get_capabilities_advertises_populated_self_extensions [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_known_failure_with_empty_note_is_rejected [gw7] [ 65%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_structured_output_list [gw3] [ 65%] PASSED tests/server/test_completion_with_context.py::test_completion_handler_receives_context [gw11] [ 65%] PASSED tests/server/test_extensions_capability.py::test_get_capabilities_advertises_populated_self_extensions tests/interaction/test_coverage.py::test_known_failure_with_unknown_spec_version_is_rejected [gw13] [ 65%] PASSED tests/server/test_runner.py::test_dual_era_loop_leading_notifications_never_decide_the_era tests/server/test_completion_with_context.py::test_completion_backward_compatibility tests/server/mcpserver/test_server.py::TestServerTools::test_tool_structured_output_server_side_validation_error [gw4] [ 65%] PASSED tests/server/test_runner.py::test_runner_outbound_sieve_drops_2026_only_result_keys_at_a_pre_2026_version tests/server/test_runner.py::test_runner_outbound_sieve_drops_configured_cache_hints_at_a_pre_2026_version [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_known_failure_with_unknown_spec_version_is_rejected [gw0] [ 65%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_async_binary_resource [gw10] [ 65%] PASSED tests/shared/test_dispatcher.py::test_ctx_send_raw_request_raises_nobackchannelerror_when_transport_disallows[jsonrpc] tests/interaction/test_coverage.py::test_known_failure_with_malformed_issue_is_rejected [gw1] [ 65%] PASSED tests/server/test_request_state_boundary.py::test_a_non_string_principal_fails_closed_when_verifying [gw5] [ 65%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_multiple_messages_preserve_roles_and_order[streamable-http-stateless-2025-11-25] [gw2] [ 65%] PASSED tests/server/mcpserver/test_extension.py::test_version_pinned_method_is_method_not_found_at_a_disallowed_version tests/server/test_extensions_capability.py::test_modern_connection_carries_the_advertised_extensions_map tests/server/test_runner.py::test_dual_era_loop_treats_a_read_stream_closed_before_the_first_request_as_end_of_input [gw3] [ 65%] PASSED tests/server/test_completion_with_context.py::test_completion_backward_compatibility [gw4] [ 65%] PASSED tests/server/test_runner.py::test_runner_outbound_sieve_drops_configured_cache_hints_at_a_pre_2026_version [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_known_failure_with_malformed_issue_is_rejected tests/server/test_runner.py::test_runner_server_direction_spec_method_routes_to_a_registered_handler tests/server/test_completion_with_context.py::test_dependent_completion_scenario tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_basemodel_conversion tests/interaction/test_coverage.py::test_requirement_with_unknown_added_in_is_rejected tests/server/test_request_state_boundary.py::test_lone_surrogate_arguments_are_digested_not_crashed [gw13] [ 65%] PASSED tests/server/test_runner.py::test_dual_era_loop_treats_a_read_stream_closed_before_the_first_request_as_end_of_input tests/server/mcpserver/test_extension.py::test_method_binding_rejects_spec_methods[tools/list] tests/shared/test_dispatcher.py::test_ctx_notify_invokes_calling_side_on_notify[direct] [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_requirement_with_unknown_added_in_is_rejected [gw4] [ 65%] PASSED tests/server/test_runner.py::test_runner_server_direction_spec_method_routes_to_a_registered_handler [gw11] [ 65%] PASSED tests/server/test_extensions_capability.py::test_modern_connection_carries_the_advertised_extensions_map tests/interaction/test_coverage.py::test_requirement_with_unknown_removed_in_is_rejected tests/interaction/lowlevel/test_prompts.py::test_get_prompt_multiple_messages_preserve_roles_and_order[in-memory-2026-07-28] [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_requirement_with_unknown_removed_in_is_rejected tests/interaction/test_coverage.py::test_requirement_with_empty_version_range_is_rejected tests/server/test_runner.py::test_dual_era_loop_treats_a_read_stream_closed_mid_connection_as_end_of_input tests/server/test_extensions_capability.py::test_legacy_handshake_drops_the_extensions_map tests/server/test_runner.py::test_runner_spec_method_absent_at_the_negotiated_version_is_method_not_found [gw10] [ 65%] PASSED tests/shared/test_dispatcher.py::test_ctx_notify_invokes_calling_side_on_notify[direct] [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_requirement_with_empty_version_range_is_rejected [gw2] [ 65%] PASSED tests/server/mcpserver/test_extension.py::test_method_binding_rejects_spec_methods[tools/list] tests/server/mcpserver/test_extension.py::test_method_binding_rejects_spec_methods[completion/complete] [gw3] [ 65%] PASSED tests/server/test_completion_with_context.py::test_dependent_completion_scenario tests/interaction/test_coverage.py::test_compute_cells_with_no_requirements_yields_full_grid [gw13] [ 65%] PASSED tests/server/test_runner.py::test_dual_era_loop_treats_a_read_stream_closed_mid_connection_as_end_of_input [gw0] [ 65%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_basemodel_conversion tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_custom_type_conversion [gw5] [ 65%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_multiple_messages_preserve_roles_and_order[in-memory-2026-07-28] [gw6] [ 65%] PASSED tests/interaction/test_coverage.py::test_compute_cells_with_no_requirements_yields_full_grid tests/shared/test_dispatcher.py::test_ctx_notify_invokes_calling_side_on_notify[jsonrpc] tests/interaction/test_coverage.py::test_compute_cells_intersects_stacked_version_ranges [gw4] [ 65%] PASSED tests/server/test_runner.py::test_runner_spec_method_absent_at_the_negotiated_version_is_method_not_found tests/server/test_completion_with_context.py::test_completion_error_on_missing_context tests/server/test_runner.py::test_dual_era_client_propagates_body_exception_unwrapped [gw11] [ 66%] PASSED tests/server/test_extensions_capability.py::test_legacy_handshake_drops_the_extensions_map [gw2] [ 66%] PASSED tests/server/mcpserver/test_extension.py::test_method_binding_rejects_spec_methods[completion/complete] [gw6] [ 66%] PASSED tests/interaction/test_coverage.py::test_compute_cells_intersects_stacked_version_ranges tests/interaction/lowlevel/test_prompts.py::test_get_prompt_multiple_messages_preserve_roles_and_order[streamable-http-2026-07-28] tests/server/test_extensions_capability.py::test_server_accepts_capability_for_client_advertised_extension tests/server/test_runner.py::test_on_request_rejects_initialize_at_modern_version_with_method_not_found [gw14] [ 66%] PASSED tests/server/mcpserver/test_resolve.py::test_sync_resolver [gw13] [ 66%] PASSED tests/server/test_runner.py::test_dual_era_client_propagates_body_exception_unwrapped tests/server/mcpserver/test_extension.py::test_method_binding_rejects_empty_protocol_versions [gw4] [ 66%] PASSED tests/server/test_runner.py::test_on_request_rejects_initialize_at_modern_version_with_method_not_found [gw10] [ 66%] PASSED tests/shared/test_dispatcher.py::test_ctx_notify_invokes_calling_side_on_notify[jsonrpc] tests/server/mcpserver/test_resolve.py::test_cycle_detection_raises_at_registration [gw0] [ 66%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplate::test_custom_type_conversion [gw9] [ 66%] PASSED tests/docs_src/test_cancellation.py::test_a_client_timeout_cancels_the_tool_the_same_way[auto] [gw2] [ 66%] PASSED tests/server/mcpserver/test_extension.py::test_method_binding_rejects_empty_protocol_versions tests/shared/test_dispatcher.py::test_ctx_progress_invokes_caller_on_progress_callback[direct] tests/server/test_server_context.py::test_context_exposes_lifespan_and_connection_and_forwards_base_context tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplateAnnotations::test_template_with_annotations tests/server/test_runner.py::test_on_request_dispatches_custom_method_registered_via_add_request_handler [gw11] [ 66%] PASSED tests/server/test_extensions_capability.py::test_server_accepts_capability_for_client_advertised_extension tests/server/mcpserver/test_extension.py::test_colliding_extension_methods_are_rejected_at_registration tests/docs_src/test_cancellation.py::test_a_client_timeout_cancels_the_tool_the_same_way[legacy] [gw5] [ 66%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_multiple_messages_preserve_roles_and_order[streamable-http-2026-07-28] [gw10] [ 66%] PASSED tests/shared/test_dispatcher.py::test_ctx_progress_invokes_caller_on_progress_callback[direct] [gw15] [ 66%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[different-issuer] [gw0] [ 66%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplateAnnotations::test_template_with_annotations tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplateAnnotations::test_template_without_annotations tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[unauthenticated-creator] tests/server/test_extensions_capability.py::test_server_rejects_capability_for_undeclared_extension [gw14] [ 66%] PASSED tests/server/mcpserver/test_resolve.py::test_cycle_detection_raises_at_registration [gw2] [ 66%] PASSED tests/server/mcpserver/test_extension.py::test_colliding_extension_methods_are_rejected_at_registration tests/interaction/lowlevel/test_prompts.py::test_get_prompt_without_arguments_returns_the_messages[in-memory-2025-11-25] [gw13] [ 66%] PASSED tests/server/test_server_context.py::test_context_exposes_lifespan_and_connection_and_forwards_base_context [gw12] [ 66%] PASSED tests/server/test_runner.py::test_runner_on_notify_drops_absent_params_when_model_requires_them tests/shared/test_dispatcher.py::test_ctx_progress_invokes_caller_on_progress_callback[jsonrpc] [gw4] [ 66%] PASSED tests/server/test_runner.py::test_on_request_dispatches_custom_method_registered_via_add_request_handler tests/server/test_runner.py::test_runner_middleware_short_circuit_on_a_wrong_version_spec_method_skips_the_sieve tests/server/mcpserver/test_extension.py::test_require_client_extension_passes_when_client_declared_it tests/server/test_server_context.py::test_context_log_sends_request_scoped_message_notification tests/server/mcpserver/test_resolve.py::test_find_resolved_parameters_tolerates_unresolvable_hints [gw5] [ 66%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_without_arguments_returns_the_messages[in-memory-2025-11-25] [gw0] [ 66%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplateAnnotations::test_template_without_annotations tests/interaction/lowlevel/test_prompts.py::test_get_prompt_without_arguments_returns_the_messages[sse-2025-11-25] [gw14] [ 66%] PASSED tests/server/mcpserver/test_resolve.py::test_find_resolved_parameters_tolerates_unresolvable_hints [gw4] [ 66%] PASSED tests/server/test_runner.py::test_runner_middleware_short_circuit_on_a_wrong_version_spec_method_skips_the_sieve [gw13] [ 66%] PASSED tests/server/test_server_context.py::test_context_log_sends_request_scoped_message_notification tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplateAnnotations::test_template_annotations_in_mcpserver [gw10] [ 66%] PASSED tests/shared/test_dispatcher.py::test_ctx_progress_invokes_caller_on_progress_callback[jsonrpc] tests/server/test_runner.py::test_runner_absent_wire_params_reaches_request_handler_as_defaults_model tests/server/test_runner.py::test_runner_custom_method_result_is_not_surface_validated tests/server/test_server_context.py::test_context_log_is_gated_by_the_request_log_level_at_2026 tests/shared/test_dispatcher.py::test_ctx_progress_is_noop_when_caller_supplied_no_callback[direct] [gw11] [ 66%] PASSED tests/server/test_extensions_capability.py::test_server_rejects_capability_for_undeclared_extension tests/server/test_extensions_capability.py::test_server_rejects_capability_when_client_advertises_no_extensions [gw0] [ 66%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplateAnnotations::test_template_annotations_in_mcpserver tests/server/mcpserver/test_resolve.py::test_elicitation_result_alias_resolves_under_postponed_annotations tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplateAnnotations::test_template_created_resources_inherit_annotations [gw13] [ 66%] PASSED tests/server/test_server_context.py::test_context_log_is_gated_by_the_request_log_level_at_2026 [gw12] [ 66%] PASSED tests/server/test_runner.py::test_runner_absent_wire_params_reaches_request_handler_as_defaults_model [gw5] [ 66%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_without_arguments_returns_the_messages[sse-2025-11-25] [gw4] [ 66%] PASSED tests/server/test_runner.py::test_runner_custom_method_result_is_not_surface_validated [gw10] [ 66%] PASSED tests/shared/test_dispatcher.py::test_ctx_progress_is_noop_when_caller_supplied_no_callback[direct] tests/interaction/lowlevel/test_prompts.py::test_get_prompt_without_arguments_returns_the_messages[streamable-http-2025-11-25] [gw14] [ 66%] PASSED tests/server/mcpserver/test_resolve.py::test_elicitation_result_alias_resolves_under_postponed_annotations tests/server/test_runner.py::test_modern_short_circuit_middleware_owns_its_result_envelope tests/server/test_server_context.py::test_context_log_includes_logger_and_meta_when_supplied [gw0] [ 66%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplateAnnotations::test_template_created_resources_inherit_annotations tests/shared/test_dispatcher.py::test_ctx_progress_is_noop_when_caller_supplied_no_callback[jsonrpc] tests/server/test_runner.py::test_runner_absent_wire_params_for_required_params_custom_method_is_invalid_params tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplateMetadata::test_template_from_function_with_metadata tests/server/mcpserver/test_resolve.py::test_unresolvable_resolver_param_raises_at_registration [gw13] [ 66%] PASSED tests/server/test_server_context.py::test_context_log_includes_logger_and_meta_when_supplied [gw2] [ 66%] PASSED tests/server/mcpserver/test_extension.py::test_require_client_extension_passes_when_client_declared_it [gw11] [ 66%] PASSED tests/server/test_extensions_capability.py::test_server_rejects_capability_when_client_advertises_no_extensions [gw10] [ 66%] PASSED tests/shared/test_dispatcher.py::test_ctx_progress_is_noop_when_caller_supplied_no_callback[jsonrpc] [gw0] [ 66%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplateMetadata::test_template_from_function_with_metadata tests/server/test_session.py::test_send_request_forwards_timeout_and_progress_callback_as_call_options tests/server/mcpserver/test_server.py::TestServerPrompts::test_list_prompts [gw1] [ 66%] PASSED tests/server/test_request_state_boundary.py::test_lone_surrogate_arguments_are_digested_not_crashed tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplateMetadata::test_template_created_resources_inherit_metadata tests/server/test_fastmcp.py::test_importing_fastmcp_raises_module_not_found_that_points_at_the_migration_guide [gw4] [ 66%] PASSED tests/server/test_runner.py::test_modern_short_circuit_middleware_owns_its_result_envelope tests/server/test_runner.py::test_a_handler_authored_server_info_stamp_is_not_overwritten [gw7] [ 66%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_structured_output_server_side_validation_error [gw3] [ 66%] PASSED tests/server/test_completion_with_context.py::test_completion_error_on_missing_context tests/server/test_request_state_boundary.py::test_lone_surrogate_handler_state_seals_and_restores tests/shared/test_dispatcher.py::test_raising_on_progress_callback_is_logged_and_request_still_succeeds[direct] tests/server/mcpserver/test_server.py::TestServerTools::test_tool_structured_output_dict_str_any [gw5] [ 66%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_without_arguments_returns_the_messages[streamable-http-2025-11-25] [gw0] [ 66%] PASSED tests/server/mcpserver/resources/test_resource_template.py::TestResourceTemplateMetadata::test_template_created_resources_inherit_metadata [gw13] [ 66%] PASSED tests/server/test_session.py::test_send_request_forwards_timeout_and_progress_callback_as_call_options tests/server/test_sse_security.py::test_sse_transport_rejects_a_non_positive_body_limit[-1] tests/server/mcpserver/resources/test_resource_template.py::test_sync_fn_runs_in_worker_thread tests/interaction/lowlevel/test_prompts.py::test_get_prompt_without_arguments_returns_the_messages[streamable-http-stateless-2025-11-25] tests/server/test_session.py::test_send_request_omits_call_options_when_none_given [gw14] [ 66%] PASSED tests/server/mcpserver/test_resolve.py::test_unresolvable_resolver_param_raises_at_registration [gw3] [ 66%] PASSED tests/server/test_sse_security.py::test_sse_transport_rejects_a_non_positive_body_limit[-1] [gw0] [ 66%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_sync_fn_runs_in_worker_thread [gw11] [ 66%] PASSED tests/server/test_fastmcp.py::test_importing_fastmcp_raises_module_not_found_that_points_at_the_migration_guide [gw4] [ 66%] PASSED tests/server/test_runner.py::test_a_handler_authored_server_info_stamp_is_not_overwritten tests/server/test_runner.py::test_a_non_mapping_custom_result_meta_is_left_alone tests/server/test_sse_security.py::test_sse_round_trip_delivers_posted_messages_and_streams_responses [gw12] [ 66%] PASSED tests/server/test_runner.py::test_runner_absent_wire_params_for_required_params_custom_method_is_invalid_params tests/server/mcpserver/resources/test_resource_template.py::test_create_resource_passes_input_required_result_through_unchanged tests/server/test_fastmcp.py::test_importing_a_fastmcp_submodule_raises_the_parent_pointer [gw2] [ 66%] PASSED tests/server/mcpserver/test_server.py::TestServerPrompts::test_list_prompts [gw13] [ 66%] PASSED tests/server/test_session.py::test_send_request_omits_call_options_when_none_given tests/server/test_session.py::test_send_request_timeout_zero_is_forwarded tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_prompt [gw5] [ 66%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_without_arguments_returns_the_messages[streamable-http-stateless-2025-11-25] tests/server/mcpserver/test_resolve.py::test_multiple_elicit_arms_raise_at_registration tests/interaction/lowlevel/test_prompts.py::test_get_prompt_without_arguments_returns_the_messages[in-memory-2026-07-28] [gw13] [ 66%] PASSED tests/server/test_session.py::test_send_request_timeout_zero_is_forwarded [gw1] [ 66%] PASSED tests/server/test_request_state_boundary.py::test_lone_surrogate_handler_state_seals_and_restores [gw5] [ 66%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_without_arguments_returns_the_messages[in-memory-2026-07-28] tests/interaction/lowlevel/test_prompts.py::test_get_prompt_without_arguments_returns_the_messages[streamable-http-2026-07-28] [gw11] [ 67%] PASSED tests/server/test_fastmcp.py::test_importing_a_fastmcp_submodule_raises_the_parent_pointer tests/server/test_runner.py::test_runner_on_notify_drops_before_init_and_unknown_methods [gw4] [ 67%] PASSED tests/server/test_runner.py::test_a_non_mapping_custom_result_meta_is_left_alone [gw7] [ 67%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_structured_output_dict_str_any tests/server/mcpserver/test_server.py::TestServerTools::test_tool_structured_output_dict_str_typed tests/server/test_session.py::test_send_request_without_related_id_routes_to_standalone_channel [gw8] [ 67%] PASSED tests/server/test_request_state_boundary.py::test_a_principal_binding_that_raises_fails_the_unseal_with_the_frozen_rejection tests/server/test_request_state_boundary.py::test_two_mints_for_the_same_principal_carry_different_salted_principal_claims tests/server/test_runner.py::test_stamping_never_mutates_a_handler_retained_result_dict tests/server/test_request_state_boundary.py::test_lone_surrogate_principal_binds_and_verifies tests/server/test_fastmcp.py::test_v1_first_import_shim_falls_back_to_mcpserver [gw13] [ 67%] PASSED tests/server/test_session.py::test_send_request_without_related_id_routes_to_standalone_channel tests/server/test_session.py::test_send_request_with_related_id_routes_to_request_channel [gw9] [ 67%] PASSED tests/docs_src/test_cancellation.py::test_a_client_timeout_cancels_the_tool_the_same_way[legacy] [gw4] [ 67%] PASSED tests/server/test_runner.py::test_stamping_never_mutates_a_handler_retained_result_dict tests/server/test_runner.py::test_mutating_a_stamped_response_never_corrupts_later_stamps [gw2] [ 67%] PASSED tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_prompt tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_prompt_with_description [gw0] [ 67%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_create_resource_passes_input_required_result_through_unchanged tests/server/mcpserver/resources/test_resource_template.py::test_template_return_annotation_is_not_run_through_tool_output_schema_derivation [gw8] [ 67%] PASSED tests/server/test_request_state_boundary.py::test_two_mints_for_the_same_principal_carry_different_salted_principal_claims tests/docs_src/test_cancellation.py::test_check_cancelled_stops_a_def_tool_at_its_next_check[auto] [gw5] [ 67%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_without_arguments_returns_the_messages[streamable-http-2026-07-28] tests/interaction/lowlevel/test_prompts.py::test_get_prompt_with_non_text_content_round_trips[in-memory-2025-11-25] [gw11] [ 67%] PASSED tests/server/test_fastmcp.py::test_v1_first_import_shim_falls_back_to_mcpserver [gw14] [ 67%] PASSED tests/server/mcpserver/test_resolve.py::test_multiple_elicit_arms_raise_at_registration tests/server/mcpserver/test_resolve.py::test_resolve_marker_inside_a_union_raises_at_registration [gw14] [ 67%] PASSED tests/server/mcpserver/test_resolve.py::test_resolve_marker_inside_a_union_raises_at_registration tests/server/test_request_state_boundary.py::test_two_servers_sharing_a_key_reject_each_others_state_via_the_name_audience [gw4] [ 67%] PASSED tests/server/test_runner.py::test_mutating_a_stamped_response_never_corrupts_later_stamps [gw5] [ 67%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_with_non_text_content_round_trips[in-memory-2025-11-25] tests/interaction/test_coverage.py::test_compute_cells_drops_era_locked_transport_outside_its_versions [gw0] [ 67%] PASSED tests/server/mcpserver/resources/test_resource_template.py::test_template_return_annotation_is_not_run_through_tool_output_schema_derivation tests/server/test_runner.py::test_a_claimed_result_type_on_a_legacy_session_is_sieved_not_leaked tests/interaction/lowlevel/test_prompts.py::test_get_prompt_with_non_text_content_round_trips[sse-2025-11-25] tests/server/mcpserver/test_resolve.py::test_bare_elicitation_result_alias_wants_the_outcome_union [gw1] [ 67%] PASSED tests/server/test_request_state_boundary.py::test_lone_surrogate_principal_binds_and_verifies [gw6] [ 67%] PASSED tests/interaction/test_coverage.py::test_compute_cells_drops_era_locked_transport_outside_its_versions tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[com.example/my_ext] tests/server/test_lifespan.py::test_lowlevel_server_lifespan [gw14] [ 67%] PASSED tests/server/mcpserver/test_resolve.py::test_bare_elicitation_result_alias_wants_the_outcome_union [gw13] [ 67%] PASSED tests/server/test_session.py::test_send_request_with_related_id_routes_to_request_channel tests/server/test_session.py::test_send_notification_routes_by_related_request_id [gw13] [ 67%] PASSED tests/server/test_session.py::test_send_notification_routes_by_related_request_id tests/server/mcpserver/resources/test_resources.py::TestResourceValidation::test_resource_uri_accepts_any_string tests/server/test_session.py::test_send_log_message_drops_everything_without_a_log_level_opt_in_at_2026 tests/server/test_request_state_boundary.py::test_a_fractional_mint_instant_keeps_the_full_ttl [gw2] [ 67%] PASSED tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_prompt_with_description tests/server/mcpserver/test_resolve.py::test_resolve_marker_on_return_annotation_is_ignored [gw9] [ 67%] PASSED tests/docs_src/test_cancellation.py::test_check_cancelled_stops_a_def_tool_at_its_next_check[auto] [gw7] [ 67%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_tool_structured_output_dict_str_typed [gw13] [ 67%] PASSED tests/server/test_session.py::test_send_log_message_drops_everything_without_a_log_level_opt_in_at_2026 tests/server/test_session.py::test_send_log_message_drops_levels_below_the_requested_one_at_2026 tests/server/mcpserver/test_server.py::TestServerTools::test_remove_tool [gw10] [ 67%] PASSED tests/shared/test_dispatcher.py::test_raising_on_progress_callback_is_logged_and_request_still_succeeds[direct] tests/shared/test_dispatcher.py::test_raising_on_progress_callback_is_logged_and_request_still_succeeds[jsonrpc] tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_prompt_with_docstring_description [gw14] [ 67%] PASSED tests/server/mcpserver/test_resolve.py::test_resolve_marker_on_return_annotation_is_ignored [gw11] [ 67%] PASSED tests/server/test_lifespan.py::test_lowlevel_server_lifespan [gw0] [ 67%] PASSED tests/server/mcpserver/resources/test_resources.py::TestResourceValidation::test_resource_uri_accepts_any_string tests/server/mcpserver/resources/test_resources.py::TestResourceValidation::test_resource_name_from_uri [gw13] [ 67%] PASSED tests/server/test_session.py::test_send_log_message_drops_levels_below_the_requested_one_at_2026 tests/server/test_session.py::test_send_log_message_is_request_scoped_at_2026_even_without_related_request_id [gw5] [ 67%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_with_non_text_content_round_trips[sse-2025-11-25] tests/interaction/lowlevel/test_prompts.py::test_get_prompt_with_non_text_content_round_trips[streamable-http-2025-11-25] tests/docs_src/test_cancellation.py::test_check_cancelled_stops_a_def_tool_at_its_next_check[legacy] [gw13] [ 67%] PASSED tests/server/test_session.py::test_send_log_message_is_request_scoped_at_2026_even_without_related_request_id [gw6] [ 67%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[com.example/my_ext] tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[com.x-y.z2/n.a-b_c] tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes tests/server/test_session.py::test_send_log_message_on_a_handshake_version_still_routes_by_related_request_id [gw13] [ 67%] PASSED tests/server/test_session.py::test_send_log_message_on_a_handshake_version_still_routes_by_related_request_id tests/server/test_session.py::test_report_progress_delegates_to_the_request_dispatch_context [gw0] [ 67%] PASSED tests/server/mcpserver/resources/test_resources.py::TestResourceValidation::test_resource_name_from_uri tests/server/test_lifespan.py::test_mcpserver_server_lifespan [gw8] [ 67%] PASSED tests/server/test_request_state_boundary.py::test_two_servers_sharing_a_key_reject_each_others_state_via_the_name_audience tests/server/test_request_state_boundary.py::test_audience_presence_drift_is_rejected_in_both_directions tests/server/mcpserver/resources/test_resources.py::TestResourceValidation::test_resource_name_validation [gw0] [ 67%] PASSED tests/server/mcpserver/resources/test_resources.py::TestResourceValidation::test_resource_name_validation tests/server/mcpserver/resources/test_resources.py::TestResourceValidation::test_resource_mime_type [gw6] [ 67%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[com.x-y.z2/n.a-b_c] tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[example/x] [gw6] [ 67%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[example/x] tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[a/b] [gw4] [ 67%] PASSED tests/server/test_runner.py::test_a_claimed_result_type_on_a_legacy_session_is_sieved_not_leaked tests/server/test_runner.py::test_a_handshake_era_custom_result_gains_no_discriminator [gw4] [ 67%] PASSED tests/server/test_runner.py::test_a_handshake_era_custom_result_gains_no_discriminator tests/server/test_runner.py::test_an_explicit_null_result_type_is_filled_on_the_modern_path [gw4] [ 67%] PASSED tests/server/test_runner.py::test_an_explicit_null_result_type_is_filled_on_the_modern_path tests/server/test_runner.py::test_a_claimed_extension_result_type_bypasses_the_sieve_and_is_stamped [gw13] [ 67%] PASSED tests/server/test_session.py::test_report_progress_delegates_to_the_request_dispatch_context tests/server/test_session.py::test_send_request_validates_the_client_result_against_the_surface_schema [gw10] [ 67%] PASSED tests/shared/test_dispatcher.py::test_raising_on_progress_callback_is_logged_and_request_still_succeeds[jsonrpc] [gw2] [ 67%] PASSED tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_prompt_with_docstring_description tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_prompt_with_resource [gw7] [ 67%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_remove_tool tests/server/mcpserver/test_server.py::TestServerTools::test_remove_nonexistent_tool [gw7] [ 67%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_remove_nonexistent_tool tests/shared/test_dispatcher.py::test_ctx_message_metadata_is_none_when_transport_attaches_nothing[direct] [gw13] [ 67%] PASSED tests/server/test_session.py::test_send_request_validates_the_client_result_against_the_surface_schema tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example:8080/mcp-http://mcp.example:8080/v2/mcp] [gw10] [ 67%] PASSED tests/shared/test_dispatcher.py::test_ctx_message_metadata_is_none_when_transport_attaches_nothing[direct] [gw4] [ 67%] PASSED tests/server/test_runner.py::test_a_claimed_extension_result_type_bypasses_the_sieve_and_is_stamped [gw0] [ 67%] PASSED tests/server/mcpserver/resources/test_resources.py::TestResourceValidation::test_resource_mime_type tests/shared/test_dispatcher.py::test_ctx_message_metadata_is_none_when_transport_attaches_nothing[jsonrpc] tests/server/test_runner.py::test_an_empty_result_on_the_modern_path_carries_the_discriminator_and_stamp [gw2] [ 67%] PASSED tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_prompt_with_resource tests/server/mcpserver/test_server.py::TestServerTools::test_remove_tool_and_list [gw12] [ 67%] PASSED tests/server/test_runner.py::test_runner_on_notify_drops_before_init_and_unknown_methods [gw5] [ 67%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_with_non_text_content_round_trips[streamable-http-2025-11-25] [gw10] [ 67%] PASSED tests/shared/test_dispatcher.py::test_ctx_message_metadata_is_none_when_transport_attaches_nothing[jsonrpc] [gw4] [ 67%] PASSED tests/server/test_runner.py::test_an_empty_result_on_the_modern_path_carries_the_discriminator_and_stamp tests/server/test_runner.py::test_runner_server_middleware_wraps_every_request_including_initialize [gw11] [ 67%] PASSED tests/server/test_lifespan.py::test_mcpserver_server_lifespan tests/server/mcpserver/resources/test_resources.py::TestResourceValidation::test_resource_read_abstract tests/server/test_lowlevel_exception_handling.py::test_server_run_exits_cleanly_when_transport_yields_exception_then_closes [gw6] [ 67%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[a/b] tests/server/test_runner.py::test_runner_initialize_result_reflects_init_options tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[direct] [gw4] [ 68%] PASSED tests/server/test_runner.py::test_runner_initialize_result_reflects_init_options tests/server/test_runner.py::test_runner_initialize_echoes_supported_version_and_falls_back_to_latest [gw4] [ 68%] PASSED tests/server/test_runner.py::test_runner_initialize_echoes_supported_version_and_falls_back_to_latest [gw10] [ 68%] PASSED tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[direct] tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[jsonrpc] [gw10] [ 68%] PASSED tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[jsonrpc] tests/shared/test_dispatcher.py::test_direct_send_raw_request_wraps_non_mcperror_exception_as_internal_error_with_cause [gw0] [ 68%] PASSED tests/server/mcpserver/resources/test_resources.py::TestResourceValidation::test_resource_read_abstract [gw3] [ 68%] PASSED tests/server/test_sse_security.py::test_sse_round_trip_delivers_posted_messages_and_streams_responses tests/server/test_stateless_mode.py::test_list_roots_raises_no_back_channel [gw12] [ 68%] PASSED tests/server/test_runner.py::test_runner_server_middleware_wraps_every_request_including_initialize tests/interaction/lowlevel/test_prompts.py::test_get_prompt_with_non_text_content_round_trips[streamable-http-stateless-2025-11-25] tests/server/test_runner.py::test_runner_connection_exit_stack_unwinds_after_run_returns tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_unknown_prompt [gw7] [ 68%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_remove_tool_and_list tests/server/mcpserver/test_server.py::TestServerTools::test_remove_tool_and_call [gw11] [ 68%] PASSED tests/server/test_lowlevel_exception_handling.py::test_server_run_exits_cleanly_when_transport_yields_exception_then_closes tests/server/test_lowlevel_tool_annotations.py::test_lowlevel_server_tool_annotations [gw10] [ 68%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_wraps_non_mcperror_exception_as_internal_error_with_cause tests/shared/test_dispatcher.py::test_direct_send_raw_request_issued_before_peer_run_blocks_until_peer_ready tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[com.example/9start] tests/server/test_runner.py::test_runner_middleware_raise_after_call_next_on_initialize_leaves_connection_uninitialized tests/server/mcpserver/resources/test_resources.py::TestResourceAnnotations::test_resource_with_annotations [gw13] [ 68%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example:8080/mcp-http://mcp.example:8080/v2/mcp] [gw4] [ 68%] PASSED tests/server/test_runner.py::test_runner_connection_exit_stack_unwinds_after_run_returns [gw10] [ 68%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_issued_before_peer_run_blocks_until_peer_ready [gw15] [ 68%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[unauthenticated-creator] tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[same-client] tests/server/test_runner.py::test_runner_exit_stack_cleanup_exception_is_logged_not_propagated tests/shared/test_dispatcher.py::test_direct_send_raw_request_before_run_raises_runtimeerror [gw0] [ 68%] PASSED tests/server/mcpserver/resources/test_resources.py::TestResourceAnnotations::test_resource_with_annotations [gw12] [ 68%] PASSED tests/server/test_runner.py::test_runner_middleware_raise_after_call_next_on_initialize_leaves_connection_uninitialized [gw6] [ 68%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[com.example/9start] [gw10] [ 68%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_before_run_raises_runtimeerror tests/shared/test_dispatcher.py::test_direct_send_raw_request_to_never_run_peer_honors_timeout tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[noprefix] [gw3] [ 68%] PASSED tests/server/test_stateless_mode.py::test_list_roots_raises_no_back_channel [gw10] [ 68%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_to_never_run_peer_honors_timeout tests/server/test_runner.py::test_runner_server_middleware_observes_method_not_found_via_call_next_raise [gw11] [ 68%] PASSED tests/server/test_lowlevel_tool_annotations.py::test_lowlevel_server_tool_annotations tests/shared/test_dispatcher.py::test_direct_request_parked_waiting_for_peer_run_is_woken_by_peer_close tests/server/test_stateless_mode.py::test_send_ping_raises_no_back_channel tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[jsonrpc] tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://MCP.EXAMPLE:80/mcp/] tests/server/test_otel.py::test_server_ships_opentelemetry_middleware_by_default [gw12] [ 68%] PASSED tests/server/test_runner.py::test_runner_server_middleware_observes_method_not_found_via_call_next_raise [gw8] [ 68%] PASSED tests/server/test_request_state_boundary.py::test_audience_presence_drift_is_rejected_in_both_directions [gw11] [ 68%] PASSED tests/server/test_otel.py::test_server_ships_opentelemetry_middleware_by_default tests/server/test_otel.py::test_emits_server_span_with_method_and_target [gw13] [ 68%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://MCP.EXAMPLE:80/mcp/] tests/server/test_request_state_boundary.py::test_an_explicit_policy_audience_overrides_the_server_name_default [gw7] [ 68%] PASSED tests/server/mcpserver/test_server.py::TestServerTools::test_remove_tool_and_call tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-https://mcp.example:443/mcp] [gw6] [ 68%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[noprefix] tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[-foo/bar] tests/server/test_runner.py::test_runner_server_middleware_wraps_notifications [gw3] [ 68%] PASSED tests/server/test_stateless_mode.py::test_send_ping_raises_no_back_channel tests/server/test_stateless_mode.py::test_create_message_raises_no_back_channel_without_related_id [gw8] [ 68%] PASSED tests/server/test_request_state_boundary.py::test_an_explicit_policy_audience_overrides_the_server_name_default tests/server/test_request_state_boundary.py::test_claims_envelope_carries_the_documented_fields_and_omits_p_when_unbound [gw15] [ 68%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[same-client] [gw13] [ 68%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-https://mcp.example:443/mcp] [gw5] [ 68%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_with_non_text_content_round_trips[streamable-http-stateless-2025-11-25] [gw6] [ 68%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[-foo/bar] tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[same-client-and-subject] [gw1] [ 68%] PASSED tests/server/test_request_state_boundary.py::test_a_fractional_mint_instant_keeps_the_full_ttl [gw9] [ 68%] PASSED tests/docs_src/test_cancellation.py::test_check_cancelled_stops_a_def_tool_at_its_next_check[legacy] tests/server/mcpserver/test_server.py::test_typeddict_tool_omitting_optional_keys_passes_client_validation [gw4] [ 68%] PASSED tests/server/test_runner.py::test_runner_exit_stack_cleanup_exception_is_logged_not_propagated tests/server/test_request_state_boundary.py::test_default_principal_distinguishes_two_subjects_of_one_oauth_client tests/server/test_runner.py::test_runner_exit_stack_blocking_cleanup_abandoned_after_grace tests/interaction/lowlevel/test_prompts.py::test_get_prompt_with_non_text_content_round_trips[in-memory-2026-07-28] [gw8] [ 68%] PASSED tests/server/test_request_state_boundary.py::test_claims_envelope_carries_the_documented_fields_and_omits_p_when_unbound tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[.leading/x] [gw6] [ 68%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[.leading/x] tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[a..b/x] tests/server/test_request_state_boundary.py::test_each_round_is_resealed_with_a_fresh_token_and_a_restamped_iat tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://other.example/mcp] tests/server/test_runner.py::test_serve_one_runs_handler_and_returns_result_dict [gw9] [ 68%] PASSED tests/server/test_runner.py::test_serve_one_runs_handler_and_returns_result_dict [gw0] [ 68%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[jsonrpc] tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[direct] [gw13] [ 68%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://other.example/mcp] tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://mcp.example:8080/mcp] [gw6] [ 68%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[a..b/x] [gw11] [ 68%] PASSED tests/server/test_otel.py::test_emits_server_span_with_method_and_target [gw8] [ 68%] PASSED tests/server/test_request_state_boundary.py::test_each_round_is_resealed_with_a_fresh_token_and_a_restamped_iat [gw3] [ 68%] PASSED tests/server/test_stateless_mode.py::test_create_message_raises_no_back_channel_without_related_id [gw5] [ 68%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_with_non_text_content_round_trips[in-memory-2026-07-28] tests/interaction/lowlevel/test_prompts.py::test_get_prompt_with_non_text_content_round_trips[streamable-http-2026-07-28] tests/server/test_request_state_boundary.py::test_an_mcpserver_seals_request_state_by_default [gw15] [ 68%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[same-client-and-subject] tests/server/test_otel.py::test_tool_error_dict_result_sets_error_type tests/server/test_stateless_mode.py::test_elicit_form_raises_no_back_channel_without_related_id tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[both-unauthenticated] [gw7] [ 68%] PASSED tests/server/mcpserver/test_server.py::test_typeddict_tool_omitting_optional_keys_passes_client_validation tests/server/test_runner.py::test_serve_one_propagates_error_and_still_closes_exit_stack [gw0] [ 68%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[direct] tests/server/mcpserver/test_server.py::test_prompt_reads_input_responses_and_request_state_from_context_on_retry tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo-/x] [gw5] [ 68%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_with_non_text_content_round_trips[streamable-http-2026-07-28] [gw13] [ 68%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://mcp.example:8080/mcp] tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[jsonrpc] [gw2] [ 68%] PASSED tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_unknown_prompt [gw4] [ 68%] PASSED tests/server/test_runner.py::test_runner_exit_stack_blocking_cleanup_abandoned_after_grace tests/server/test_runner.py::test_runner_exit_stack_fast_cleanup_completes_within_grace tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://sub.mcp.example/mcp] tests/interaction/lowlevel/test_prompts.py::test_get_prompt_unknown_name_is_protocol_error[in-memory-2025-11-25] [gw9] [ 68%] PASSED tests/server/test_runner.py::test_serve_one_propagates_error_and_still_closes_exit_stack tests/server/test_runner.py::test_serve_one_reads_connection_protocol_version_as_a_fact [gw6] [ 68%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo-/x] tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[9foo/x] tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_prompt_missing_args [gw4] [ 68%] PASSED tests/server/test_runner.py::test_runner_exit_stack_fast_cleanup_completes_within_grace tests/server/test_runner.py::test_aclose_shielded_runs_callbacks_under_outer_cancellation [gw3] [ 68%] PASSED tests/server/test_stateless_mode.py::test_elicit_form_raises_no_back_channel_without_related_id [gw6] [ 68%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[9foo/x] [gw9] [ 68%] PASSED tests/server/test_runner.py::test_serve_one_reads_connection_protocol_version_as_a_fact tests/server/test_stateless_mode.py::test_elicit_url_raises_no_back_channel_without_related_id [gw10] [ 69%] PASSED tests/shared/test_dispatcher.py::test_direct_request_parked_waiting_for_peer_run_is_woken_by_peer_close [gw4] [ 69%] PASSED tests/server/test_runner.py::test_aclose_shielded_runs_callbacks_under_outer_cancellation [gw5] [ 69%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_unknown_name_is_protocol_error[in-memory-2025-11-25] tests/shared/test_dispatcher.py::test_direct_send_raw_request_after_local_close_raises_and_notify_is_dropped [gw11] [ 69%] PASSED tests/server/test_otel.py::test_tool_error_dict_result_sets_error_type tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-version] [gw13] [ 69%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://sub.mcp.example/mcp] [gw15] [ 69%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[both-unauthenticated] tests/interaction/lowlevel/test_prompts.py::test_get_prompt_unknown_name_is_protocol_error[sse-2025-11-25] tests/server/test_sse_security.py::test_sse_connect_rejects_a_non_http_scope [gw4] [ 69%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-version] tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/-bar] tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[https://mcp.example:8443/mcp] tests/server/test_runner.py::test_serve_connection_drives_dispatcher_loop_and_tears_down tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-client-caps] [gw8] [ 69%] PASSED tests/server/test_request_state_boundary.py::test_an_mcpserver_seals_request_state_by_default tests/server/test_request_state_boundary.py::test_the_default_key_is_per_instance_so_servers_never_cross_accept [gw12] [ 69%] PASSED tests/server/test_runner.py::test_runner_server_middleware_wraps_notifications [gw7] [ 69%] PASSED tests/server/mcpserver/test_server.py::test_prompt_reads_input_responses_and_request_state_from_context_on_retry [gw4] [ 69%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-client-caps] tests/server/test_otel.py::test_tool_error_model_result_sets_error_type tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-both] [gw6] [ 69%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/-bar] [gw1] [ 69%] PASSED tests/server/test_request_state_boundary.py::test_default_principal_distinguishes_two_subjects_of_one_oauth_client [gw10] [ 69%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_after_local_close_raises_and_notify_is_dropped [gw4] [ 69%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-both] [gw13] [ 69%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[https://mcp.example:8443/mcp] [gw0] [ 69%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[jsonrpc] tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[direct] tests/shared/test_inbound.py::test_envelope_rung_accepts_pair_only_envelope_without_client_info tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/bar-] tests/server/mcpserver/test_server.py::test_prompt_with_parameterized_context_reads_input_responses_on_retry tests/server/test_runner.py::test_extract_meta_returns_none_for_absent_or_malformed [gw12] [ 69%] PASSED tests/server/test_runner.py::test_extract_meta_returns_none_for_absent_or_malformed tests/server/test_request_state_boundary.py::test_a_shared_key_policy_without_a_real_name_must_set_an_audience[unnamed] [gw9] [ 69%] PASSED tests/server/test_runner.py::test_serve_connection_drives_dispatcher_loop_and_tears_down [gw4] [ 69%] PASSED tests/shared/test_inbound.py::test_envelope_rung_accepts_pair_only_envelope_without_client_info [gw3] [ 69%] PASSED tests/server/test_stateless_mode.py::test_elicit_url_raises_no_back_channel_without_related_id [gw1] [ 69%] PASSED tests/server/test_request_state_boundary.py::test_a_shared_key_policy_without_a_real_name_must_set_an_audience[unnamed] tests/server/test_runner.py::test_dual_era_loop_discover_locks_modern_and_serves_envelope_requests tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[params-none] [gw4] [ 69%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[params-none] tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-none] tests/shared/test_dispatcher.py::test_direct_inbound_after_peer_close_refuses_requests_and_drops_notifications tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[ftp://mcp.example/mcp] [gw13] [ 69%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[ftp://mcp.example/mcp] tests/server/test_request_state_boundary.py::test_a_shared_key_policy_without_a_real_name_must_set_an_audience[empty-string] tests/server/test_runner.py::test_extract_meta_round_trips_through_dump_params [gw12] [ 69%] PASSED tests/server/test_runner.py::test_extract_meta_round_trips_through_dump_params tests/server/test_runner.py::test_runner_server_middleware_runs_outermost_first [gw6] [ 69%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/bar-] tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/] [gw1] [ 69%] PASSED tests/server/test_request_state_boundary.py::test_a_shared_key_policy_without_a_real_name_must_set_an_audience[empty-string] [gw4] [ 69%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-none] tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-non-mapping] tests/server/test_stateless_mode.py::test_elicit_deprecated_raises_no_back_channel_without_related_id [gw0] [ 69%] PASSED tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[direct] [gw4] [ 69%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-non-mapping] tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[301] tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[int] [gw10] [ 69%] PASSED tests/shared/test_dispatcher.py::test_direct_inbound_after_peer_close_refuses_requests_and_drops_notifications [gw6] [ 69%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/] [gw15] [ 69%] PASSED tests/server/test_sse_security.py::test_sse_connect_rejects_a_non_http_scope [gw11] [ 69%] PASSED tests/server/test_otel.py::test_tool_error_model_result_sets_error_type [gw4] [ 69%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[int] tests/server/test_runner.py::test_connected_runner_propagates_body_exception_unwrapped tests/shared/test_dispatcher.py::test_direct_inbound_to_closed_never_run_peer_fails_with_connection_closed [gw9] [ 69%] PASSED tests/server/test_runner.py::test_dual_era_loop_discover_locks_modern_and_serves_envelope_requests tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[null] [gw13] [ 69%] PASSED tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[301] [gw12] [ 69%] PASSED tests/server/test_runner.py::test_runner_server_middleware_runs_outermost_first tests/server/test_sse_security.py::test_sse_connect_rejects_a_disallowed_host [gw4] [ 69%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[null] [gw7] [ 69%] PASSED tests/server/mcpserver/test_server.py::test_prompt_with_parameterized_context_reads_input_responses_on_retry tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[/bar] tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[list] [gw1] [ 69%] PASSED tests/server/test_runner.py::test_connected_runner_propagates_body_exception_unwrapped tests/server/test_otel.py::test_snake_case_dict_result_is_not_a_tool_error tests/server/test_runner.py::test_dual_era_loop_pinned_modern_request_locks_without_a_probe [gw3] [ 69%] PASSED tests/server/test_stateless_mode.py::test_elicit_deprecated_raises_no_back_channel_without_related_id tests/server/test_stateless_mode.py::test_send_request_raises_no_back_channel_without_related_id [gw4] [ 69%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[list] tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[302] tests/server/test_runner.py::test_runner_handler_returning_none_yields_empty_result tests/server/test_runner.py::test_runner_handles_initialize_and_populates_connection [gw10] [ 69%] PASSED tests/shared/test_dispatcher.py::test_direct_inbound_to_closed_never_run_peer_fails_with_connection_closed tests/server/mcpserver/test_server.py::test_prompt_input_required_result_on_legacy_session_is_a_serialization_error [gw8] [ 69%] PASSED tests/server/test_request_state_boundary.py::test_the_default_key_is_per_instance_so_servers_never_cross_accept tests/shared/test_inbound.py::test_non_string_protocol_version_over_http_still_rejects_at_the_header_rung [gw4] [ 69%] PASSED tests/shared/test_inbound.py::test_non_string_protocol_version_over_http_still_rejects_at_the_header_rung tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[jsonrpc] tests/server/test_request_state_boundary.py::test_a_boundary_free_lowlevel_server_passes_request_state_through_verbatim tests/shared/test_dispatcher.py::test_direct_send_raw_request_and_notify_raise_runtimeerror_when_no_peer_connected tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[int] [gw9] [ 69%] PASSED tests/server/test_runner.py::test_dual_era_loop_pinned_modern_request_locks_without_a_probe [gw5] [ 69%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_unknown_name_is_protocol_error[sse-2025-11-25] [gw4] [ 69%] PASSED tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[int] [gw1] [ 69%] PASSED tests/server/test_runner.py::test_runner_handles_initialize_and_populates_connection [gw6] [ 69%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[/bar] tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/ba r] [gw12] [ 69%] PASSED tests/server/test_runner.py::test_runner_handler_returning_none_yields_empty_result [gw13] [ 69%] PASSED tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[302] [gw8] [ 69%] PASSED tests/server/test_request_state_boundary.py::test_a_boundary_free_lowlevel_server_passes_request_state_through_verbatim tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[null] tests/server/test_request_state_boundary.py::test_non_string_inbound_request_state_is_rejected_with_the_frozen_error [gw3] [ 69%] PASSED tests/server/test_stateless_mode.py::test_send_request_raises_no_back_channel_without_related_id tests/server/test_runner.py::test_dual_era_loop_initialize_after_modern_lock_without_a_parseable_version [gw4] [ 69%] PASSED tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[null] [gw11] [ 69%] PASSED tests/server/test_otel.py::test_snake_case_dict_result_is_not_a_tool_error tests/interaction/lowlevel/test_prompts.py::test_get_prompt_unknown_name_is_protocol_error[streamable-http-2025-11-25] tests/server/test_runner.py::test_runner_initialize_opens_gate_but_event_fires_only_after_initialized_notification [gw6] [ 69%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/ba r] [gw10] [ 69%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_and_notify_raise_runtimeerror_when_no_peer_connected tests/shared/test_dispatcher.py::test_direct_close_makes_run_return tests/shared/test_inbound.py::test_version_rung_rejects_unsupported_with_data_shape tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[303] tests/server/test_runner.py::test_runner_handler_returning_error_data_produces_jsonrpc_error [gw1] [ 69%] PASSED tests/server/test_runner.py::test_runner_initialize_opens_gate_but_event_fires_only_after_initialized_notification [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_version_rung_rejects_unsupported_with_data_shape [gw13] [ 70%] PASSED tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[303] tests/server/test_stateless_mode.py::test_elicit_form_with_related_id_rides_the_request_channel tests/shared/test_inbound.py::test_version_rung_data_reflects_supplied_supported_list tests/server/test_otel.py::test_named_non_tool_prompt_method_omits_gen_ai_attrs [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_version_rung_data_reflects_supplied_supported_list tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[io.modelcontextprotocol/ui\n] [gw0] [ 70%] PASSED tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[jsonrpc] tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[direct] tests/server/test_runner.py::test_runner_gates_requests_before_initialize tests/shared/test_inbound.py::test_unsupported_protocol_version_rejection_is_the_version_rung_standalone [gw12] [ 70%] PASSED tests/server/test_runner.py::test_runner_handler_returning_error_data_produces_jsonrpc_error [gw10] [ 70%] PASSED tests/shared/test_dispatcher.py::test_direct_close_makes_run_return [gw3] [ 70%] PASSED tests/server/test_stateless_mode.py::test_elicit_form_with_related_id_rides_the_request_channel [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_unsupported_protocol_version_rejection_is_the_version_rung_standalone tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[direct] tests/shared/test_inbound.py::test_header_rung_does_not_reject_when_headers_arg_is_none [gw9] [ 70%] PASSED tests/server/test_runner.py::test_dual_era_loop_initialize_after_modern_lock_without_a_parseable_version [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_reject_when_headers_arg_is_none tests/shared/test_inbound.py::test_header_rung_passes_when_header_matches_envelope [gw0] [ 70%] PASSED tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[direct] [gw6] [ 70%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[io.modelcontextprotocol/ui\n] tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[] tests/server/test_runner.py::test_runner_server_middleware_observes_handler_error_data_as_mcp_error [gw1] [ 70%] PASSED tests/server/test_runner.py::test_runner_gates_requests_before_initialize tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[301] [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_header_rung_passes_when_header_matches_envelope [gw10] [ 70%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[direct] [gw13] [ 70%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[301] tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[mismatch] [gw6] [ 70%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[] tests/server/test_runner.py::test_runner_unknown_method_before_initialize_raises_method_not_found tests/server/test_runner.py::test_dual_era_loop_initialize_locks_legacy_and_rejects_modern_traffic [gw8] [ 70%] PASSED tests/server/test_request_state_boundary.py::test_non_string_inbound_request_state_is_rejected_with_the_frozen_error [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[mismatch] tests/server/test_request_state_boundary.py::test_an_explicit_null_request_state_is_treated_as_absent[boundary-installed] tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[302] tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[r\xe9sum\xe9] [gw12] [ 70%] PASSED tests/server/test_runner.py::test_runner_server_middleware_observes_handler_error_data_as_mcp_error tests/server/test_stateless_mode.py::test_send_log_message_rides_the_request_channel_when_opted_in tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[jsonrpc] tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[None] [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] [gw1] [ 70%] PASSED tests/server/test_runner.py::test_runner_unknown_method_before_initialize_raises_method_not_found tests/server/test_runner.py::test_runner_middleware_returning_error_data_produces_jsonrpc_error tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] [gw6] [ 70%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[None] [gw13] [ 70%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[302] [gw15] [ 70%] PASSED tests/server/test_sse_security.py::test_sse_connect_rejects_a_disallowed_host tests/server/test_sse_security.py::test_sse_post_without_a_session_id_returns_400 [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[303] [gw2] [ 70%] PASSED tests/server/mcpserver/test_server.py::TestServerPrompts::test_get_prompt_missing_args [gw8] [ 70%] PASSED tests/server/test_request_state_boundary.py::test_an_explicit_null_request_state_is_treated_as_absent[boundary-installed] tests/server/test_runner.py::test_runner_spec_method_without_handler_before_initialize_raises_method_not_found [gw11] [ 70%] PASSED tests/server/test_otel.py::test_named_non_tool_prompt_method_omits_gen_ai_attrs tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] tests/server/test_request_state_boundary.py::test_an_explicit_null_request_state_is_treated_as_absent[no-boundary] [gw9] [ 70%] PASSED tests/server/test_runner.py::test_dual_era_loop_initialize_locks_legacy_and_rejects_modern_traffic [gw10] [ 70%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[r\xe9sum\xe9] [gw12] [ 70%] PASSED tests/server/test_runner.py::test_runner_middleware_returning_error_data_produces_jsonrpc_error [gw0] [ 70%] PASSED tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[jsonrpc] [gw3] [ 70%] PASSED tests/server/test_stateless_mode.py::test_send_log_message_rides_the_request_channel_when_opted_in tests/server/test_stateless_mode.py::test_unrelated_notification_is_dropped_silently [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header tests/server/mcpserver/test_server.py::test_resource_decorator_rfc6570_reserved_expansion [gw13] [ 70%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[303] tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[307] [gw13] [ 70%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[307] tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[42] [gw6] [ 70%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[42] [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header [gw8] [ 70%] PASSED tests/server/test_request_state_boundary.py::test_an_explicit_null_request_state_is_treated_as_absent[no-boundary] tests/server/test_runner.py::test_runner_handler_returning_unsupported_type_surfaces_as_error tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[tools/call-name] tests/server/test_request_state_boundary.py::test_inbound_request_state_on_a_non_carrier_method_passes_through_unverified tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[308] tests/shared/test_httpx_utils.py::test_default_client_uses_mcp_timeouts_and_httpx_redirect_default [gw5] [ 70%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_unknown_name_is_protocol_error[streamable-http-2025-11-25] [gw1] [ 70%] PASSED tests/server/test_runner.py::test_runner_spec_method_without_handler_before_initialize_raises_method_not_found [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[tools/call-name] tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[a\r\nb] [gw13] [ 70%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[308] tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[absent] [gw2] [ 70%] PASSED tests/server/mcpserver/test_server.py::test_resource_decorator_rfc6570_reserved_expansion tests/server/mcpserver/test_server.py::test_resource_decorator_rejects_malformed_template tests/shared/test_httpx_utils.py::test_https_to_http_on_same_host_is_outside_origin [gw13] [ 70%] PASSED tests/shared/test_httpx_utils.py::test_https_to_http_on_same_host_is_outside_origin tests/shared/test_httpx_utils.py::test_client_configured_to_follow_redirects_is_still_scoped_to_origin [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[absent] tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[null] [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[null] tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_value_mismatch [gw3] [ 70%] PASSED tests/server/test_stateless_mode.py::test_unrelated_notification_is_dropped_silently tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[direct] tests/server/test_otel.py::test_prompt_get_sets_prompt_name tests/server/test_runner.py::test_runner_custom_method_with_handler_is_still_gated_before_initialize tests/server/test_runner.py::test_dual_era_loop_bare_discover_after_legacy_lock_is_byte_identical [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_value_mismatch [gw8] [ 70%] PASSED tests/server/test_request_state_boundary.py::test_inbound_request_state_on_a_non_carrier_method_passes_through_unverified tests/server/test_request_state_boundary.py::test_outbound_request_state_on_a_non_carrier_method_is_not_sealed [gw8] [ 70%] PASSED tests/server/test_request_state_boundary.py::test_outbound_request_state_on_a_non_carrier_method_is_not_sealed tests/server/test_request_state_boundary.py::test_an_off_set_input_required_result_without_state_passes_through_untouched tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_absent_argument_with_no_header tests/server/test_stateless_mode.py::test_loop_connection_outbound_does_not_raise_no_back_channel [gw13] [ 70%] PASSED tests/shared/test_httpx_utils.py::test_client_configured_to_follow_redirects_is_still_scoped_to_origin tests/interaction/lowlevel/test_prompts.py::test_get_prompt_unknown_name_is_protocol_error[streamable-http-stateless-2025-11-25] [gw4] [ 70%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_absent_argument_with_no_header [gw9] [ 70%] PASSED tests/server/test_runner.py::test_dual_era_loop_bare_discover_after_legacy_lock_is_byte_identical tests/shared/test_inbound.py::test_validate_mcp_param_headers_matches_header_names_case_insensitively [gw8] [ 70%] PASSED tests/server/test_request_state_boundary.py::test_an_off_set_input_required_result_without_state_passes_through_untouched [gw1] [ 70%] PASSED tests/server/test_runner.py::test_runner_custom_method_with_handler_is_still_gated_before_initialize tests/shared/test_httpx_utils.py::test_redirect_past_the_client_max_redirects_budget_is_handed_back_unfollowed [gw10] [ 70%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[a\r\nb] tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[=?base64?Zm9v?=] [gw10] [ 70%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[=?base64?Zm9v?=] [gw4] [ 71%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_matches_header_names_case_insensitively tests/shared/test_inbound.py::test_validate_mcp_param_headers_ignores_undeclared_mcp_param_headers tests/server/test_runner.py::test_runner_routes_to_handler_and_builds_context [gw2] [ 71%] PASSED tests/server/mcpserver/test_server.py::test_resource_decorator_rejects_malformed_template tests/server/mcpserver/test_server.py::test_resource_optional_query_params_use_function_defaults [gw0] [ 71%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[direct] tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[jsonrpc] tests/server/test_request_state_boundary.py::test_a_codec_that_raises_unexpectedly_fails_closed_with_the_frozen_error [gw13] [ 71%] PASSED tests/shared/test_httpx_utils.py::test_redirect_past_the_client_max_redirects_budget_is_handed_back_unfollowed tests/shared/test_httpx_utils.py::test_redirect_location_with_userinfo_is_not_followed [gw6] [ 71%] PASSED tests/shared/test_httpx_utils.py::test_default_client_uses_mcp_timeouts_and_httpx_redirect_default [gw4] [ 71%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_ignores_undeclared_mcp_param_headers [gw13] [ 71%] PASSED tests/shared/test_httpx_utils.py::test_redirect_location_with_userinfo_is_not_followed tests/shared/test_httpx_utils.py::test_custom_parameters tests/shared/test_inbound.py::test_validate_mcp_param_headers_validates_nothing_for_an_invalid_annotation_schema tests/shared/test_httpx_utils.py::test_userinfo_of_the_configured_url_kept_by_a_relative_location_is_followed tests/server/test_runner.py::test_dual_era_loop_unsupported_modern_version_gets_the_supported_list tests/shared/test_inbound.py::test_decode_header_value_passes_none_and_plain_through [gw10] [ 71%] PASSED tests/shared/test_inbound.py::test_decode_header_value_passes_none_and_plain_through [gw3] [ 71%] PASSED tests/server/test_stateless_mode.py::test_loop_connection_outbound_does_not_raise_no_back_channel [gw4] [ 71%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_validates_nothing_for_an_invalid_annotation_schema [gw14] [ 71%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes [gw9] [ 71%] PASSED tests/server/test_runner.py::test_dual_era_loop_unsupported_modern_version_gets_the_supported_list [gw13] [ 71%] PASSED tests/shared/test_httpx_utils.py::test_userinfo_of_the_configured_url_kept_by_a_relative_location_is_followed tests/server/test_stateless_mode.py::test_from_envelope_connection_ping_raises_no_back_channel [gw1] [ 71%] PASSED tests/server/test_runner.py::test_runner_routes_to_handler_and_builds_context tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths [gw11] [ 71%] PASSED tests/server/test_otel.py::test_prompt_get_sets_prompt_name [gw15] [ 71%] PASSED tests/server/test_sse_security.py::test_sse_post_without_a_session_id_returns_400 tests/shared/test_httpx_utils.py::test_request_within_origin_returns_a_read_response tests/server/test_runner.py::test_runner_builds_a_fresh_session_per_request tests/server/test_sse_security.py::test_sse_post_with_a_malformed_session_id_returns_400 [gw13] [ 71%] PASSED tests/shared/test_httpx_utils.py::test_request_within_origin_returns_a_read_response tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes tests/shared/test_httpx_utils.py::test_sse_within_origin_sends_event_stream_headers_and_caller_headers tests/server/test_otel.py::test_notification_span_omits_request_id tests/server/test_runner.py::test_dual_era_loop_bare_discover_opens_legacy_and_keeps_the_handshake_available tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?not base64!?=] [gw7] [ 71%] PASSED tests/server/mcpserver/test_server.py::test_prompt_input_required_result_on_legacy_session_is_a_serialization_error [gw13] [ 71%] PASSED tests/shared/test_httpx_utils.py::test_sse_within_origin_sends_event_stream_headers_and_caller_headers tests/shared/test_httpx_utils.py::test_auth_flow_requests_are_not_redirected [gw4] [ 71%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering [gw13] [ 71%] PASSED tests/shared/test_httpx_utils.py::test_auth_flow_requests_are_not_redirected [gw4] [ 71%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering [gw5] [ 71%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_unknown_name_is_protocol_error[streamable-http-stateless-2025-11-25] [gw10] [ 71%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?not base64!?=] tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?gA==?=] [gw6] [ 71%] PASSED tests/shared/test_httpx_utils.py::test_custom_parameters [gw1] [ 71%] PASSED tests/server/test_runner.py::test_runner_builds_a_fresh_session_per_request tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-params] tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] [gw0] [ 71%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[jsonrpc] tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://mcp.example/mcp/] [gw13] [ 71%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-params] tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-meta] [gw4] [ 71%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] tests/server/mcpserver/test_server.py::test_recursive_tool_return_type_lists_and_calls_on_legacy_session tests/interaction/lowlevel/test_prompts.py::test_get_prompt_unknown_name_is_protocol_error[in-memory-2026-07-28] [gw13] [ 71%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-meta] [gw2] [ 71%] PASSED tests/server/mcpserver/test_server.py::test_resource_optional_query_params_use_function_defaults [gw12] [ 71%] PASSED tests/server/test_runner.py::test_runner_handler_returning_unsupported_type_surfaces_as_error tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] [gw6] [ 71%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://mcp.example/mcp/] tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[direct] [gw14] [ 71%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] [gw3] [ 71%] PASSED tests/server/test_stateless_mode.py::test_from_envelope_connection_ping_raises_no_back_channel tests/server/test_stdio.py::test_stdio_server_round_trips_messages_over_injected_streams [gw15] [ 71%] PASSED tests/server/test_sse_security.py::test_sse_post_with_a_malformed_session_id_returns_400 tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-/other/path] tests/server/test_transport_security.py::test_validate_request_defaults_to_protection_disabled [gw13] [ 71%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] tests/server/test_runner.py::test_runner_spec_method_with_no_handler_raises_method_not_found [gw1] [ 71%] PASSED tests/server/test_runner.py::test_runner_spec_method_with_no_handler_raises_method_not_found tests/server/test_sse_security.py::test_sse_post_with_a_disallowed_host_is_rejected_before_session_lookup tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] [gw9] [ 71%] PASSED tests/server/test_runner.py::test_dual_era_loop_bare_discover_opens_legacy_and_keeps_the_handshake_available [gw10] [ 71%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?gA==?=] tests/server/mcpserver/test_server.py::test_resource_query_param_without_default_rejected_at_decoration [gw12] [ 71%] PASSED tests/server/test_transport_security.py::test_validate_request_defaults_to_protection_disabled [gw13] [ 71%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] [gw2] [ 71%] PASSED tests/server/mcpserver/test_server.py::test_resource_query_param_without_default_rejected_at_decoration [gw6] [ 71%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-/other/path] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[$defs] tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] [gw4] [ 71%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] [gw4] [ 71%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] tests/server/test_runner.py::test_runner_non_spec_method_with_no_handler_raises_method_not_found tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json] [gw12] [ 71%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json] tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json-with-charset] [gw13] [ 71%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec [gw4] [ 71%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] tests/server/test_runner.py::test_dual_era_loop_an_envelopeless_first_request_opens_a_legacy_connection [gw6] [ 71%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[$defs] [gw13] [ 71%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[additionalProperties] tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] [gw12] [ 71%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json-with-charset] tests/server/mcpserver/test_server.py::test_resource_path_param_without_default_accepted tests/shared/test_inbound.py::test_name_bearing_methods_table_matches_spec [gw13] [ 71%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] [gw4] [ 71%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[case-insensitive] [gw12] [ 71%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[case-insensitive] tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[wrong-type] [gw5] [ 71%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_unknown_name_is_protocol_error[in-memory-2026-07-28] [gw0] [ 71%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[direct] [gw6] [ 71%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[additionalProperties] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[allOf] [gw6] [ 71%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[allOf] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[anyOf] tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] [gw13] [ 72%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] [gw10] [ 72%] PASSED tests/shared/test_inbound.py::test_name_bearing_methods_table_matches_spec [gw1] [ 72%] PASSED tests/server/test_runner.py::test_runner_non_spec_method_with_no_handler_raises_method_not_found [gw2] [ 72%] PASSED tests/server/mcpserver/test_server.py::test_resource_path_param_without_default_accepted [gw12] [ 72%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[wrong-type] [gw13] [ 72%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] [gw9] [ 72%] PASSED tests/server/test_runner.py::test_dual_era_loop_an_envelopeless_first_request_opens_a_legacy_connection tests/server/test_runner.py::test_dual_era_loop_modern_request_without_envelope_rejects [gw8] [ 72%] PASSED tests/server/test_request_state_boundary.py::test_a_codec_that_raises_unexpectedly_fails_closed_with_the_frozen_error tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[none] tests/interaction/lowlevel/test_prompts.py::test_get_prompt_unknown_name_is_protocol_error[streamable-http-2026-07-28] [gw4] [ 72%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[missing] tests/shared/test_auth_utils.py::test_check_resource_allowed_different_domains [gw14] [ 72%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection tests/server/test_request_state_boundary.py::test_a_codec_reject_reason_reaches_the_log_but_never_the_wire [gw6] [ 72%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[anyOf] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contains] tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[jsonrpc] [gw13] [ 72%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] [gw6] [ 72%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contains] tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed [gw15] [ 72%] PASSED tests/server/test_sse_security.py::test_sse_post_with_a_disallowed_host_is_rejected_before_session_lookup tests/server/test_sse_security.py::test_sse_post_body_over_the_limit_returns_413 [gw12] [ 72%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[missing] tests/server/test_transport_security.py::test_validate_request_ignores_content_type_on_get tests/server/mcpserver/test_server.py::test_resource_security_default_rejects_traversal tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contentSchema] [gw6] [ 72%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contentSchema] tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] [gw13] [ 72%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] [gw12] [ 72%] PASSED tests/server/test_transport_security.py::test_validate_request_ignores_content_type_on_get [gw15] [ 72%] PASSED tests/server/test_sse_security.py::test_sse_post_body_over_the_limit_returns_413 tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[definitions] [gw4] [ 72%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] tests/server/test_sse_security.py::test_sse_post_body_limit_defaults_to_four_mib tests/server/test_transport_security.py::test_client_disconnect_while_streaming_request_body_is_replayed [gw14] [ 72%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed [gw1] [ 72%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_different_domains [gw4] [ 72%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] [gw6] [ 72%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[definitions] [gw13] [ 72%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[dependentSchemas] tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] [gw7] [ 72%] PASSED tests/server/mcpserver/test_server.py::test_recursive_tool_return_type_lists_and_calls_on_legacy_session [gw15] [ 72%] PASSED tests/server/test_sse_security.py::test_sse_post_body_limit_defaults_to_four_mib tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path [gw12] [ 72%] PASSED tests/server/test_transport_security.py::test_client_disconnect_while_streaming_request_body_is_replayed tests/server/test_sse_security.py::test_sse_post_streamed_body_over_the_limit_returns_413 [gw6] [ 72%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[dependentSchemas] [gw13] [ 72%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path [gw9] [ 72%] PASSED tests/server/test_runner.py::test_dual_era_loop_modern_request_without_envelope_rejects tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[else] [gw4] [ 72%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it tests/server/test_transport_security.py::test_client_disconnect_before_request_body_is_replayed tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken [gw13] [ 72%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken [gw6] [ 72%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[else] tests/shared/test_auth_utils.py::test_check_resource_allowed_different_ports [gw12] [ 72%] PASSED tests/server/test_transport_security.py::test_client_disconnect_before_request_body_is_replayed tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] [gw14] [ 72%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[if] [gw10] [ 72%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[none] tests/server/test_transport_security.py::test_request_body_chunks_are_replayed_as_one_message [gw4] [ 72%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it [gw13] [ 72%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] [gw6] [ 72%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[if] [gw1] [ 72%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_different_ports [gw0] [ 72%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[jsonrpc] [gw12] [ 72%] PASSED tests/server/test_transport_security.py::test_request_body_chunks_are_replayed_as_one_message tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[items] tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once [gw15] [ 72%] PASSED tests/server/test_sse_security.py::test_sse_post_streamed_body_over_the_limit_returns_413 tests/server/test_sse_security.py::test_sse_post_within_the_limit_reaches_session_lookup tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result [gw6] [ 72%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[items] tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[GET] [gw4] [ 72%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[not] [gw13] [ 72%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] tests/shared/test_auth_utils.py::test_check_resource_allowed_hierarchical_matching tests/server/test_runner.py::test_dual_era_loop_serves_subscriptions_listen_over_the_stream_pair tests/server/mcpserver/test_server.py::test_resource_template_input_required_result_on_legacy_session_is_a_serialization_error tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit [gw6] [ 72%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[not] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping] [gw2] [ 72%] PASSED tests/server/mcpserver/test_server.py::test_resource_security_default_rejects_traversal tests/server/mcpserver/test_server.py::test_resource_template_non_match_is_unknown_resource tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] [gw12] [ 72%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[GET] tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[PUT] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[oneOf] [gw13] [ 72%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] [gw4] [ 72%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit [gw14] [ 72%] PASSED tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered [gw1] [ 72%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_hierarchical_matching [gw6] [ 72%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[oneOf] tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically [gw12] [ 72%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[PUT] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[patternProperties] [gw13] [ 72%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-suffix-is-literal] tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[OPTIONS] [gw6] [ 72%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[patternProperties] [gw9] [ 72%] PASSED tests/server/test_runner.py::test_dual_era_loop_serves_subscriptions_listen_over_the_stream_pair tests/shared/test_auth_utils.py::test_check_resource_allowed_path_boundary_matching tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[prefixItems] tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[direct] [gw4] [ 73%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically [gw14] [ 73%] PASSED tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered [gw10] [ 73%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-properties] [gw13] [ 73%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-suffix-is-literal] [gw8] [ 73%] PASSED tests/server/test_request_state_boundary.py::test_a_codec_reject_reason_reaches_the_log_but_never_the_wire [gw6] [ 73%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[prefixItems] tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[missing-padding] [gw12] [ 73%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[OPTIONS] tests/server/test_request_state_boundary.py::test_codec_authenticated_bytes_that_are_not_a_claims_envelope_are_rejected[not-json] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[propertyNames] [gw2] [ 73%] PASSED tests/server/mcpserver/test_server.py::test_resource_template_non_match_is_unknown_resource [gw6] [ 73%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[propertyNames] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[then] tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[HEAD] [gw15] [ 73%] PASSED tests/server/test_sse_security.py::test_sse_post_within_the_limit_reaches_session_lookup tests/server/test_sse_security.py::test_sse_message_endpoint_answers_405_to_non_post[GET] [gw1] [ 73%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_path_boundary_matching tests/shared/test_auth_utils.py::test_check_resource_allowed_trailing_slash_handling tests/server/test_runner.py::test_dual_era_loop_malformed_envelope_content_is_a_modern_era_error tests/server/mcpserver/test_server.py::test_resource_security_rejection_indistinguishable_from_not_found [gw13] [ 73%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[missing-padding] tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-alphabet-chars] [gw13] [ 73%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-alphabet-chars] tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-canonical-trailing-bits] [gw15] [ 73%] PASSED tests/server/test_sse_security.py::test_sse_message_endpoint_answers_405_to_non_post[GET] [gw6] [ 73%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[then] tests/shared/test_jsonrpc_dispatcher.py::test_spawned_notification_handlers_run_concurrently [gw11] [ 73%] PASSED tests/server/test_otel.py::test_notification_span_omits_request_id tests/server/test_otel.py::test_nests_under_ambient_span_when_no_traceparent tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing [gw1] [ 73%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_trailing_slash_handling tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedItems] tests/server/test_sse_security.py::test_sse_message_endpoint_answers_405_to_non_post[PUT] [gw10] [ 73%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-properties] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[properties-non-mapping] [gw5] [ 73%] PASSED tests/interaction/lowlevel/test_prompts.py::test_get_prompt_unknown_name_is_protocol_error[streamable-http-2026-07-28] [gw4] [ 73%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_spawned_notification_handlers_run_concurrently [gw12] [ 73%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[HEAD] [gw6] [ 73%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedItems] [gw15] [ 73%] PASSED tests/server/test_sse_security.py::test_sse_message_endpoint_answers_405_to_non_post[PUT] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedProperties] tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[DELETE] tests/server/test_sse_security.py::test_sse_transport_rejects_a_non_positive_body_limit[0] tests/shared/test_auth_utils.py::test_check_resource_allowed_case_insensitive_origin [gw14] [ 73%] PASSED tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing tests/server/test_subscriptions.py::test_publish_after_close_is_dropped [gw12] [ 73%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[DELETE] [gw13] [ 73%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-canonical-trailing-bits] tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[invalid-utf8] [gw13] [ 73%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[invalid-utf8] tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_missing_header_for_present_argument [gw13] [ 73%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_missing_header_for_present_argument [gw6] [ 73%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedProperties] tests/shared/test_inbound.py::test_schema_walk_applicator_keywords_match_the_pinned_reject_cases tests/server/test_transport_security.py::test_request_body_limit_leaves_non_http_scopes_alone tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel [gw1] [ 73%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_case_insensitive_origin tests/shared/test_auth_utils.py::test_check_resource_allowed_empty_paths tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_request_metadata [gw4] [ 73%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_request_metadata tests/shared/test_jsonrpc_dispatcher.py::test_transport_stamped_can_send_request_makes_the_request_channel_refuse [gw9] [ 73%] PASSED tests/server/test_runner.py::test_dual_era_loop_malformed_envelope_content_is_a_modern_era_error [gw10] [ 73%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[properties-non-mapping] tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[in-memory-2025-11-25] [gw15] [ 73%] PASSED tests/server/test_sse_security.py::test_sse_transport_rejects_a_non_positive_body_limit[0] tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_previous_message_has_no_tool_use [gw6] [ 73%] PASSED tests/shared/test_inbound.py::test_schema_walk_applicator_keywords_match_the_pinned_reject_cases tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property [gw12] [ 73%] PASSED tests/server/test_transport_security.py::test_request_body_limit_leaves_non_http_scopes_alone [gw13] [ 73%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel [gw1] [ 73%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_empty_paths [gw2] [ 73%] PASSED tests/server/mcpserver/test_server.py::test_resource_security_rejection_indistinguishable_from_not_found tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification [gw6] [ 73%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_caps_none [gw4] [ 73%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_stamped_can_send_request_makes_the_request_channel_refuse tests/shared/test_context.py::test_base_context_forwards_transport_and_cancel_requested tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path tests/server/mcpserver/test_server.py::test_resource_security_per_resource_override [gw12] [ 73%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_caps_none tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-annotation] [gw15] [ 73%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_previous_message_has_no_tool_use tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata tests/server/test_runner.py::test_dual_era_loop_pair_only_envelope_serves_modern_and_locks [gw1] [ 73%] PASSED tests/shared/test_context.py::test_base_context_forwards_transport_and_cancel_requested [gw6] [ 73%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path [gw13] [ 73%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire tests/shared/test_context.py::test_base_context_can_send_request_reflects_dispatch_context_closed_state tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_sampling_none [gw12] [ 73%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_sampling_none tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_tools_none [gw8] [ 73%] PASSED tests/server/test_request_state_boundary.py::test_codec_authenticated_bytes_that_are_not_a_claims_envelope_are_rejected[not-json] [gw4] [ 73%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_ids_dont_match_tool_use tests/server/test_request_state_boundary.py::test_codec_authenticated_bytes_that_are_not_a_claims_envelope_are_rejected[json-missing-claims] [gw12] [ 73%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_tools_none tests/server/test_validation.py::test_check_sampling_tools_capability_returns_true_when_tools_present [gw13] [ 73%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire [gw1] [ 73%] PASSED tests/shared/test_context.py::test_base_context_can_send_request_reflects_dispatch_context_closed_state [gw4] [ 73%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message [gw10] [ 73%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-annotation] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-string] [gw6] [ 73%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] tests/shared/test_context.py::test_base_context_send_raw_request_and_notify_forward_to_dispatch_context tests/shared/test_jsonrpc_dispatcher.py::test_ctx_after_handler_return_reports_closed_and_drops_backchannel_traffic [gw12] [ 73%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_true_when_tools_present [gw5] [ 73%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[in-memory-2025-11-25] tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_tools_none tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent [gw13] [ 73%] PASSED tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent tests/shared/test_otel.py::test_client_and_server_spans [gw12] [ 73%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_tools_none [gw9] [ 74%] PASSED tests/server/test_runner.py::test_dual_era_loop_pair_only_envelope_serves_modern_and_locks [gw1] [ 74%] PASSED tests/shared/test_context.py::test_base_context_send_raw_request_and_notify_forward_to_dispatch_context [gw14] [ 74%] PASSED tests/server/test_subscriptions.py::test_publish_after_close_is_dropped [gw4] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_after_handler_return_reports_closed_and_drops_backchannel_traffic tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] [gw6] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tools_provided_but_no_capability tests/shared/test_context.py::test_base_context_report_progress_invokes_caller_on_progress tests/shared/test_jsonrpc_dispatcher.py::test_inline_methods_are_handled_before_next_message_is_dequeued [gw15] [ 74%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_ids_dont_match_tool_use [gw10] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-string] [gw12] [ 74%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tools_provided_but_no_capability tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tool_choice_provided_but_no_capability [gw12] [ 74%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tool_choice_provided_but_no_capability tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_capability_present [gw12] [ 74%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_capability_present [gw4] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_inline_methods_are_handled_before_next_message_is_dequeued tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_omits_empty_meta_and_empty_params_on_the_wire [gw4] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_omits_empty_meta_and_empty_params_on_the_wire tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_merges_progress_token_into_caller_meta [gw2] [ 74%] PASSED tests/server/mcpserver/test_server.py::test_resource_security_per_resource_override tests/server/mcpserver/test_server.py::test_resource_security_server_wide_override [gw11] [ 74%] PASSED tests/server/test_otel.py::test_nests_under_ambient_span_when_no_traceparent tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[sse-2025-11-25] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-integer] tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_when_tool_result_matches_tool_use [gw15] [ 74%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_when_tool_result_matches_tool_use tests/shared/test_auth.py::test_oauth [gw15] [ 74%] PASSED tests/shared/test_auth.py::test_oauth tests/shared/test_auth.py::test_oidc [gw15] [ 74%] PASSED tests/shared/test_auth.py::test_oidc tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_empty_messages [gw12] [ 74%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_empty_messages tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_simple_text_messages [gw1] [ 74%] PASSED tests/shared/test_context.py::test_base_context_report_progress_invokes_caller_on_progress tests/shared/test_context.py::test_base_context_satisfies_outbound_so_peer_mixin_works [gw1] [ 74%] PASSED tests/shared/test_context.py::test_base_context_satisfies_outbound_so_peer_mixin_works tests/shared/test_context.py::test_base_context_meta_holds_supplied_request_params_meta [gw1] [ 74%] PASSED tests/shared/test_context.py::test_base_context_meta_holds_supplied_request_params_meta tests/shared/test_context_streams.py::test_sync_close_closes_the_underlying_streams tests/shared/test_auth.py::test_oauth_with_jarm tests/server/test_runner.py::test_dual_era_loop_version_without_capabilities_rejects_naming_the_key tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack [gw14] [ 74%] PASSED tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack [gw12] [ 74%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_simple_text_messages [gw4] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_merges_progress_token_into_caller_meta tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params [gw15] [ 74%] PASSED tests/shared/test_auth.py::test_oauth_with_jarm tests/server/test_subscriptions.py::test_listen_requires_a_request_id [gw6] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] [gw6] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] [gw6] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] [gw10] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-integer] tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_mixed_with_other_content tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[client_uri] [gw1] [ 74%] PASSED tests/shared/test_context_streams.py::test_sync_close_closes_the_underlying_streams [gw6] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] [gw6] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] [gw6] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-boolean] [gw4] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror [gw4] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed [gw12] [ 74%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_mixed_with_other_content [gw8] [ 74%] PASSED tests/server/test_request_state_boundary.py::test_codec_authenticated_bytes_that_are_not_a_claims_envelope_are_rejected[json-missing-claims] tests/server/test_request_state_boundary.py::test_codec_authenticated_bytes_that_are_not_a_claims_envelope_are_rejected[json-wrong-envelope-version] [gw15] [ 74%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[client_uri] tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[logo_uri] [gw15] [ 74%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[logo_uri] tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[tos_uri] [gw15] [ 74%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[tos_uri] tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[policy_uri] [gw15] [ 74%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[policy_uri] [gw9] [ 74%] PASSED tests/server/test_runner.py::test_dual_era_loop_version_without_capabilities_rejects_naming_the_key tests/server/test_runner.py::test_dual_era_loop_failed_modern_request_leaves_the_connection_modern tests/shared/test_dispatcher.py::test_send_raw_request_returns_result_from_peer_on_request[direct] [gw1] [ 74%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_returns_result_from_peer_on_request[direct] tests/shared/test_dispatcher.py::test_send_raw_request_returns_result_from_peer_on_request[jsonrpc] [gw1] [ 74%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_returns_result_from_peer_on_request[jsonrpc] tests/shared/test_dispatcher.py::test_send_raw_request_reraises_mcperror_from_handler_unchanged[direct] [gw4] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[jwks_uri] [gw10] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-boolean] tests/server/test_otel.py::test_nests_under_ambient_span_when_meta_lacks_traceparent tests/shared/test_path_security.py::test_safe_join_simple [gw15] [ 74%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[jwks_uri] [gw1] [ 74%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_reraises_mcperror_from_handler_unchanged[direct] [gw13] [ 74%] PASSED tests/shared/test_otel.py::test_client_and_server_spans [gw14] [ 74%] PASSED tests/server/test_subscriptions.py::test_listen_requires_a_request_id tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op [gw4] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped tests/shared/test_auth.py::test_all_optional_urls_empty_together [gw2] [ 74%] PASSED tests/server/mcpserver/test_server.py::test_resource_security_server_wide_override tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions [gw15] [ 74%] PASSED tests/shared/test_auth.py::test_all_optional_urls_empty_together tests/shared/test_dispatcher.py::test_send_raw_request_reraises_mcperror_from_handler_unchanged[jsonrpc] tests/shared/test_auth.py::test_valid_url_passes_through_unchanged tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[two-distinct] [gw7] [ 74%] PASSED tests/server/mcpserver/test_server.py::test_resource_template_input_required_result_on_legacy_session_is_a_serialization_error [gw4] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions [gw6] [ 74%] PASSED tests/shared/test_path_security.py::test_safe_join_simple [gw15] [ 74%] PASSED tests/shared/test_auth.py::test_valid_url_passes_through_unchanged tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error tests/server/mcpserver/test_server.py::test_resource_security_namespaced_identifier_requires_exempt tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained [gw9] [ 74%] PASSED tests/server/test_runner.py::test_dual_era_loop_failed_modern_request_leaves_the_connection_modern [gw1] [ 74%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_reraises_mcperror_from_handler_unchanged[jsonrpc] [gw14] [ 75%] PASSED tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others tests/shared/test_auth.py::test_information_full_inherits_coercion [gw15] [ 75%] PASSED tests/shared/test_auth.py::test_information_full_inherits_coercion tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unregistered-application-type] [gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unregistered-application-type] tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-application-type] tests/shared/test_path_security.py::test_safe_join_resolves_relative_base [gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_resolves_relative_base [gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[two-distinct] tests/shared/test_dispatcher.py::test_send_raw_request_maps_validation_error_to_invalid_params[direct] [gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_maps_validation_error_to_invalid_params[direct] tests/server/mcpserver/test_server.py::test_resource_template_returning_input_required_result_reaches_client_sealed [gw0] [ 75%] PASSED tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[direct] [gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-application-type] tests/shared/test_dispatcher.py::test_send_raw_request_maps_validation_error_to_invalid_params[jsonrpc] [gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_maps_validation_error_to_invalid_params[jsonrpc] tests/shared/test_dispatcher.py::test_send_raw_request_with_timeout_raises_mcperror_request_timeout[direct] [gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_timeout_raises_mcperror_request_timeout[direct] tests/shared/test_dispatcher.py::test_send_raw_request_with_timeout_raises_mcperror_request_timeout[jsonrpc] [gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_timeout_raises_mcperror_request_timeout[jsonrpc] tests/shared/test_dispatcher.py::test_notify_invokes_peer_on_notify[direct] tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[jsonrpc] [gw11] [ 75%] PASSED tests/server/test_otel.py::test_nests_under_ambient_span_when_meta_lacks_traceparent tests/server/test_otel.py::test_extracts_trace_context_from_meta [gw2] [ 75%] PASSED tests/server/mcpserver/test_server.py::test_resource_security_namespaced_identifier_requires_exempt tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[null-application-type] [gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[null-application-type] tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unimplemented-auth-method] [gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unimplemented-auth-method] tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[extra-grant-type] [gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[extra-grant-type] tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-redirect-uris] [gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-redirect-uris] tests/shared/test_auth.py::test_client_information_without_echoed_metadata_still_parses [gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_without_echoed_metadata_still_parses tests/shared/test_auth.py::test_every_request_metadata_field_exists_on_the_client_record [gw13] [ 75%] PASSED tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] [gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] [gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] tests/shared/test_path_security.py::test_contains_path_traversal[-False] [gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape [gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot [gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping-prop] [gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping-prop] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[nested-on-properties-chain] [gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[nested-on-properties-chain] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-default-is-data] tests/server/test_runner.py::test_dual_era_loop_initialize_with_envelope_takes_the_handshake_path [gw9] [ 75%] PASSED tests/server/test_runner.py::test_dual_era_loop_initialize_with_envelope_takes_the_handshake_path tests/server/test_runner.py::test_dual_era_loop_modern_notification_dispatches_at_the_served_version [gw5] [ 75%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[sse-2025-11-25] tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[streamable-http-2025-11-25] [gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-default-is-data] tests/server/mcpserver/test_server.py::test_resource_security_rejection_halts_template_iteration [gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[-False] tests/shared/test_path_security.py::test_contains_path_traversal[.-False] [gw15] [ 75%] PASSED tests/shared/test_auth.py::test_every_request_metadata_field_exists_on_the_client_record tests/shared/test_auth.py::test_a_registration_response_without_a_client_id_is_rejected [gw15] [ 75%] PASSED tests/shared/test_auth.py::test_a_registration_response_without_a_client_id_is_rejected [gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_notify_invokes_peer_on_notify[direct] tests/shared/test_dispatcher.py::test_notify_invokes_peer_on_notify[jsonrpc] tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-null] [gw7] [ 75%] PASSED tests/server/mcpserver/test_server.py::test_resource_template_returning_input_required_result_reaches_client_sealed tests/server/mcpserver/test_server.py::test_resource_template_reads_input_responses_from_context_on_retry [gw8] [ 75%] PASSED tests/server/test_request_state_boundary.py::test_codec_authenticated_bytes_that_are_not_a_claims_envelope_are_rejected[json-wrong-envelope-version] [gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[.-False] tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_without_previous_tool_use [gw12] [ 75%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_without_previous_tool_use tests/shared/test_path_security.py::test_safe_join_base_equals_target [gw12] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_base_equals_target tests/shared/test_path_security.py::test_path_escape_error_is_value_error [gw12] [ 75%] PASSED tests/shared/test_path_security.py::test_path_escape_error_is_value_error tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result [gw4] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify [gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part tests/server/test_request_state_boundary.py::test_codec_authenticated_bytes_that_are_not_a_claims_envelope_are_rejected[json-non-string-state] [gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] [gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_notify_invokes_peer_on_notify[jsonrpc] tests/shared/test_dispatcher.py::test_ctx_send_raw_request_round_trips_to_calling_side[direct] [gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_ctx_send_raw_request_round_trips_to_calling_side[direct] [gw4] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify [gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive [gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-null] tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-empty-string] [gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-empty-string] [gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] [gw9] [ 75%] PASSED tests/server/test_runner.py::test_dual_era_loop_modern_notification_dispatches_at_the_served_version [gw11] [ 75%] PASSED tests/server/test_otel.py::test_extracts_trace_context_from_meta tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-examples-is-data] [gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] [gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-examples-is-data] [gw12] [ 75%] PASSED tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only tests/server/test_runner.py::test_dual_era_loop_legacy_notifications_reach_the_loop_runner [gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive tests/shared/test_path_security.py::test_safe_join_rejects_null_byte [gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify [gw4] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify [gw4] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] [gw12] [ 75%] PASSED tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] [gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] tests/shared/test_path_security.py::test_contains_path_traversal[..-True] tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[prompts/get-name] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-const-is-data] [gw10] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-const-is-data] [gw2] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_resource_security_rejection_halts_template_iteration tests/server/mcpserver/test_server.py::test_static_resource_with_context_param_errors [gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..-True] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-enum-is-data] tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] [gw4] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part [gw6] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part [gw7] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_resource_template_reads_input_responses_from_context_on_retry tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] [gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[prompts/get-name] tests/server/mcpserver/test_server.py::test_context_read_resource_raises_on_input_required_result [gw2] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_with_context_param_errors [gw5] [ 76%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[streamable-http-2025-11-25] [gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] [gw10] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-enum-is-data] tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[resources/read-uri] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[ref-is-not-dereferenced] tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result [gw4] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] [gw9] [ 76%] PASSED tests/server/test_runner.py::test_dual_era_loop_legacy_notifications_reach_the_loop_runner [gw12] [ 76%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result [gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] tests/server/test_runner.py::test_dual_era_loop_a_notifications_meta_never_opens_the_log_gate tests/server/mcpserver/test_server.py::test_static_resource_with_extra_params_errors [gw7] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_context_read_resource_raises_on_input_required_result tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[streamable-http-stateless-2025-11-25] [gw0] [ 76%] PASSED tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[jsonrpc] tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result tests/server/mcpserver/test_server.py::test_mcpserver_read_resource_returns_input_required_result_for_handler_forwarding tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_single_elicitation [gw9] [ 76%] PASSED tests/server/test_runner.py::test_dual_era_loop_a_notifications_meta_never_opens_the_log_gate [gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[resources/read-uri] [gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] [gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_single_elicitation tests/server/test_runner.py::test_dual_era_loop_modern_server_notifications_ride_the_pipe [gw7] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_mcpserver_read_resource_returns_input_required_result_for_handler_forwarding tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations tests/shared/test_inbound.py::test_header_rung_decodes_base64_sentinel_before_comparing_name [gw2] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_with_extra_params_errors [gw12] [ 76%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result [gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] tests/server/mcpserver/test_server.py::test_completion_decorator [gw10] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[ref-is-not-dereferenced] tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed [gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations [gw9] [ 76%] PASSED tests/server/test_runner.py::test_dual_era_loop_modern_server_notifications_ride_the_pipe tests/shared/test_exceptions.py::test_url_elicitation_required_error_custom_message tests/server/mcpserver/test_server.py::test_context_read_resource_keeps_outer_input_responses_from_the_nested_template tests/server/test_runner.py::test_dual_era_loop_modern_refuses_server_initiated_requests [gw14] [ 76%] PASSED tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others [gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_custom_message tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data [gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_decodes_base64_sentinel_before_comparing_name tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params [gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_for_non_name_bearing_method [gw9] [ 76%] PASSED tests/server/test_runner.py::test_dual_era_loop_modern_refuses_server_initiated_requests tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data_wrong_code tests/server/test_runner.py::test_dual_era_loop_initialize_during_an_in_flight_modern_request_is_refused [gw12] [ 76%] PASSED tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params [gw2] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_completion_decorator [gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data_wrong_code [gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_for_non_name_bearing_method tests/shared/test_exceptions.py::test_url_elicitation_required_error_serialization_roundtrip [gw7] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_context_read_resource_keeps_outer_input_responses_from_the_nested_template tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup [gw9] [ 76%] PASSED tests/server/test_runner.py::test_dual_era_loop_initialize_during_an_in_flight_modern_request_is_refused [gw10] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_when_body_omits_the_named_param tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params [gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_serialization_roundtrip tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations tests/server/test_runner.py::test_dual_era_loop_maps_unmapped_handler_exceptions_like_the_modern_http_entry [gw10] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed tests/server/mcpserver/test_server.py::test_custom_resource_returning_the_wrong_type_is_a_crash [gw5] [ 76%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[streamable-http-stateless-2025-11-25] [gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations tests/server/mcpserver/test_server.py::test_prompt_raising_mcp_error_surfaces_code_and_data_to_client [gw12] [ 76%] PASSED tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params tests/shared/test_exceptions.py::test_url_elicitation_required_error_inherits_from_mcp_error tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[in-memory-2026-07-28] [gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_when_body_omits_the_named_param tests/shared/test_inbound.py::test_all_rungs_pass_yields_route [gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_inherits_from_mcp_error tests/shared/test_exceptions.py::test_url_elicitation_required_error_exception_message [gw7] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_prompt_raising_mcp_error_surfaces_code_and_data_to_client tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome [gw10] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel [gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_exception_message [gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_all_rungs_pass_yields_route tests/server/mcpserver/test_server.py::test_resource_template_raising_mcp_error_surfaces_code_and_data_to_client tests/shared/test_exceptions.py::test_from_jsonrpc_error_preserves_code_message_and_data [gw12] [ 76%] PASSED tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result [gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_from_jsonrpc_error_preserves_code_message_and_data tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params [gw5] [ 76%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[in-memory-2026-07-28] [gw8] [ 76%] PASSED tests/server/test_request_state_boundary.py::test_codec_authenticated_bytes_that_are_not_a_claims_envelope_are_rejected[json-non-string-state] tests/shared/test_extension.py::test_server_extension_module_reexports_shared_validator tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[streamable-http-2026-07-28] tests/shared/test_dispatcher.py::test_ctx_send_raw_request_round_trips_to_calling_side[jsonrpc] tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[initialize] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[malformed-or-empty-applicators-ignored] tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] [gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] [gw7] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_resource_template_raising_mcp_error_surfaces_code_and_data_to_client tests/server/mcpserver/test_server.py::test_static_resource_raising_mcp_error_surfaces_code_and_data_to_client [gw10] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed [gw4] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed tests/shared/test_sse.py::test_sse_client_basic_connection [gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[initialize] tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[myorg/custom] [gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[myorg/custom] [gw0] [ 77%] PASSED tests/shared/test_extension.py::test_server_extension_module_reexports_shared_validator tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[io.modelcontextprotocol/ui] tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[does/not/exist] [gw12] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 [gw1] [ 77%] PASSED tests/shared/test_dispatcher.py::test_ctx_send_raw_request_round_trips_to_calling_side[jsonrpc] [gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[malformed-or-empty-applicators-ignored] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[empty] [gw7] [ 77%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_raising_mcp_error_surfaces_code_and_data_to_client tests/server/mcpserver/test_server.py::test_tool_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback [gw10] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request [gw0] [ 77%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[io.modelcontextprotocol/ui] [gw12] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 tests/shared/test_streamable_http.py::test_content_type_validation [gw13] [ 77%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] [gw13] [ 77%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata [gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[empty] tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta [gw5] [ 77%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[streamable-http-2026-07-28] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[space] tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] tests/interaction/lowlevel/test_resources.py::test_read_resource_text[in-memory-2025-11-25] [gw12] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta [gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[does/not/exist] tests/shared/test_inbound.py::test_ladder_first_failure_wins [gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata [gw10] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request [gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[space] [gw4] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection [gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_ladder_first_failure_wins [gw1] [ 77%] PASSED tests/shared/test_streamable_http.py::test_content_type_validation tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias [gw13] [ 77%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] tests/shared/test_sse.py::test_sse_client_on_session_created tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] tests/shared/test_inbound.py::test_error_code_http_status_table[-32700-400] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[colon] [gw9] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_maps_unmapped_handler_exceptions_like_the_modern_http_entry tests/shared/test_streamable_http.py::test_json_validation tests/server/test_runner.py::test_dual_era_loop_raise_exceptions_reraises_unmapped_modern_handler_exceptions [gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata [gw13] [ 77%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] [gw4] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created [gw10] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request [gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[colon] [gw12] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound [gw4] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request [gw5] [ 77%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_text[in-memory-2025-11-25] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-ascii] tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape [gw4] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] [gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32700-400] [gw7] [ 77%] PASSED tests/server/mcpserver/test_server.py::test_tool_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback tests/shared/test_inbound.py::test_error_code_http_status_table[-32600-400] tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] [gw10] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request [gw12] [ 77%] PASSED tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound [gw6] [ 77%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape [gw1] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_validation tests/server/mcpserver/test_server.py::test_tool_raising_tool_error_is_logged_at_info_without_traceback tests/shared/test_streamable_http.py::test_json_parsing tests/interaction/lowlevel/test_resources.py::test_read_resource_text[sse-2025-11-25] [gw4] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] [gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-ascii] [gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int [gw4] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] [gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32600-400] [gw10] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int tests/shared/test_streamable_http.py::test_get_validation [gw4] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[control-char] [gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[control-char] tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] [gw12] [ 77%] PASSED tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none [gw13] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect [gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped [gw4] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] tests/shared/test_inbound.py::test_error_code_http_status_table[-32602-400] [gw1] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_parsing tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-string] tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-null] [gw13] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect [gw10] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation [gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-string] [gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32602-400] tests/shared/test_inbound.py::test_error_code_http_status_table[-32020-400] tests/shared/test_streamable_http.py::test_method_not_allowed tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire [gw4] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect [gw15] [ 77%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-null] tests/shared/test_sse.py::test_sse_client_happy_request_and_response tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-header] [gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-header] [gw0] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation [gw12] [ 78%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] [gw13] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect [gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire [gw2] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_custom_resource_returning_the_wrong_type_is_a_crash [gw7] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_tool_raising_tool_error_is_logged_at_info_without_traceback tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio [gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32020-400] [gw5] [ 78%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_text[sse-2025-11-25] tests/interaction/lowlevel/test_resources.py::test_read_resource_text[streamable-http-2025-11-25] tests/shared/test_inbound.py::test_error_code_http_status_table[-32021-400] tests/server/mcpserver/test_server.py::test_tool_error_subclass_is_still_anticipated [gw6] [ 78%] PASSED tests/shared/test_streamable_http.py::test_get_validation tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error [gw1] [ 78%] PASSED tests/shared/test_streamable_http.py::test_method_not_allowed tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-object] [gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-object] [gw4] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_happy_request_and_response tests/server/mcpserver/test_server.py::test_completion_handler_crash_is_logged_and_reaches_the_client_generically tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-array] [gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] tests/shared/test_sse.py::test_sse_client_exception_handling [gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-array] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-null] tests/shared/test_streamable_http.py::test_session_validation [gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32021-400] tests/shared/test_inbound.py::test_error_code_http_status_table[-32022-400] tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect [gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-null] [gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32022-400] tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] [gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-number] [gw4] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_exception_handling [gw1] [ 78%] PASSED tests/shared/test_streamable_http.py::test_session_validation tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app [gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-number] tests/shared/test_inbound.py::test_error_code_http_status_table[-32601-404] tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[array-type] [gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name [gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32601-404] [gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[array-type] tests/shared/test_streamable_http.py::test_session_id_pattern tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[dict-type] tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length [gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[dict-type] [gw4] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-type] tests/shared/test_sse.py::test_request_context_propagation [gw7] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_tool_error_subclass_is_still_anticipated tests/server/mcpserver/test_server.py::test_tool_argument_validation_failure_is_logged_at_info_without_traceback [gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-type] [gw1] [ 78%] PASSED tests/shared/test_streamable_http.py::test_session_id_pattern [gw5] [ 78%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_text[streamable-http-2025-11-25] tests/shared/test_inbound.py::test_error_code_http_status_covers_every_ladder_code [gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_covers_every_ladder_code tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[missing-type] tests/interaction/lowlevel/test_resources.py::test_read_resource_text[streamable-http-stateless-2025-11-25] [gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[missing-type] tests/shared/test_inbound.py::test_verdict_dataclasses_are_frozen tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-same-case] [gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length [gw9] [ 78%] PASSED tests/server/test_runner.py::test_dual_era_loop_raise_exceptions_reraises_unmapped_modern_handler_exceptions tests/server/test_runner.py::test_dual_era_loop_custom_method_with_mis_shaped_envelope_values_still_routes tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated [gw14] [ 78%] PASSED tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup [gw12] [ 78%] PASSED tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio [gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_verdict_dataclasses_are_frozen tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[plain] tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] [gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] tests/server/test_subscriptions.py::test_subscription_limit_rejects_further_streams_pre_ack tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout [gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-same-case] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-diff-case] tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] [gw1] [ 78%] PASSED tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating [gw5] [ 78%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_text[streamable-http-stateless-2025-11-25] [gw4] [ 78%] PASSED tests/shared/test_sse.py::test_request_context_propagation [gw12] [ 78%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout [gw9] [ 78%] PASSED tests/server/test_runner.py::test_dual_era_loop_custom_method_with_mis_shaped_envelope_values_still_routes [gw14] [ 78%] PASSED tests/server/test_subscriptions.py::test_subscription_limit_rejects_further_streams_pre_ack tests/interaction/lowlevel/test_resources.py::test_read_resource_text[in-memory-2026-07-28] tests/shared/test_sse.py::test_request_context_isolation tests/shared/test_sse.py::test_raw_sse_connection [gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[plain] tests/server/test_subscriptions.py::test_backlog_overflow_ends_the_stream_and_frees_its_slot [gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-diff-case] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[properties-chain-not-restored-below-an-applicator] [gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[properties-chain-not-restored-below-an-applicator] tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[with internal space] [gw12] [ 78%] PASSED tests/shared/test_sse.py::test_raw_sse_connection [gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[with internal space] tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] [gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-root-schema] [gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-root-schema] [gw2] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_completion_handler_crash_is_logged_and_reaches_the_client_generically [gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] [gw12] [ 78%] PASSED tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] tests/shared/test_uri_template.py::test_parse_simple_variable [gw7] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_tool_argument_validation_failure_is_logged_at_info_without_traceback tests/server/test_runner.py::test_has_modern_envelope_keys_on_the_protocol_version_key [gw9] [ 78%] PASSED tests/server/test_runner.py::test_has_modern_envelope_keys_on_the_protocol_version_key tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] tests/server/mcpserver/test_server.py::test_tool_argument_validation_failure_chains_directly_to_the_validation_error [gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] [gw5] [ 78%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_text[in-memory-2026-07-28] [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_simple_variable tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-across-nesting-levels] [gw8] [ 79%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-across-nesting-levels] tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] tests/server/mcpserver/test_server.py::test_completion_handler_returning_the_wrong_type_is_a_crash [gw6] [ 79%] PASSED tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init tests/interaction/lowlevel/test_resources.py::test_read_resource_text[streamable-http-2026-07-28] [gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation [gw7] [ 79%] PASSED tests/server/mcpserver/test_server.py::test_tool_argument_validation_failure_chains_directly_to_the_validation_error [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-bad-token] tests/server/mcpserver/test_server.py::test_validation_error_raised_inside_the_tool_body_is_a_crash tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] [gw14] [ 79%] PASSED tests/server/test_subscriptions.py::test_backlog_overflow_ends_the_stream_and_frees_its_slot tests/server/test_subscriptions.py::test_same_task_publish_burst_does_not_overflow_a_healthy_stream [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] [gw14] [ 79%] PASSED tests/server/test_subscriptions.py::test_same_task_publish_burst_does_not_overflow_a_healthy_stream [gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] [gw8] [ 79%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-bad-token] tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header [gw10] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[missing-host] [gw4] [ 79%] PASSED tests/shared/test_sse.py::test_request_context_isolation [gw15] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] tests/shared/test_sse.py::test_sse_message_id_coercion [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] [gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification [gw4] [ 79%] PASSED tests/shared/test_sse.py::test_sse_message_id_coercion tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] [gw4] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] [gw5] [ 79%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_text[streamable-http-2026-07-28] [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] [gw15] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] [gw4] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] [gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] [gw4] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression [gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression [gw13] [ 79%] PASSED tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect tests/shared/test_uri_template.py::test_parse_multiple_expressions tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[in-memory-2025-11-25] [gw11] [ 79%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_expressions tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] [gw14] [ 79%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[missing-host] [gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] [gw6] [ 79%] PASSED tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-no-match] [gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] tests/shared/test_streamable_http.py::test_accept_header_validation tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] [gw7] [ 79%] PASSED tests/server/mcpserver/test_server.py::test_validation_error_raised_inside_the_tool_body_is_a_crash tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] tests/server/mcpserver/test_server.py::test_return_value_failing_the_output_schema_is_a_crash [gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] [gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] [gw15] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars [gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] [gw4] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] [gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] [gw15] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars [gw5] [ 79%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[in-memory-2025-11-25] tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[sse-2025-11-25] [gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] tests/shared/test_uri_template.py::test_parse_explode_modifier tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] [gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] [gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_explode_modifier [gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] [gw13] [ 79%] PASSED tests/shared/test_streamable_http.py::test_accept_header_validation [gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] [gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters [gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] [gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] [gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] [gw14] [ 80%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-no-match] tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout [gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] [gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] [gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-wildcard-base-mismatch] tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] [gw6] [ 80%] PASSED tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version [gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] [gw15] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] tests/shared/test_streamable_http.py::test_client_crash_handled [gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] tests/shared/test_path_security.py::test_is_absolute_path[-False] [gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] [gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] [gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[-False] [gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] tests/shared/test_path_security.py::test_is_absolute_path[.-False] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] [gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] [gw15] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-non-primitive] [gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] [gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[.-False] tests/shared/test_path_security.py::test_is_absolute_path[..-False] [gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating [gw0] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] [gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set [gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[..-False] tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] [gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] [gw8] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-non-primitive] [gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] [gw2] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_completion_handler_returning_the_wrong_type_is_a_crash tests/shared/test_path_security.py::test_is_absolute_path[/-True] [gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/-True] tests/server/mcpserver/test_server.py::test_completion_handler_raising_mcp_error_passes_through tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] [gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] [gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] [gw5] [ 80%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[sse-2025-11-25] tests/shared/test_streamable_http.py::test_session_termination [gw14] [ 80%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-wildcard-base-mismatch] tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash [gw15] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] [gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-exact-no-origin] tests/shared/test_path_security.py::test_is_absolute_path[/a-True] tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[streamable-http-2025-11-25] [gw7] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_return_value_failing_the_output_schema_is_a_crash tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] [gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] [gw14] [ 80%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-exact-no-origin] [gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/a-True] tests/shared/test_path_security.py::test_is_absolute_path[C:-True] [gw0] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-wildcard-match] [gw14] [ 80%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-wildcard-match] [gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:-True] tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-no-match] [gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] tests/server/mcpserver/test_server.py::test_unknown_tool_is_logged_at_info_without_traceback [gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] [gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] [gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] [gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] [gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] [gw2] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_completion_handler_raising_mcp_error_passes_through tests/server/mcpserver/test_server.py::test_sse_app_applies_the_configured_request_body_limit tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] [gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] [gw10] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one [gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] [gw15] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] [gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] [gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] [gw6] [ 80%] PASSED tests/shared/test_streamable_http.py::test_client_crash_handled tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data [gw6] [ 80%] PASSED tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version [gw6] [ 80%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version [gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] [gw2] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_sse_app_applies_the_configured_request_body_limit tests/server/mcpserver/test_server.py::test_report_progress_delegates_to_session_report_progress [gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_session_termination [gw6] [ 80%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event tests/shared/test_streamable_http.py::test_response [gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] [gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] [gw14] [ 81%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-no-match] [gw15] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot [gw0] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-base-mismatch] tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] [gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] [gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings [gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings [gw13] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] [gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_response [gw12] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] tests/shared/test_streamable_http.py::test_json_response tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] [gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] [gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] [gw10] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] [gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response [gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] tests/shared/test_streamable_http.py::test_json_response_accept_json_only [gw5] [ 81%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[streamable-http-2025-11-25] tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[streamable-http-stateless-2025-11-25] tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] [gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] [gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_accept_json_only [gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] [gw15] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings [gw12] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] tests/shared/test_streamable_http.py::test_json_response_missing_accept_header [gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] [gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] [gw14] [ 81%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-base-mismatch] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] [gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] [gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_missing_accept_header tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header [gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-exact] [gw14] [ 81%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-exact] tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-match] [gw14] [ 81%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-match] [gw0] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] [gw12] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] tests/server/test_transport_security.py::test_validate_request_skips_host_and_origin_when_protection_is_disabled tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] [gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] [gw11] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] [gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] [gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] [gw14] [ 81%] PASSED tests/server/test_transport_security.py::test_validate_request_skips_host_and_origin_when_protection_is_disabled [gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] [gw10] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name [gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] [gw14] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name [gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] [gw7] [ 81%] PASSED tests/server/mcpserver/test_server.py::test_unknown_tool_is_logged_at_info_without_traceback tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] [gw12] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] [gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] [gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] [gw14] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name [gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted [gw15] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] [gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] [gw14] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name [gw0] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] [gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] tests/server/mcpserver/test_server.py::test_tool_raising_mcp_error_is_not_logged_by_mcpserver tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] [gw11] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] [gw15] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] [gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] [gw14] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] [gw10] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] [gw12] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] [gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] [gw14] [ 82%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] [gw13] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] [gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] [gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] [gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] [gw14] [ 82%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] [gw13] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] [gw0] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] [gw5] [ 82%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[streamable-http-stateless-2025-11-25] tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] [gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] [gw14] [ 82%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[in-memory-2026-07-28] tests/shared/test_streamable_http.py::test_get_sse_stream [gw10] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] [gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] [gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] [gw9] [ 82%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] [gw13] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] [gw12] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] [gw14] [ 82%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] [gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] tests/shared/test_uri_template.py::test_parse_literal_only [gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_get_sse_stream [gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] [gw10] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] [gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] [gw5] [ 82%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[in-memory-2026-07-28] [gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_literal_only tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] [gw12] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] [gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] [gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] [gw10] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] [gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] [gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable [gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[streamable-http-2026-07-28] [gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] [gw7] [ 82%] PASSED tests/server/mcpserver/test_server.py::test_tool_raising_mcp_error_is_not_logged_by_mcpserver tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] [gw10] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] [gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] [gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] [gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] [gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] [gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] [gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] [gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] tests/shared/test_uri_template.py::test_parse_rejects_oversized_template tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] [gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_oversized_template tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables [gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] tests/server/mcpserver/test_server.py::test_resolver_raising_tool_error_is_anticipated [gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] [gw12] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] [gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] [gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] [gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] [gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] [gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] tests/shared/test_uri_template.py::test_is_template[-False] [gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[-False] tests/shared/test_uri_template.py::test_is_template[{a}-True] [gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple [gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple [gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions [gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger [gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[{a}-True] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] [gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] [gw12] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] [gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] tests/shared/test_uri_template.py::test_is_template[{-False] tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved [gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved [gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] [gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger tests/shared/test_uri_template.py::test_equality_based_on_template_string tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] [gw14] [ 83%] PASSED tests/shared/test_uri_template.py::test_is_template[{-False] [gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_equality_based_on_template_string tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] [gw5] [ 83%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[streamable-http-2026-07-28] [gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] [gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] [gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] tests/shared/test_uri_template.py::test_is_template[}-False] [gw14] [ 83%] PASSED tests/shared/test_uri_template.py::test_is_template[}-False] tests/shared/test_uri_template.py::test_is_template[}{-False] [gw15] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] tests/shared/test_uri_template.py::test_frozen [gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_frozen tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] [gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] [gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] [gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] [gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] [gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] [gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] [gw14] [ 83%] PASSED tests/shared/test_uri_template.py::test_is_template[}{-False] tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] [gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[in-memory-2025-11-25] [gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] [gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] [gw12] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] [gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] [gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] [gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] [gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] [gw15] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] [gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] [gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] [gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] [gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] [gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] [gw5] [ 83%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[in-memory-2025-11-25] [gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] [gw12] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] [gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] [gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] [gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] [gw15] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] [gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] [gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] [gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] [gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] [gw13] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] [gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[sse-2025-11-25] [gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] [gw0] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer [gw12] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] [gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] [gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] [gw15] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry [gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] [gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] [gw13] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] [gw0] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] [gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] [gw12] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items [gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items [gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed [gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] [gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] [gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed [gw5] [ 84%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[sse-2025-11-25] tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log [gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] [gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal [gw15] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] [gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] [gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] [gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] [gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] [gw3] [ 84%] PASSED tests/server/test_stdio.py::test_stdio_server_round_trips_messages_over_injected_streams tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[streamable-http-2025-11-25] [gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] [gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] tests/server/test_stdio.py::test_stdio_server_invalid_utf8 [gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] [gw15] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] [gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal [gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template [gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] [gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] [gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] [gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] [gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] [gw7] [ 84%] PASSED tests/server/mcpserver/test_server.py::test_resolver_raising_tool_error_is_anticipated tests/server/mcpserver/test_server.py::test_resolver_crash_is_logged_as_the_tools_crash tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] [gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] [gw15] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] [gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] [gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] [gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] [gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template [gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] [gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] [gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] tests/shared/test_uri_template.py::test_match_decodes_percent_encoding [gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_decodes_percent_encoding [gw3] [ 84%] PASSED tests/server/test_stdio.py::test_stdio_server_invalid_utf8 tests/server/test_stdio.py::test_stdio_server_takes_stdin_off_the_descriptor_table_while_serving tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] [gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] [gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] [gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] [gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] [gw15] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] [gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] [gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once tests/shared/test_uri_template.py::test_match_rejects_oversized_uri tests/shared/test_uri_template.py::test_match_escapes_template_literals tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log [gw5] [ 84%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[streamable-http-2025-11-25] [gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] [gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_escapes_template_literals tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] [gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_rejects_oversized_uri [gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] [gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[streamable-http-stateless-2025-11-25] tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] [gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] [gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] [gw15] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] [gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] [gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] [gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit [gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] [gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] [gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] [gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] tests/shared/test_uri_template.py::test_match_default_uri_length_limit [gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] [gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] [gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] [gw11] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] [gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] [gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] [gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] [gw10] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] [gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] [gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] [gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty [gw11] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template [gw5] [ 85%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[streamable-http-stateless-2025-11-25] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[in-memory-2026-07-28] [gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_default_uri_length_limit tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment [gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] [gw5] [ 85%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[in-memory-2026-07-28] tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[streamable-http-2026-07-28] [gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] [gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] [gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment [gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained [gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] [gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] [gw5] [ 85%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[streamable-http-2026-07-28] [gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[in-memory-2025-11-25] tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] [gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] [gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] [gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] [gw13] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] [gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] [gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] [gw11] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] [gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] [gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] [gw5] [ 85%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[in-memory-2025-11-25] tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[sse-2025-11-25] [gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] [gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] tests/shared/test_uri_template.py::test_match_never_raises [gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] [gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] [gw7] [ 85%] PASSED tests/server/mcpserver/test_server.py::test_resolver_crash_is_logged_as_the_tools_crash [gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] [gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] [gw5] [ 85%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[sse-2025-11-25] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] [gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[streamable-http-2025-11-25] [gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] [gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] [gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] tests/server/mcpserver/test_server.py::test_argument_validator_that_crashes_is_the_tools_crash tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] [gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] [gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] [gw15] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] [gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] [gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] [gw5] [ 85%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[streamable-http-2025-11-25] [gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] [gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[streamable-http-stateless-2025-11-25] [gw3] [ 85%] PASSED tests/server/test_stdio.py::test_stdio_server_takes_stdin_off_the_descriptor_table_while_serving tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] [gw10] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash [gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash [gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] [gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup] [gw13] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] [gw1] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] [gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] [gw11] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_never_raises tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] tests/test_examples.py::test_simple_echo [gw5] [ 86%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[streamable-http-stateless-2025-11-25] [gw12] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] [gw2] [ 86%] PASSED tests/server/mcpserver/test_server.py::test_report_progress_delegates_to_session_report_progress tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[in-memory-2026-07-28] [gw1] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] tests/server/mcpserver/test_server.py::test_context_headers_returns_request_headers [gw2] [ 86%] PASSED tests/server/mcpserver/test_server.py::test_context_headers_returns_request_headers tests/server/mcpserver/test_server.py::test_context_headers_is_none_without_request [gw12] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] [gw1] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] [gw2] [ 86%] PASSED tests/server/mcpserver/test_server.py::test_context_headers_is_none_without_request [gw5] [ 86%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[in-memory-2026-07-28] [gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[streamable-http-2026-07-28] tests/server/mcpserver/test_server.py::test_context_headers_is_none_when_request_carries_no_headers [gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] [gw2] [ 86%] PASSED tests/server/mcpserver/test_server.py::test_context_headers_is_none_when_request_carries_no_headers tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] tests/server/mcpserver/test_server.py::test_read_resource_template_error tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] [gw12] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] [gw5] [ 86%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[streamable-http-2026-07-28] [gw14] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] tests/interaction/lowlevel/test_resources.py::test_subscribe_resource_delivers_uri_to_handler[in-memory-2025-11-25] [gw15] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] [gw10] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] [gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] [gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] [gw5] [ 86%] PASSED tests/interaction/lowlevel/test_resources.py::test_subscribe_resource_delivers_uri_to_handler[in-memory-2025-11-25] tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] [gw13] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] [gw1] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] [gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] [gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] [gw10] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] [gw5] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] [gw12] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] [gw15] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] [gw6] [ 86%] PASSED tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection [gw13] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] [gw14] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] [gw10] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] [gw0] [ 86%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] [gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] [gw3] [ 86%] PASSED tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup] [gw13] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] [gw5] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] [gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] [gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] [gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2] [gw12] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] [gw15] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] [gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] [gw14] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] [gw2] [ 86%] PASSED tests/server/mcpserver/test_server.py::test_read_resource_template_error tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] tests/server/mcpserver/test_server.py::test_read_resource_template_not_found [gw10] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] [gw5] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] [gw13] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] [gw12] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] [gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] [gw2] [ 86%] PASSED tests/server/mcpserver/test_server.py::test_read_resource_template_not_found tests/server/mcpserver/test_server.py::test_tool_returning_input_required_result_reaches_client_sealed [gw5] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] [gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] [gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] [gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] [gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] [gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] [gw14] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] [gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] [gw2] [ 87%] PASSED tests/server/mcpserver/test_server.py::test_tool_returning_input_required_result_reaches_client_sealed tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] [gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] tests/server/mcpserver/test_server.py::test_tool_reads_input_responses_and_request_state_from_context_on_retry [gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] [gw12] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] [gw11] [ 87%] PASSED tests/test_examples.py::test_simple_echo tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] [gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] [gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] tests/test_examples.py::test_complex_inputs tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] [gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] [gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] [gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] [gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] [gw14] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] [gw2] [ 87%] PASSED tests/server/mcpserver/test_server.py::test_tool_reads_input_responses_and_request_state_from_context_on_retry [gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] [gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] [gw12] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] [gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] [gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] tests/server/mcpserver/test_server.py::test_prompt_returning_input_required_result_reaches_client_sealed [gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] [gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] [gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] [gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] [gw14] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] [gw2] [ 87%] PASSED tests/server/mcpserver/test_server.py::test_prompt_returning_input_required_result_reaches_client_sealed tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] [gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] [gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] [gw12] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] [gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] [gw2] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] [gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] [gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] [gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] [gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] [gw3] [ 87%] PASSED tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] [gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2_destroys_target] [gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] [gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain [gw2] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] [gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] [gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] [gw2] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression [gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] [gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] [gw14] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] [gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] [gw12] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] [gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] [gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] [gw2] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression tests/shared/test_uri_template.py::test_parse_rejects_empty_expression tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] [gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] [gw2] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_expression [gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable [gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] [gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] [gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] [gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] [gw12] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] [gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] [gw14] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] [gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] [gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] [gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] [gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] [gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] [gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] [gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] [gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] [gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] [gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] [gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] [gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] [gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] [gw12] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] [gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] [gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] [gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] [gw14] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] [gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] [gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] [gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] [gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] [gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] [gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] [gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] [gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] [gw3] [ 88%] PASSED tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2_destroys_target] [gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] tests/server/test_stdio.py::test_stdio_server_exits_cleanly_when_the_stdin_restore_fails [gw14] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] [gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] [gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname [gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] [gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] [gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] [gw12] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] [gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] [gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list [gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] [gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] [gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier [gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] [gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] [gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] [gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier [gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] [gw12] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] [gw14] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] [gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] [gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] tests/test_types.py::test_tool_result_content [gw11] [ 88%] PASSED tests/test_examples.py::test_complex_inputs tests/test_examples.py::test_direct_call_tool_result_return [gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] [gw2] [ 88%] PASSED tests/test_types.py::test_tool_result_content tests/test_types.py::test_tool_choice [gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] [gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] [gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] [gw2] [ 89%] PASSED tests/test_types.py::test_tool_choice [gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] tests/test_types.py::test_sampling_message_with_user_role tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] [gw10] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] [gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] [gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] [gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] [gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] [gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] [gw2] [ 89%] PASSED tests/test_types.py::test_sampling_message_with_user_role tests/test_types.py::test_sampling_message_with_assistant_role tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] [gw2] [ 89%] PASSED tests/test_types.py::test_sampling_message_with_assistant_role [gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] [gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] tests/test_types.py::test_sampling_message_backward_compatibility tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] [gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] [gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] [gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] [gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] [gw10] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] [gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] [gw2] [ 89%] PASSED tests/test_types.py::test_sampling_message_backward_compatibility tests/test_types.py::test_create_message_request_params_with_tools tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] [gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] [gw2] [ 89%] PASSED tests/test_types.py::test_create_message_request_params_with_tools tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] [gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] [gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] tests/test_types.py::test_create_message_result_with_tool_use [gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] [gw2] [ 89%] PASSED tests/test_types.py::test_create_message_result_with_tool_use [gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] [gw7] [ 89%] PASSED tests/server/mcpserver/test_server.py::test_argument_validator_that_crashes_is_the_tools_crash [gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] [gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] tests/test_types.py::test_create_message_result_basic [gw2] [ 89%] PASSED tests/test_types.py::test_create_message_result_basic tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] [gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] [gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] [gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] tests/test_types.py::test_client_capabilities_with_sampling_tools tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] [gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] tests/server/mcpserver/test_server.py::test_argument_validator_raising_mcp_error_is_a_protocol_error [gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] [gw10] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] [gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] [gw2] [ 89%] PASSED tests/test_types.py::test_client_capabilities_with_sampling_tools [gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] [gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] [gw3] [ 89%] PASSED tests/server/test_stdio.py::test_stdio_server_exits_cleanly_when_the_stdin_restore_fails tests/server/test_stdio.py::test_stdio_server_takes_stdout_off_the_descriptor_table_while_serving tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] [gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] [gw2] [ 89%] PASSED tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly [gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] [gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] [gw7] [ 89%] PASSED tests/server/mcpserver/test_server.py::test_argument_validator_raising_mcp_error_is_a_protocol_error tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] [gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] [gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] [gw10] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] tests/server/mcpserver/test_server.py::test_resource_error_escaping_a_tool_is_anticipated tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] [gw2] [ 89%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] [gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] [gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] [gw2] [ 89%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] [gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] [gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] [gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] [gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] [gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] [gw2] [ 89%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] [gw13] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] [gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] [gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] [gw15] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] [gw10] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] [gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] [gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] [gw13] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] [gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] [gw12] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] [gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] [gw14] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] [gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] [gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] [gw15] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] [gw12] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] [gw10] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] [gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] [gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] [gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] [gw13] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] [gw14] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] [gw7] [ 90%] PASSED tests/server/mcpserver/test_server.py::test_resource_error_escaping_a_tool_is_anticipated tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] [gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] [gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] [gw15] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] tests/server/mcpserver/test_server.py::test_resource_crash_escaping_a_tool_is_the_tools_crash [gw13] [ 90%] PASSED tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields [gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields [gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] [gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] [gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] [gw10] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] [gw14] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] [gw12] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] [gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] [gw13] [ 90%] PASSED tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete [gw15] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing [gw13] [ 90%] PASSED tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private [gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions [gw13] [ 90%] PASSED tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private tests/test_types.py::test_empty_result_dumps_no_fields_by_default [gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] [gw13] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_no_fields_by_default tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly [gw8] [ 90%] SKIPPED tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly [gw14] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged [gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] [gw10] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] [gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] [gw5] [ 90%] PASSED tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions [gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] [gw15] [ 90%] PASSED tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing [gw3] [ 90%] PASSED tests/server/test_stdio.py::test_stdio_server_takes_stdout_off_the_descriptor_table_while_serving tests/server/test_stdio.py::test_stdio_server_diverts_stdout_to_the_null_device_when_stderr_is_unusable tests/test_types.py::test_jsonrpc_request [gw13] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version [gw1] [ 90%] PASSED tests/test_types.py::test_jsonrpc_request tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings [gw13] [ 90%] PASSED tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag [gw7] [ 90%] PASSED tests/server/mcpserver/test_server.py::test_resource_crash_escaping_a_tool_is_the_tools_crash tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state [gw8] [ 90%] PASSED tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps tests/server/mcpserver/test_server.py::test_tool_that_recovers_from_a_missing_resource_logs_nothing [gw5] [ 90%] PASSED tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step tests/test_types.py::test_method_initialization [gw12] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] [gw0] [ 90%] PASSED tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions [gw13] [ 91%] PASSED tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state [gw14] [ 91%] PASSED tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row [gw1] [ 91%] PASSED tests/test_types.py::test_method_initialization [gw15] [ 91%] PASSED tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] [gw8] [ 91%] PASSED tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it [gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] [gw7] [ 91%] PASSED tests/server/mcpserver/test_server.py::test_tool_that_recovers_from_a_missing_resource_logs_nothing tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps [gw5] [ 91%] PASSED tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 [gw10] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] tests/test_types.py::test_tool_use_content tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] tests/server/mcpserver/test_server.py::test_static_resource_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] [gw0] [ 91%] PASSED tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps [gw13] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] [gw8] [ 91%] PASSED tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it tests/types/test_methods.py::test_built_in_maps_are_immutable tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] [gw0] [ 91%] PASSED tests/types/test_methods.py::test_built_in_maps_are_immutable [gw14] [ 91%] PASSED tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal [gw15] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] [gw12] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] [gw1] [ 91%] PASSED tests/test_types.py::test_tool_use_content tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject [gw5] [ 91%] PASSED tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject [gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape [gw0] [ 91%] PASSED tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms [gw13] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values [gw8] [ 91%] PASSED tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values [gw0] [ 91%] PASSED tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms [gw10] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing [gw0] [ 91%] PASSED tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes [gw13] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] [gw10] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] [gw14] [ 91%] PASSED tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function [gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] [gw11] [ 91%] PASSED tests/test_examples.py::test_direct_call_tool_result_return tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas [gw8] [ 91%] PASSED tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas [gw0] [ 91%] PASSED tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row [gw15] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] [gw1] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] [gw1] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row [gw0] [ 91%] PASSED tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] [gw14] [ 91%] PASSED tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] [gw7] [ 91%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas tests/test_examples.py::test_desktop [gw5] [ 91%] PASSED tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] tests/server/mcpserver/test_server.py::test_resource_template_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback [gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] [gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] [gw12] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] [gw10] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing [gw5] [ 91%] PASSED tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions [gw13] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] [gw0] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] [gw15] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] [gw14] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] [gw1] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] [gw8] [ 91%] PASSED tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas [gw0] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info [gw14] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info tests/types/test_methods.py::test_2026_07_28_results_require_result_type [gw5] [ 91%] PASSED tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] [gw0] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] [gw0] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] [gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] [gw14] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_results_require_result_type [gw15] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it [gw12] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] [gw12] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] [gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] [gw14] [ 92%] PASSED tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders [gw13] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] [gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] [gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] [gw14] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] [gw15] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] [gw14] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] [gw7] [ 92%] PASSED tests/server/mcpserver/test_server.py::test_resource_template_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] [gw13] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] [gw14] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] [gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] [gw8] [ 92%] PASSED tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys [gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] [gw12] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] tests/server/mcpserver/test_server.py::test_read_resource_wraps_a_crash_as_unexpected_resource_error_chained_to_the_original tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] [gw14] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] [gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] [gw14] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] [gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] [gw13] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] [gw15] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] [gw14] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] [gw12] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] [gw13] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] [gw8] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] [gw14] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] [gw9] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] [gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] [gw14] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] [gw7] [ 92%] PASSED tests/server/mcpserver/test_server.py::test_read_resource_wraps_a_crash_as_unexpected_resource_error_chained_to_the_original tests/server/mcpserver/test_server.py::test_custom_resource_subclass_crash_is_wrapped_and_logged_like_a_function_resource tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] [gw14] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] [gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] [gw8] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] [gw9] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] [gw14] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] [gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] [gw12] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] [gw9] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 [gw14] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] [gw10] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] [gw12] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] [gw13] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] [gw13] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 [gw15] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] [gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] [gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] [gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] [gw8] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] [gw14] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] [gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] [gw15] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] [gw10] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] [gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] [gw12] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] [gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] [gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] [gw8] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] [gw13] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] [gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] [gw14] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] [gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] [gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] [gw10] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field [gw15] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] [gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] [gw13] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] [gw14] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] [gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] [gw12] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] [gw10] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] [gw14] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] [gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] [gw8] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] [gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] [gw7] [ 93%] PASSED tests/server/mcpserver/test_server.py::test_custom_resource_subclass_crash_is_wrapped_and_logged_like_a_function_resource [gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] tests/server/mcpserver/test_server.py::test_static_resource_raising_resource_not_found_error_is_invalid_params_logged_at_info [gw14] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] [gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] [gw15] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version [gw12] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version [gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] [gw13] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] [gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one [gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] [gw8] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] [gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] [gw10] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] [gw14] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] [gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] [gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] [gw8] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] [gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] [gw13] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] [gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] [gw12] [ 93%] PASSED tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one [gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] [gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras [gw14] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] [gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] [gw10] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] [gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] [gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] [gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] [gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] [gw13] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] [gw15] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] [gw4] [ 94%] PASSED tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file [gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] [gw1] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] [gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] [gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] [gw10] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] [gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] [gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] [gw3] [ 94%] PASSED tests/server/test_stdio.py::test_stdio_server_diverts_stdout_to_the_null_device_when_stderr_is_unusable tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp [gw1] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] [gw12] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] [gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] tests/server/test_stdio.py::test_a_second_stdio_server_on_the_same_process_streams_is_refused [gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] [gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] [gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] [gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] [gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] [gw7] [ 94%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_raising_resource_not_found_error_is_invalid_params_logged_at_info [gw15] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] [gw12] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] tests/server/mcpserver/test_server.py::test_deliberate_resource_error_passes_its_message_through_and_is_logged_at_info tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] [gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] [gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] [gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] [gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] [gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] [gw10] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] [gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] [gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] [gw12] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] [gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] [gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] [gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] [gw15] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] [gw15] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] [gw15] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] [gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] [gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] [gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] [gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] [gw10] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] [gw15] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] [gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] [gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] [gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] [gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] [gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] [gw10] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] [gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] [gw12] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] [gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] [gw15] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] [gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] [gw12] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] [gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] [gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] [gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] [gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] [gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] [gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] [gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] [gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] [gw4] [ 95%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call [gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] [gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] [gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] [gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] [gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] [gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] [gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] [gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] [gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] [gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] [gw5] [ 95%] PASSED tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] [gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] [gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] [gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] [gw3] [ 95%] PASSED tests/server/test_stdio.py::test_a_second_stdio_server_on_the_same_process_streams_is_refused tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] [gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] [gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] [gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] [gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] tests/server/test_stdio.py::test_a_refused_claim_releases_the_stream_it_already_took [gw5] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] [gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] [gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] [gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] [gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] [gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] [gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] [gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] [gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] [gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] [gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] [gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] [gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] [gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] [gw5] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] [gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] [gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] [gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] [gw7] [ 95%] PASSED tests/server/mcpserver/test_server.py::test_deliberate_resource_error_passes_its_message_through_and_is_logged_at_info [gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] tests/server/mcpserver/test_server.py::test_prompt_raising_unexpected_exception_is_logged_once [gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] [gw5] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] [gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] [gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] [gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] [gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] [gw5] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] [gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] [gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] [gw5] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] [gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] [gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] [gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] [gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] [gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] [gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] [gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] [gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] [gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] [gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] [gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] [gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] [gw3] [ 96%] PASSED tests/server/test_stdio.py::test_a_refused_claim_releases_the_stream_it_already_took tests/server/test_stdio.py::test_the_claim_engages_even_when_stderr_is_closed tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] [gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] [gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] [gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] [gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] [gw5] [ 96%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] [gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] [gw7] [ 96%] PASSED tests/server/mcpserver/test_server.py::test_prompt_raising_unexpected_exception_is_logged_once [gw4] [ 96%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] [gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] [gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] [gw13] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] [gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] [gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] [gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] [gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] [gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] [gw13] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] [gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] [gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] [gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] [gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] [gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] [gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] [gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] [gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] [gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] [gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] [gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] [gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] [gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] [gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] [gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] [gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] [gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] [gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] [gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] [gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] [gw13] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] [gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] [gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] [gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] [gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] [gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] [gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] [gw13] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] [gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] [gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] [gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] [gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] [gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] [gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] [gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] [gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] [gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] [gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] [gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] [gw12] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] [gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] [gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] [gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] [gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] [gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] [gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] [gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] [gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] [gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] [gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] [gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] [gw11] [ 97%] PASSED tests/test_examples.py::test_desktop tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] [gw12] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] tests/test_examples.py::test_docs_examples[README.md:47-63] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] [gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] [gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] [gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] [gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] [gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] [gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] [gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] [gw11] [ 97%] PASSED tests/test_examples.py::test_docs_examples[README.md:47-63] [gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] tests/test_examples.py::test_docs_examples[README.md:90-103] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] [gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] [gw12] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] [gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] [gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] [gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] [gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] [gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] [gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] [gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] [gw11] [ 97%] PASSED tests/test_examples.py::test_docs_examples[README.md:90-103] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] [gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] tests/test_examples.py::test_docs_examples[docs/index.md:43-45] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] [gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] [gw4] [ 97%] PASSED tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] [gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] [gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] [gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] [gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] [gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] [gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] [gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] [gw12] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] [gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] [gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] [gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] tests/types/test_request_name_param.py::test_core_request_types_inherit_none tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] tests/types/test_request_name_param.py::test_request_base_declares_no_name_param tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field [gw11] [ 97%] PASSED tests/test_examples.py::test_docs_examples[docs/index.md:43-45] tests/types/test_parity.py::test_every_surface_class_is_accounted_for tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] [gw8] [ 97%] PASSED tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment [gw14] [ 97%] PASSED tests/types/test_request_name_param.py::test_core_request_types_inherit_none tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] [gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] [gw5] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types [gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] [gw9] [ 97%] PASSED tests/types/test_parity.py::test_every_surface_class_is_accounted_for tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] [gw13] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] [gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] [gw12] [ 98%] PASSED tests/types/test_request_name_param.py::test_request_base_declares_no_name_param [gw10] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] [gw1] [ 98%] PASSED tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field [gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] [gw7] [ 98%] PASSED tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] [gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] [gw10] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] [gw14] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] [gw3] [ 98%] PASSED tests/server/test_stdio.py::test_the_claim_engages_even_when_stderr_is_closed [gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises [gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] tests/server/test_stdio.py::test_stdio_server_serves_in_place_when_the_diversion_cannot_be_opened tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] [gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises [gw10] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] [gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] [gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] [gw12] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] [gw14] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] [gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] [gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] [gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] [gw15] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] [gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] [gw10] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] [gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] [gw13] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] [gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] [gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] [gw14] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] [gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] [gw10] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] [gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] [gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] [gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] [gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] [gw15] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] [gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] [gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] tests/types/test_version.py::test_supported_versions_are_known [gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] [gw12] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body [gw10] [ 98%] PASSED tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] [gw13] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params tests/types/test_version.py::test_known_versions_are_strictly_ordered tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope [gw1] [ 98%] PASSED tests/types/test_version.py::test_known_versions_are_strictly_ordered [gw15] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object [gw5] [ 98%] PASSED tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object [gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve [gw9] [ 98%] PASSED tests/types/test_version.py::test_supported_versions_are_known [gw14] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives [gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] [gw7] [ 98%] PASSED tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve [gw12] [ 98%] PASSED tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] [gw8] [ 98%] PASSED tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope [gw14] [ 98%] PASSED tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests [gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] [gw3] [ 98%] PASSED tests/server/test_stdio.py::test_stdio_server_serves_in_place_when_the_diversion_cannot_be_opened [gw6] [ 98%] PASSED tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection tests/server/test_stdio.py::test_a_degraded_session_does_not_close_the_sys_stream_it_served tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error [gw13] [ 98%] PASSED tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives [gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] [gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] [gw6] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error [gw6] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] [gw4] [ 99%] PASSED tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe [gw6] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] [gw6] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes [gw6] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] [gw4] [ 99%] SKIPPED tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] [gw11] [ 99%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] [gw6] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] [gw6] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] [gw4] [ 99%] SKIPPED tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] [gw11] [ 99%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] [gw4] [ 99%] SKIPPED tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] tests/shared/test_uri_template.py::test_match_no_match[static-different] [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[static-different] tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] [gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] [gw3] [ 99%] PASSED tests/server/test_stdio.py::test_a_degraded_session_does_not_close_the_sys_stream_it_served tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] [gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] [gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool [gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats [gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising [gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering [gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only [gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run [gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run [gw2] [ 99%] PASSED tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated [gw2] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree [gw2] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code [gw2] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] [gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] [gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] [gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] [gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] [gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] [gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] [gw2] [100%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] ============ 5904 passed, 8 skipped, 1 xfailed in 68.39s (0:01:08) ============= Finished executing pytestCheckPhase pytestCheckPhase completed in 1 minutes 22 seconds Running phase: pytestcachePhase Running phase: pytestRemoveBytecodePhase