nixbot

builds

succeeded python3.14-mcp-2.3.0 checks.aarch64-linux.pkgs-mistral-vibe · build #9444 · raw

1elastic-arm-9a50e053: building yyacg7rilvnnrl28cqr3s0svq45bykmg-python3.14-mcp-2.3.0.drv2structuredAttrs is enabled3Sourcing python-remove-tests-dir-hook4Sourcing python-catch-conflicts-hook.sh5Sourcing python-remove-bin-bytecode-hook.sh6Sourcing pypa-build-hook7Using pypaBuildPhase8Sourcing python-runtime-deps-check-hook9Using pythonRuntimeDepsCheckHook10Sourcing pypa-install-hook11Using pypaInstallPhase12Sourcing python-imports-check-hook.sh13Using pythonImportsCheckPhase14Sourcing python-metadata-check-hook.sh15Using pythonMetadataCheckPhase16Sourcing python-namespaces-hook17Sourcing python-catch-conflicts-hook.sh18Sourcing pytest-check-hook19Using pytestCheckPhase
unpackPhase
20unpacking source archive /nix/store/prbkdf4kv543ij4r95gk96pykmcqy7xp-source21source root is source22setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "source/uv.lock"
configurePhase
23no configure script, doing nothing
buildPhase
24Executing pypaBuildPhase25Setting UV_DYNAMIC_VERSIONING_BYPASS to 2.3.026Creating a wheel...27pypa build flags: --no-isolation --outdir dist/ --wheel28* Getting build dependencies for wheel...29* Building wheel...30Successfully built mcp-2.3.0-py3-none-any.whl31Finished creating a wheel...32Finished executing pypaBuildPhase
pythonRuntimeDepsCheckHook
33Executing pythonRuntimeDepsCheck34Checking runtime dependencies for mcp-2.3.0-py3-none-any.whl35Finished executing pythonRuntimeDepsCheck
installPhase
36Executing pypaInstallPhase37Successfully installed mcp-2.3.0-py3-none-any.whl38Finished executing pypaInstallPhase
pythonOutputDistPhase
39Executing pythonOutputDistPhase40Finished executing pythonOutputDistPhase
fixupPhase
41shrinking RPATHs of ELF executables and libraries in /nix/store/n0mi130qx684azzz09g1vdlbzhfhqw05-python3.14-mcp-2.3.0-dist42checking for references to /build/ in /nix/store/n0mi130qx684azzz09g1vdlbzhfhqw05-python3.14-mcp-2.3.0-dist...43patching script interpreter paths in /nix/store/n0mi130qx684azzz09g1vdlbzhfhqw05-python3.14-mcp-2.3.0-dist44shrinking RPATHs of ELF executables and libraries in /nix/store/cfbymj1h76zr6q2478dnd7j7v6fhmmhl-python3.14-mcp-2.3.045checking for references to /build/ in /nix/store/cfbymj1h76zr6q2478dnd7j7v6fhmmhl-python3.14-mcp-2.3.0...46patching script interpreter paths in /nix/store/cfbymj1h76zr6q2478dnd7j7v6fhmmhl-python3.14-mcp-2.3.047stripping (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/bin48Rewriting #!/nix/store/lq2fsnmg0q3y0vlxn91w8s8wvj1m6fld-python3-3.14.8/bin/python3.14 to #!/nix/store/lq2fsnmg0q3y0vlxn91w8s8wvj1m6fld-python3-3.14.849wrapping `/nix/store/cfbymj1h76zr6q2478dnd7j7v6fhmmhl-python3.14-mcp-2.3.0/bin/mcp'...50Executing pythonRemoveTestsDir51Finished executing pythonRemoveTestsDir
installCheckPhase
52no Makefile or custom installCheckPhase, doing nothing
pythonImportsCheckPhase
53Executing pythonImportsCheckPhase54Check whether the following modules can be imported: mcp
pythonMetadataCheckPhase
55Executing pythonMetadataCheckPhase
pytestCheckPhase
56Executing pytestCheckPhase57pytest 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=1658============================= test session starts ==============================59platform linux -- Python 3.14.8, pytest-9.1.1, pluggy-1.6.060rootdir: /build/source61configfile: pyproject.toml62plugins: anyio-4.15.1, examples-0.0.18, inline-snapshot-0.34.2, logfire-4.41.0, asyncio-1.4.0, xdist-3.8.063asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function6416 workers [5913 items] 65scheduling tests via LoadScheduling6667tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 68tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 69tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 70tests/client/test_client_caching.py::test_a_raising_eviction_does_not_block_notification_delivery 71tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 72tests/client/test_session.py::test_client_session_default_client_info 73tests/docs_src/test_cancellation.py::test_a_def_tool_nobody_cancels_indexes_every_book_and_cleans_up 74tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 75tests/docs_src/test_media.py::test_image_return_becomes_an_image_content_block 76tests/docs/test_translations.py::test_reimpose_restores_fences_pins_ids_and_leaves_reordered_links_where_the_translation_put_them 77tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 78tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification 79[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 80[gw6] [ 0%] PASSED tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 81tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 82tests/docs_src/test_elicitation.py::test_resolver_asks_only_when_the_folder_is_not_empty 83tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 84tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 85tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 86tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 87[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 88[gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 89tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 90[gw1] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 91tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 92[gw5] [ 0%] PASSED tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 93tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 94[gw11] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 95[gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 96tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 97[gw9] [ 0%] PASSED tests/docs/test_translations.py::test_reimpose_restores_fences_pins_ids_and_leaves_reordered_links_where_the_translation_put_them 98[gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 99[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 100[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 101tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 102tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 103tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 104[gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 105tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 106[gw3] [ 0%] PASSED tests/client/test_session.py::test_client_session_default_client_info 107tests/client/test_session.py::test_client_session_version_negotiation_success 108[gw5] [ 0%] PASSED tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 109tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 110tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 111[gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 112[gw1] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 113[gw11] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 114tests/docs/test_translations.py::test_unwrap_ends_the_reply_with_exactly_the_trailing_newlines_of_the_english 115[gw9] [ 0%] PASSED tests/docs/test_translations.py::test_unwrap_ends_the_reply_with_exactly_the_trailing_newlines_of_the_english 116tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-dropped] 117tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 118tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 119[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 120[gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 121[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 122tests/cli/test_claude.py::test_generates_uv_run_command 123tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 124[gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 125tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 126[gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 127tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 128[gw5] [ 0%] PASSED tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 129tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 130tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 131[gw3] [ 0%] PASSED tests/client/test_session.py::test_client_session_version_negotiation_success 132tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 133tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 134[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_generates_uv_run_command 135[gw5] [ 0%] PASSED tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 136[gw11] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 137[gw9] [ 0%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-dropped] 138tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-level] 139[gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 140tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 141[gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 142tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 143[gw8] [ 0%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification 144[gw1] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 145[gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 146tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 147[gw9] [ 0%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-level] 148tests/client/test_session.py::test_client_session_version_negotiation_failure 149tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages 150tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 151tests/cli/test_claude.py::test_file_spec_without_object_suffix 152[gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 153[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 154tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 155tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 156tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 157tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-added] 158[gw11] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 159tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 160[gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 161[gw5] [ 0%] PASSED tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 162[gw9] [ 0%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-added] 163[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_file_spec_without_object_suffix 164tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 165tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 166[gw1] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 167tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 168[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 169tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-moved-to-another-section] 170[gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 171tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 172tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 173[gw3] [ 0%] PASSED tests/client/test_session.py::test_client_session_version_negotiation_failure 174tests/client/test_session.py::test_client_capabilities_default 175[gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 176tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 177[gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 178[gw9] [ 0%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-moved-to-another-section] 179tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 180tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 181tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 182[gw11] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 183tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-unclosed] 184[gw8] [ 0%] PASSED tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages 185[gw3] [ 0%] PASSED tests/client/test_session.py::test_client_capabilities_default 186[gw2] [ 0%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 187[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 188[gw7] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 189[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 190[gw1] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 191tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 192tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 193tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 194tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 195tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 196tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 197[gw9] [ 0%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-unclosed] 198tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[target-mangled] 199[gw2] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 200tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 201[gw11] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 202tests/client/test_session.py::test_client_capabilities_with_custom_callbacks 203tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 204[gw7] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 205[gw9] [ 1%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[target-mangled] 206tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 207[gw3] [ 1%] PASSED tests/client/test_session.py::test_client_capabilities_with_custom_callbacks 208[gw2] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 209[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 210tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 211[gw7] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 212tests/client/test_session.py::test_client_capabilities_with_sampling_tools 213tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[link-moved-to-another-section] 214[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 215[gw1] [ 1%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 216tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 217[gw5] [ 1%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 218tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 219tests/cli/test_claude.py::test_with_editable_adds_flag 220tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 221[gw3] [ 1%] PASSED tests/client/test_session.py::test_client_capabilities_with_sampling_tools 222[gw11] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 223[gw9] [ 1%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[link-moved-to-another-section] 224[gw2] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 225tests/client/test_session.py::test_initialize_result 226tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 227[gw7] [ 1%] PASSED tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 228tests/client/test_extension.py::test_advertise_serves_captured_settings 229tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 230[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 231tests/docs/test_translations.py::test_validate_flags_code_spans_markers_banned_terms_and_abridgement 232tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 233[gw1] [ 1%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 234tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 235[gw3] [ 1%] PASSED tests/client/test_session.py::test_initialize_result 236[gw7] [ 1%] PASSED tests/client/test_extension.py::test_advertise_serves_captured_settings 237tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 238tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 239[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_with_editable_adds_flag 240tests/cli/test_claude.py::test_env_vars_written 241tests/client/test_session.py::test_client_tool_call_with_meta[None] 242[gw8] [ 1%] PASSED tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 243[gw2] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 244[gw11] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 245tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 246[gw7] [ 1%] PASSED tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 247tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 248[gw9] [ 1%] PASSED tests/docs/test_translations.py::test_validate_flags_code_spans_markers_banned_terms_and_abridgement 249tests/docs/test_translations.py::test_validate_counts_list_items_and_table_rows_whatever_the_language_of_a_placeholder 250tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 251tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 252[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 253tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 254[gw9] [ 1%] PASSED tests/docs/test_translations.py::test_validate_counts_list_items_and_table_rows_whatever_the_language_of_a_placeholder 255[gw7] [ 1%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 256[gw5] [ 1%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 257tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 258tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 259[gw3] [ 1%] PASSED tests/client/test_session.py::test_client_tool_call_with_meta[None] 260tests/client/test_session.py::test_client_tool_call_with_meta[meta1] 261[gw1] [ 1%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 262tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 263tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[key] 264[gw11] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 265[gw8] [ 1%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 266[gw7] [ 1%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 267tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 268[gw2] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 269[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_env_vars_written 270tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 271tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 272[gw7] [ 1%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 273tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 274[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 275tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 276tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 277[gw3] [ 1%] PASSED tests/client/test_session.py::test_client_tool_call_with_meta[meta1] 278tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 279[gw11] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 280tests/client/test_session.py::test_receive_loop_answers_malformed_inbound_request_with_invalid_params 281[gw1] [ 1%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 282tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 283[gw2] [ 1%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 284[gw7] [ 1%] PASSED tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 285[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 286tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 287[gw3] [ 1%] PASSED tests/client/test_session.py::test_receive_loop_answers_malformed_inbound_request_with_invalid_params 288tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 289tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 290[gw8] [ 1%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 291tests/client/test_session.py::test_receive_loop_answers_unknown_request_method_with_method_not_found 292[gw11] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 293[gw7] [ 1%] PASSED tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 294[gw2] [ 1%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 295[gw3] [ 1%] PASSED tests/client/test_session.py::test_receive_loop_answers_unknown_request_method_with_method_not_found 296tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 297tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 298[gw5] [ 1%] PASSED tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 299tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 300tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 301[gw2] [ 1%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 302tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 303tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 304[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 305tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 306tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 307[gw7] [ 1%] PASSED tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 308tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 309[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 310tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 311tests/client/test_session.py::test_receive_loop_drops_unknown_notification_method_without_response 312[gw3] [ 1%] PASSED tests/client/test_session.py::test_receive_loop_drops_unknown_notification_method_without_response 313tests/client/test_session.py::test_on_request_rejects_a_server_request_absent_at_the_negotiated_version 314[gw1] [ 1%] PASSED tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 315[gw3] [ 1%] PASSED tests/client/test_session.py::test_on_request_rejects_a_server_request_absent_at_the_negotiated_version 316[gw7] [ 2%] PASSED tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 317tests/client/test_session.py::test_on_request_validates_the_callback_result_against_the_surface_schema 318[gw8] [ 2%] PASSED tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 319tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add-add-False] 320tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 321[gw15] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 322tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 323[gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 324tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 325[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 326[gw7] [ 2%] PASSED tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 327tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 328[gw3] [ 2%] PASSED tests/client/test_session.py::test_on_request_validates_the_callback_result_against_the_surface_schema 329[gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 330tests/client/test_session.py::test_on_request_callback_returning_a_surface_invalid_result_is_internal_error 331tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 332tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 333tests/cli/test_claude.py::test_other_servers_preserved 334[gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 335[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] 336tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 337[gw1] [ 2%] PASSED tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 338tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 339[gw7] [ 2%] PASSED tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 340[gw5] [ 2%] PASSED tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 341tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 342tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 343[gw15] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 344[gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 345[gw7] [ 2%] PASSED tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 346[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_other_servers_preserved 347tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 348tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 349tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 350[gw8] [ 2%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 351tests/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] 352[gw6] [ 2%] PASSED tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 353tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 354tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 355[gw7] [ 2%] PASSED tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 356[gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 357[gw5] [ 2%] PASSED tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 358[gw10] [ 2%] PASSED tests/docs_src/test_media.py::test_image_return_becomes_an_image_content_block 359tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 360tests/client/test_input_required.py::test_default_max_rounds_constant 361tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 362[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] 363[gw7] [ 2%] PASSED tests/client/test_input_required.py::test_default_max_rounds_constant 364tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 365tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 366[gw15] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 367[gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 368tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 369[gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 370tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[ add-=?base64?IGFkZA==?=-True] 371tests/docs_src/test_media.py::test_image_result_has_no_structured_content_and_no_output_schema 372tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 373tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 374[gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 375[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 376[gw1] [ 2%] PASSED tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 377tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 378[gw5] [ 2%] PASSED tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 379tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 380[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] 381tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add -=?base64?YWRkIA==?=-True] 382tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 383[gw15] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 384tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 385tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 386[gw7] [ 2%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 387[gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 388[gw1] [ 2%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 389tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 390tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 391[gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 392tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 393[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] 394tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 395[gw10] [ 2%] PASSED tests/docs_src/test_media.py::test_image_result_has_no_structured_content_and_no_output_schema 396[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 397tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 398tests/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] 399[gw5] [ 2%] PASSED tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 400[gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 401tests/docs_src/test_media.py::test_audio_return_becomes_an_audio_content_block 402[gw15] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 403[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] 404[gw1] [ 2%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 405tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 406tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 407tests/cli/test_claude.py::test_raises_when_config_dir_missing 408tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 409[gw4] [ 2%] PASSED tests/client/test_client_caching.py::test_a_raising_eviction_does_not_block_notification_delivery 410tests/client/test_client_caching.py::test_a_second_list_tools_within_the_ttl_is_served_from_the_cache 411[gw7] [ 2%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 412tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 413[gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 414tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 415[gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 416tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 417[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_raises_when_config_dir_missing 418[gw5] [ 2%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 419tests/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] 420tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 421[gw1] [ 2%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 422[gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 423[gw15] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 424[gw11] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 425[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] 426tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 427[gw4] [ 2%] PASSED tests/client/test_client_caching.py::test_a_second_list_tools_within_the_ttl_is_served_from_the_cache 428tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 429tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial002.py] 430tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 431tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 432tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 433[gw3] [ 2%] PASSED tests/client/test_session.py::test_on_request_callback_returning_a_surface_invalid_result_is_internal_error 434[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 435tests/client/test_client_caching.py::test_an_expired_entry_is_refetched 436tests/client/test_session.py::test_on_notify_drops_a_server_notification_absent_at_the_negotiated_version 437[gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial002.py] 438tests/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] 439[gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 440tests/client/test_auth.py::test_union_scopes[dedup] 441[gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[dedup] 442[gw5] [ 3%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 443tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 444[gw0] [ 3%] PASSED tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 445tests/cli/test_claude.py::test_get_uv_path[None-uv] 446[gw1] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 447[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] 448tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 449tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 450[gw7] [ 3%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 451tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 452tests/client/test_auth.py::test_union_scopes[no-previous] 453tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 454tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 455[gw0] [ 3%] PASSED tests/cli/test_claude.py::test_get_uv_path[None-uv] 456[gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[no-previous] 457[gw6] [ 3%] PASSED tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 458[gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 459tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 460[gw1] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 461[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 462tests/client/test_auth.py::test_union_scopes[no-new] 463[gw8] [ 3%] PASSED tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 464tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 465[gw5] [ 3%] PASSED tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 466tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 467[gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[no-new] 468[gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 469tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 470tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 471[gw4] [ 3%] PASSED tests/client/test_client_caching.py::test_an_expired_entry_is_refetched 472tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 473tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 474tests/client/test_auth.py::test_union_scopes[both-empty] 475[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 476[gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[both-empty] 477[gw1] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 478[gw3] [ 3%] PASSED tests/client/test_session.py::test_on_notify_drops_a_server_notification_absent_at_the_negotiated_version 479tests/client/test_session.py::test_on_request_elicitation_with_loose_property_schema_reaches_the_callback 480tests/client/test_client_caching.py::test_each_list_verb_caches_independently_under_its_own_method 481[gw8] [ 3%] PASSED tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 482tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] 483[gw7] [ 3%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 484tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 485[gw0] [ 3%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 486tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 487[gw3] [ 3%] PASSED tests/client/test_session.py::test_on_request_elicitation_with_loose_property_schema_reaches_the_callback 488[gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] 489tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 490tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 491[gw1] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 492tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 493tests/client/test_session.py::test_send_request_validates_the_server_result_against_the_surface_schema 494tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] 495tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 496[gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 497tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 498[gw3] [ 3%] PASSED tests/client/test_session.py::test_send_request_validates_the_server_result_against_the_surface_schema 499[gw5] [ 3%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 500[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 501tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 502[gw0] [ 3%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 503[gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] 504tests/client/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 505[gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 506[gw8] [ 3%] PASSED tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 507tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 508[gw7] [ 3%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 509[gw3] [ 3%] PASSED tests/client/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 510[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 511tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 512tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 513[gw4] [ 3%] PASSED tests/client/test_client_caching.py::test_each_list_verb_caches_independently_under_its_own_method 514tests/client/test_session.py::test_raising_sampling_callback_answers_with_code_zero 515tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 516tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 517[gw1] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 518tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 519tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] 520[gw7] [ 3%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 521[gw5] [ 3%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 522tests/client/test_client_caching.py::test_read_resource_caches_per_uri 523[gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 524[gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] 525tests/client/test_list_roots_callback.py::test_list_roots_callback 526tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 527tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 528tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial001.py] 529tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 530tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 531[gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 532[gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial001.py] 533[gw0] [ 3%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 534[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 535tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 536tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 537[gw8] [ 3%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 538[gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 539tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 540[gw1] [ 3%] PASSED tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 541tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 542[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 543tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 544tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 545[gw11] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 546tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] 547[gw5] [ 3%] PASSED tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 548tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 549[gw4] [ 3%] PASSED tests/client/test_client_caching.py::test_read_resource_caches_per_uri 550tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 551[gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 552tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 553[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 554[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 555[gw7] [ 4%] PASSED tests/client/test_list_roots_callback.py::test_list_roots_callback 556[gw3] [ 4%] PASSED tests/client/test_session.py::test_raising_sampling_callback_answers_with_code_zero 557tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 558[gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] 559tests/client/test_client_caching.py::test_cursor_continuations_neither_read_nor_write_the_cache 560[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 561[gw10] [ 4%] PASSED tests/docs_src/test_media.py::test_audio_return_becomes_an_audio_content_block 562tests/client/test_session.py::test_receive_loop_logs_and_drops_malformed_notification 563[gw2] [ 4%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 564tests/cli/test_utils.py::test_parse_file_path_missing 565tests/client/test_logging_callback.py::test_logging_callback 566tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] 567tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 568[gw8] [ 4%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 569tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 570tests/client/test_auth.py::test_validate_resource_custom_callback 571[gw2] [ 4%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 572tests/docs_src/test_media.py::test_in_memory_bytes_with_a_format_become_the_same_image_content_block 573[gw5] [ 4%] PASSED tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 574tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 575[gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] 576tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] 577[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_resource_custom_callback 578[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_parse_file_path_missing 579[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 580[gw4] [ 4%] PASSED tests/client/test_client_caching.py::test_cursor_continuations_neither_read_nor_write_the_cache 581tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 582tests/cli/test_utils.py::test_parse_file_exit_on_dir 583tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 584[gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] 585tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] 586[gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] 587tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 588[gw2] [ 4%] PASSED tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 589tests/client/test_client_caching.py::test_an_expired_cursor_rejection_evicts_the_methods_entry 590[gw10] [ 4%] PASSED tests/docs_src/test_media.py::test_in_memory_bytes_with_a_format_become_the_same_image_content_block 591tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 592[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_parse_file_exit_on_dir 593[gw8] [ 4%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 594tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 595tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] 596[gw5] [ 4%] PASSED tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 597[gw9] [ 4%] PASSED tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[key] 598tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 599[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 600[gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] 601[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 602[gw3] [ 4%] PASSED tests/client/test_session.py::test_receive_loop_logs_and_drops_malformed_notification 603tests/client/test_session.py::test_raising_message_handler_on_transport_exception_costs_the_delivery_not_the_connection 604tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 605tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 606tests/docs_src/test_media.py::test_path_file_is_read_when_the_result_is_built 607tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial001.py] 608tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[entry-string] 609[gw2] [ 4%] PASSED tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 610tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 611tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 612tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 613[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 614[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 615[gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial001.py] 616tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] 617[gw8] [ 4%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 618[gw10] [ 4%] PASSED tests/docs_src/test_media.py::test_path_file_is_read_when_the_result_is_built 619[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 620tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] 621[gw2] [ 4%] PASSED tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 622[gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] 623tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 624[gw5] [ 4%] PASSED tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 625tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] 626[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 627[gw6] [ 4%] PASSED tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 628tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 629tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 630tests/docs_src/test_media.py::test_raw_data_without_a_format_falls_back_to_a_default_mime_type 631tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 632tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 633tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 634[gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] 635[gw10] [ 4%] PASSED tests/docs_src/test_media.py::test_raw_data_without_a_format_falls_back_to_a_default_mime_type 636tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 637[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 638[gw1] [ 4%] PASSED tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 639[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] 640tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] 641[gw4] [ 4%] PASSED tests/client/test_client_caching.py::test_an_expired_cursor_rejection_evicts_the_methods_entry 642tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 643tests/docs_src/test_media.py::test_icons_are_visible_where_they_were_declared 644[gw2] [ 4%] PASSED tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 645[gw3] [ 4%] PASSED tests/client/test_session.py::test_raising_message_handler_on_transport_exception_costs_the_delivery_not_the_connection 646tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 647[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 648tests/client/test_session.py::test_message_handler_awaiting_session_traffic_on_transport_exception_completes 649tests/client/test_client_caching.py::test_an_expired_cursor_rejection_under_bypass_does_not_evict 650[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 651tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 652tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] 653[gw3] [ 4%] PASSED tests/client/test_session.py::test_message_handler_awaiting_session_traffic_on_transport_exception_completes 654tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 655tests/client/test_session.py::test_receive_loop_consumes_server_cancelled_without_reaching_message_handler 656tests/cli/test_utils.py::test_get_npx_unix_like 657[gw5] [ 4%] PASSED tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 658[gw11] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] 659tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 660[gw1] [ 4%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 661[gw3] [ 4%] PASSED tests/client/test_session.py::test_receive_loop_consumes_server_cancelled_without_reaching_message_handler 662[gw2] [ 4%] PASSED tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 663tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 664tests/client/test_session.py::test_request_timeout_zero_overrides_session_timeout 665tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 666[gw10] [ 4%] PASSED tests/docs_src/test_media.py::test_icons_are_visible_where_they_were_declared 667[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_get_npx_unix_like 668[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 669tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 670tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 671[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] 672[gw3] [ 5%] PASSED tests/client/test_session.py::test_request_timeout_zero_overrides_session_timeout 673tests/cli/test_utils.py::test_get_npx_windows 674[gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 675[gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 676[gw4] [ 5%] PASSED tests/client/test_client_caching.py::test_an_expired_cursor_rejection_under_bypass_does_not_evict 677tests/client/test_session.py::test_progress_notification_reaches_request_callback_and_message_handler 678[gw1] [ 5%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 679tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 680[gw3] [ 5%] PASSED tests/client/test_session.py::test_progress_notification_reaches_request_callback_and_message_handler 681tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 682tests/client/test_session.py::test_dispatcher_keyword_runs_over_direct_dispatch 683tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 684tests/docs_src/test_middleware.py::test_timing_record_predicate 685tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 686[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_get_npx_windows 687[gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 688tests/client/test_client_caching.py::test_a_non_cursor_error_on_a_continuation_does_not_evict 689[gw3] [ 5%] PASSED tests/client/test_session.py::test_dispatcher_keyword_runs_over_direct_dispatch 690[gw10] [ 5%] PASSED tests/docs_src/test_middleware.py::test_timing_record_predicate 691tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 692tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 693tests/client/test_session.py::test_direct_dispatch_roots_list_reaches_callback_with_synthesized_request_id 694[gw1] [ 5%] PASSED tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 695tests/docs_src/test_middleware.py::test_middleware_observes_every_inbound_message 696[gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 697[gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 698[gw5] [ 5%] PASSED tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 699[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 700tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 701[gw4] [ 5%] PASSED tests/client/test_client_caching.py::test_a_non_cursor_error_on_a_continuation_does_not_evict 702tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 703tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 704tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 705[gw3] [ 5%] PASSED tests/client/test_session.py::test_direct_dispatch_roots_list_reaches_callback_with_synthesized_request_id 706[gw1] [ 5%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 707tests/client/test_session.py::test_raising_notification_callbacks_over_direct_dispatch_cost_only_that_delivery 708[gw8] [ 5%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 709tests/client/test_client_caching.py::test_bypass_neither_serves_nor_disturbs_a_warm_entry 710[gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 711tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 712tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 713tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 714tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 715[gw5] [ 5%] PASSED tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 716[gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 717[gw1] [ 5%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 718[gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 719tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 720[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 721tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 722[gw4] [ 5%] PASSED tests/client/test_client_caching.py::test_bypass_neither_serves_nor_disturbs_a_warm_entry 723tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 724tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 725[gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 726tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 727[gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 728tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 729tests/client/test_client_caching.py::test_refresh_skips_the_read_and_stores_the_refetched_result 730[gw8] [ 5%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 731[gw1] [ 5%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 732tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 733[gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 734tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 735tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 736[gw6] [ 5%] PASSED tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 737tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 738[gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 739[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 740[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] 741tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 742tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 743[gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 744tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 745tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 746[gw4] [ 5%] PASSED tests/client/test_client_caching.py::test_refresh_skips_the_read_and_stores_the_refetched_result 747tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 748tests/client/test_client_caching.py::test_refresh_storing_a_ttl_zero_result_purges_the_warm_entry 749[gw8] [ 5%] PASSED tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 750[gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 751[gw1] [ 5%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 752[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 753tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 754tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 755tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 756[gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 757tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 758tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 759[gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 760[gw1] [ 5%] PASSED tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 761[gw4] [ 5%] PASSED tests/client/test_client_caching.py::test_refresh_storing_a_ttl_zero_result_purges_the_warm_entry 762[gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 763[gw3] [ 5%] PASSED tests/client/test_session.py::test_raising_notification_callbacks_over_direct_dispatch_cost_only_that_delivery 764tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 765tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 766[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 767[gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 768tests/client/test_client_caching.py::test_a_list_call_carrying_meta_is_fetched_and_replaces_the_warm_entry 769tests/client/test_session.py::test_dispatcher_keyword_send_request_before_enter_raises_runtimeerror 770tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 771[gw8] [ 5%] PASSED tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 772[gw3] [ 5%] PASSED tests/client/test_session.py::test_dispatcher_keyword_send_request_before_enter_raises_runtimeerror 773tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 774tests/client/test_session.py::test_dispatcher_keyword_send_request_after_exit_raises_connection_closed 775tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 776[gw1] [ 5%] PASSED tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 777tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 778[gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 779[gw15] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 780tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 781[gw3] [ 5%] PASSED tests/client/test_session.py::test_dispatcher_keyword_send_request_after_exit_raises_connection_closed 782tests/client/test_session.py::test_dispatcher_keyword_request_timeout_bounds_wait_for_never_run_peer 783tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 784tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 785[gw1] [ 5%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 786[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 787[gw11] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 788[gw4] [ 6%] PASSED tests/client/test_client_caching.py::test_a_list_call_carrying_meta_is_fetched_and_replaces_the_warm_entry 789tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 790[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 791[gw3] [ 6%] PASSED tests/client/test_session.py::test_dispatcher_keyword_request_timeout_bounds_wait_for_never_run_peer 792tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 793tests/client/test_session.py::test_adopt_raises_when_no_mutual_modern_version_is_supported 794[gw1] [ 6%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 795tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 796[gw3] [ 6%] PASSED tests/client/test_session.py::test_adopt_raises_when_no_mutual_modern_version_is_supported 797tests/client/test_client_caching.py::test_a_read_resource_carrying_meta_is_fetched_and_replaces_the_warm_entry 798tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 799[gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 800tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 801tests/client/test_session.py::test_initialize_opts_out_of_cancel_on_abandon_while_other_requests_leave_it_unset 802tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 803[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 804tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 805[gw3] [ 6%] PASSED tests/client/test_session.py::test_initialize_opts_out_of_cancel_on_abandon_while_other_requests_leave_it_unset 806[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 807tests/client/test_session.py::test_modern_stamp_leaves_cancel_on_abandon_at_the_dispatcher_default 808tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 809[gw1] [ 6%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 810[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 811tests/client/test_auth.py::test_registration_request_sends_application_type 812[gw3] [ 6%] PASSED tests/client/test_session.py::test_modern_stamp_leaves_cancel_on_abandon_at_the_dispatcher_default 813tests/client/test_session.py::test_constructor_rejects_streams_and_dispatcher_together 814tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 815[gw3] [ 6%] PASSED tests/client/test_session.py::test_constructor_rejects_streams_and_dispatcher_together 816[gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 817[gw4] [ 6%] PASSED tests/client/test_client_caching.py::test_a_read_resource_carrying_meta_is_fetched_and_replaces_the_warm_entry 818tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 819[gw1] [ 6%] PASSED tests/client/test_auth.py::test_registration_request_sends_application_type 820[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 821[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 822[gw3] [ 6%] PASSED tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 823tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 824tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 825tests/client/test_client_caching.py::test_cache_mode_is_inert_when_caching_is_disabled 826tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 827tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 828tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 829[gw2] [ 6%] PASSED tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 830[gw6] [ 6%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 831[gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 832[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 833[gw1] [ 6%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 834tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 835tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 836[gw3] [ 6%] PASSED tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 837tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 838[gw8] [ 6%] PASSED tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 839tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 840tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 841tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 842[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] 843[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 844[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 845[gw4] [ 6%] PASSED tests/client/test_client_caching.py::test_cache_mode_is_inert_when_caching_is_disabled 846tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 847[gw3] [ 6%] PASSED tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 848tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 849tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 850[gw2] [ 6%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 851tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[keep-string] 852tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 853[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 854tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[request_state] 855[gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 856tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 857[gw1] [ 6%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 858tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 859tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 860[gw3] [ 6%] PASSED tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 861tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 862[gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 863tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 864[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 865[gw2] [ 6%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 866tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 867tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 868[gw1] [ 6%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 869[gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 870[gw4] [ 6%] PASSED tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[request_state] 871[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 872[gw3] [ 6%] PASSED tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 873tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 874tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 875tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 876[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 877tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 878tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 879tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 880tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[input_responses] 881[gw3] [ 6%] PASSED tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 882[gw1] [ 6%] PASSED tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 883[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 884[gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 885[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 886tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 887tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 888tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 889tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 890[gw3] [ 6%] PASSED tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 891tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 892[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 893tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 894[gw11] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 895tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 896[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 897[gw1] [ 6%] PASSED tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 898[gw4] [ 6%] PASSED tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[input_responses] 899[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 900[gw3] [ 6%] PASSED tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 901[gw6] [ 6%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 902tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 903tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 904tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 905tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 906tests/client/test_client_caching.py::test_a_terminal_read_reached_through_driver_rounds_is_never_cached 907tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 908tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 909[gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 910[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 911[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 912[gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_middleware_observes_every_inbound_message 913[gw8] [ 7%] PASSED tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 914[gw3] [ 7%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 915[gw1] [ 7%] PASSED tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 916[gw4] [ 7%] PASSED tests/client/test_client_caching.py::test_a_terminal_read_reached_through_driver_rounds_is_never_cached 917tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 918tests/docs_src/test_middleware.py::test_the_result_passes_through_unchanged 919tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 920tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 921tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 922tests/client/test_client_caching.py::test_a_refresh_that_resolves_to_input_required_purges_the_warm_entry 923tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 924[gw2] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 925tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 926[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 927tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 928tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 929[gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 930[gw3] [ 7%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 931tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 932[gw1] [ 7%] PASSED tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 933[gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_the_result_passes_through_unchanged 934[gw8] [ 7%] PASSED tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 935[gw3] [ 7%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 936[gw4] [ 7%] PASSED tests/client/test_client_caching.py::test_a_refresh_that_resolves_to_input_required_purges_the_warm_entry 937tests/client/test_client_caching.py::test_a_listing_served_from_a_shared_store_rebuilds_output_schemas 938[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 939tests/docs_src/test_middleware.py::test_a_notification_has_no_request_id 940tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 941tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 942tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 943[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 944[gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 945tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 946[gw1] [ 7%] PASSED tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 947tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 948[gw3] [ 7%] PASSED tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 949tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 950tests/client/test_auth.py::test_build_metadata[simple-url] 951[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 952tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 953[gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 954tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 955tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 956[gw3] [ 7%] PASSED tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 957tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 958[gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_a_notification_has_no_request_id 959[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 960tests/docs_src/test_middleware.py::test_raising_before_call_next_refuses_the_message 961[gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 962[gw2] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 963tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 964[gw3] [ 7%] PASSED tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 965[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 966tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 967tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 968tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 969tests/client/test_session.py::test_era_neutral_properties_after_discover 970[gw6] [ 7%] PASSED tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 971tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 972[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 973[gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_raising_before_call_next_refuses_the_message 974tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 975[gw3] [ 7%] PASSED tests/client/test_session.py::test_era_neutral_properties_after_discover 976tests/docs_src/test_middleware.py::test_an_unhandled_method_raises_through_the_middleware 977[gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 978tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 979[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 980tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 981tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 982tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 983[gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_an_unhandled_method_raises_through_the_middleware 984tests/docs_src/test_middleware.py::test_initialize_cannot_be_replaced_only_wrapped 985[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 986[gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 987[gw3] [ 7%] PASSED tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 988tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 989[gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_initialize_cannot_be_replaced_only_wrapped 990tests/docs_src/test_middleware.py::test_a_tool_call_over_the_cap_is_refused_while_the_earlier_calls_still_run 991[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 992[gw3] [ 7%] PASSED tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 993tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 994tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 995[gw8] [ 7%] PASSED tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 996tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 997[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 998tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 999[gw2] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1000tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1001[gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 1002tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1003[gw3] [ 7%] PASSED tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 1004tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 1005tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1006[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1007[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 1008[gw2] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1009tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1010tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 1011[gw3] [ 7%] PASSED tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 1012[gw8] [ 7%] PASSED tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1013tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 1014[gw11] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 1015tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 1016tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1017[gw2] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1018[gw3] [ 7%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 1019tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1020[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1021tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1022tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 1023[gw10] [ 7%] PASSED tests/docs_src/test_middleware.py::test_a_tool_call_over_the_cap_is_refused_while_the_earlier_calls_still_run 1024tests/docs_src/test_middleware.py::test_other_requests_are_answered_with_the_cap_reached 1025tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 1026[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 1027[gw2] [ 8%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1028[gw6] [ 8%] PASSED tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1029tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 1030[gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 1031tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 1032[gw3] [ 8%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 1033tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1034tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1035tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1036[gw10] [ 8%] PASSED tests/docs_src/test_middleware.py::test_other_requests_are_answered_with_the_cap_reached 1037tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 1038[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1039[gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 1040tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1041tests/docs_src/test_middleware.py::test_a_refused_call_is_accepted_once_a_running_call_finishes 1042[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 1043[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] 1044tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 1045tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1046[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] 1047[gw10] [ 8%] PASSED tests/docs_src/test_middleware.py::test_a_refused_call_is_accepted_once_a_running_call_finishes 1048tests/docs_src/test_middleware.py::test_a_tool_call_that_raises_gives_its_slot_back 1049tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 1050[gw2] [ 8%] PASSED tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1051[gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 1052tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1053[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] 1054[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1055tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 1056[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 1057tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 1058tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1059tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[avoid-string] 1060tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 1061[gw2] [ 8%] PASSED tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1062[gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 1063tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1064[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] 1065[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1066[gw8] [ 8%] PASSED tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1067tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1068tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 1069tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 1070[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 1071[gw2] [ 8%] PASSED tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1072[gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 1073tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1074[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] 1075tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 1076tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1077tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 1078[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1079[gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 1080tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 1081[gw2] [ 8%] PASSED tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1082tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1083[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] 1084tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 1085tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 1086[gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 1087tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 1088[gw2] [ 8%] PASSED tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1089tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1090[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 1091[gw2] [ 8%] PASSED tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1092[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 1093[gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 1094tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 1095tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 1096tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1097tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 1098[gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 1099[gw2] [ 8%] PASSED tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1100tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 1101[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 1102tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1103[gw10] [ 8%] PASSED tests/docs_src/test_middleware.py::test_a_tool_call_that_raises_gives_its_slot_back 1104[gw2] [ 8%] PASSED tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1105tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1106tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 1107[gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 1108tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 1109[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] 1110tests/docs_src/test_middleware.py::test_a_cancelled_tool_call_gives_its_slot_back 1111tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 1112[gw8] [ 8%] PASSED tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1113[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 1114[gw2] [ 8%] PASSED tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1115tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1116tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1117tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 1118[gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 1119tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 1120[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 1121[gw2] [ 8%] PASSED tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1122[gw10] [ 8%] PASSED tests/docs_src/test_middleware.py::test_a_cancelled_tool_call_gives_its_slot_back 1123tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1124tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 1125[gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 1126tests/docs_src/test_middleware.py::test_answering_with_an_error_result_returns_it_to_the_caller_instead_of_raising 1127tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1128[gw2] [ 8%] PASSED tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1129[gw6] [ 8%] PASSED tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1130tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 1131tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1132[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1133[gw10] [ 8%] PASSED tests/docs_src/test_middleware.py::test_answering_with_an_error_result_returns_it_to_the_caller_instead_of_raising 1134tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1135tests/docs_src/test_middleware.py::test_calls_made_one_after_another_never_reach_the_cap 1136[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] 1137[gw11] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 1138[gw2] [ 8%] PASSED tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1139[gw8] [ 8%] PASSED tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1140tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1141tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 1142tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1143tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1144[gw2] [ 8%] PASSED tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1145tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 1146[gw10] [ 9%] PASSED tests/docs_src/test_middleware.py::test_calls_made_one_after_another_never_reach_the_cap 1147tests/docs_src/test_mrtr.py::test_first_call_returns_an_input_required_result 1148tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1149[gw2] [ 9%] PASSED tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1150[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 1151tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 1152[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 1153tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 1154[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1155tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1156tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1157[gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1158[gw10] [ 9%] PASSED tests/docs_src/test_mrtr.py::test_first_call_returns_an_input_required_result 1159[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] 1160tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 1161[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 1162tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 1163tests/docs_src/test_mrtr.py::test_the_auto_loop_drives_the_call_to_completion 1164[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1165[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 1166tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1167[gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1168tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1169[gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1170[gw10] [ 9%] PASSED tests/docs_src/test_mrtr.py::test_the_auto_loop_drives_the_call_to_completion 1171tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 1172[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 1173[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] 1174tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1175tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 1176tests/docs_src/test_mrtr.py::test_the_auto_loop_without_a_callback_raises_mcp_error 1177tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1178[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1179[gw2] [ 9%] PASSED tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1180tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1181tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1182tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 1183[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 1184tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 1185[gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1186[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1187[gw10] [ 9%] PASSED tests/docs_src/test_mrtr.py::test_the_auto_loop_without_a_callback_raises_mcp_error 1188[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 1189tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 1190tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1191tests/docs_src/test_mrtr.py::test_retry_with_input_responses_and_request_state_completes_the_call 1192tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1193[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] 1194tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 1195[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 1196[gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1197[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1198tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1199tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 1200[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 1201[gw2] [ 9%] PASSED tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1202tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1203[gw10] [ 9%] PASSED tests/docs_src/test_mrtr.py::test_retry_with_input_responses_and_request_state_completes_the_call 1204tests/docs_src/test_mrtr.py::test_the_manual_loop_drives_the_call_to_completion 1205tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 1206[gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1207tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 1208[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 1209tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1210tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 1211[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 1212[gw2] [ 9%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1213[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 1214tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1215tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 1216[gw10] [ 9%] PASSED tests/docs_src/test_mrtr.py::test_the_manual_loop_drives_the_call_to_completion 1217[gw2] [ 9%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1218[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] 1219tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 1220[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] 1221tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 1222tests/docs_src/test_mrtr.py::test_the_in_memory_client_negotiates_2026_07_28 1223[gw6] [ 9%] PASSED tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1224tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1225[gw10] [ 9%] PASSED tests/docs_src/test_mrtr.py::test_the_in_memory_client_negotiates_2026_07_28 1226tests/docs_src/test_mrtr.py::test_a_pre_2026_session_has_nowhere_to_put_the_result 1227[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 1228tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 1229[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 1230tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 1231[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 1232tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 1233[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 1234tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 1235tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1236[gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1237tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1238[gw2] [ 9%] PASSED tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1239tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1240[gw2] [ 9%] PASSED tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1241tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1242[gw2] [ 9%] PASSED tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1243tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1244[gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1245tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 1246[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 1247tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 1248[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 1249tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 1250[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 1251[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 1252tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1253tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 1254tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 1255[gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1256[gw11] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 1257[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 1258[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] 1259tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 1260tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1261[gw2] [ 9%] PASSED tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1262[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 1263tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 1264tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 1265tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 1266[gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 1267tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1268[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 1269[gw2] [ 10%] PASSED tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1270tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007_client.py] 1271tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 1272[gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 1273tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1274[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] 1275[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007_client.py] 1276tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001.py] 1277tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 1278[gw2] [ 10%] PASSED tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1279[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001.py] 1280tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001_client.py] 1281tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1282[gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 1283tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 1284[gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_a_pre_2026_session_has_nowhere_to_put_the_result 1285[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001_client.py] 1286tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 1287tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial001.py] 1288tests/docs_src/test_mrtr.py::test_fulfil_refuses_a_request_it_cannot_answer 1289[gw2] [ 10%] PASSED tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1290[gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 1291tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1292[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] 1293[gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_fulfil_refuses_a_request_it_cannot_answer 1294[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial001.py] 1295tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial002.py] 1296tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 1297[gw6] [ 10%] PASSED tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1298[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial002.py] 1299[gw2] [ 10%] PASSED tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1300tests/client/test_caching.py::test_store_failures_warn_once_per_burst 1301tests/docs_src/test_mrtr.py::test_a_prompt_returns_an_input_required_result_on_the_first_round 1302tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial003.py] 1303[gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 1304tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1305[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial003.py] 1306tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 1307tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial004.py] 1308tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 1309[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] 1310tests/docs/test_translations.py::test_translate_writes_pages_with_provenance_and_a_second_run_makes_no_calls 1311[gw2] [ 10%] PASSED tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1312[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] 1313tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1314[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial004.py] 1315[gw2] [ 10%] PASSED tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1316tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial001.py] 1317[gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 1318tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 1319tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1320[gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 1321[gw2] [ 10%] PASSED tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1322tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 1323tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 1324[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial001.py] 1325[gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_a_prompt_returns_an_input_required_result_on_the_first_round 1326tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial002.py] 1327tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1328tests/docs_src/test_mrtr.py::test_the_prompt_auto_loop_returns_the_final_messages 1329[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] 1330[gw2] [ 10%] PASSED tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1331[gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 1332tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial004.py] 1333[gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial004.py] 1334tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1335[gw2] [ 10%] PASSED tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1336tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1337[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial002.py] 1338tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial003.py] 1339[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial003.py] 1340tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 1341[gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_the_prompt_auto_loop_returns_the_final_messages 1342tests/docs_src/test_mrtr.py::test_a_custom_codec_round_trips_what_it_sealed 1343tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial001.py] 1344[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial001.py] 1345[gw2] [ 10%] PASSED tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1346tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial008.py] 1347tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial001.py] 1348tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial002.py] 1349[gw8] [ 10%] PASSED tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1350[gw2] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial008.py] 1351[gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_round_trips_what_it_sealed 1352tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial001.py] 1353[gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial001.py] 1354tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial002.py] 1355[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial002.py] 1356tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/index/tutorial001.py] 1357[gw2] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial001.py] 1358tests/docs_src/test_mrtr.py::test_a_custom_codec_raises_invalid_request_state_for_any_bad_token 1359tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1360[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] 1361[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/index/tutorial001.py] 1362tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial002.py] 1363[gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_raises_invalid_request_state_for_any_bad_token 1364tests/docs_src/test_mrtr.py::test_a_custom_codec_rejects_every_alias_of_a_minted_token 1365[gw10] [ 10%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_rejects_every_alias_of_a_minted_token 1366[gw2] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial002.py] 1367tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial003.py] 1368[gw2] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial003.py] 1369tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001.py] 1370[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001.py] 1371tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001_client.py] 1372tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 1373[gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial002.py] 1374tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial003.py] 1375[gw15] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial003.py] 1376tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial004.py] 1377[gw11] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001_client.py] 1378tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial002.py] 1379[gw2] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial004.py] 1380tests/docs_src/test_oauth_clients.py::test_in_memory_storage_satisfies_the_token_storage_protocol 1381tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial005.py] 1382[gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial002.py] 1383tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial004.py] 1384[gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_in_memory_storage_satisfies_the_token_storage_protocol 1385[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial005.py] 1386[gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial004.py] 1387tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/whats_new/tutorial001.py] 1388tests/docs_src/test_oauth_clients.py::test_storage_round_trips_tokens_and_client_info 1389[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/whats_new/tutorial001.py] 1390[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] 1391tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 1392tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001.py] 1393tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial005.py] 1394tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial003.py] 1395[gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial003.py] 1396tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial001.py] 1397[gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_storage_round_trips_tokens_and_client_info 1398[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001.py] 1399[gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial005.py] 1400tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial006.py] 1401[gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial001.py] 1402tests/docs_src/test_oauth_clients.py::test_the_provider_is_an_httpx_auth 1403[gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_the_provider_is_an_httpx_auth 1404tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001_client.py] 1405tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial002.py] 1406[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] 1407[gw1] [ 11%] XFAIL tests/client/test_auth.py::test_build_metadata[simple-url] 1408[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001_client.py] 1409tests/docs_src/test_oauth_clients.py::test_the_metadata_defaults_are_the_authorization_code_flow 1410tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial002.py] 1411[gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial006.py] 1412tests/client/test_auth.py::test_build_metadata[with-trailing-slash] 1413[gw0] [ 11%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 1414[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial002.py] 1415[gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_the_metadata_defaults_are_the_authorization_code_flow 1416[gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial002.py] 1417tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial003.py] 1418tests/docs_src/test_oauth_clients.py::test_redirect_uris_is_required 1419tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 1420[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial003.py] 1421tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial007.py] 1422tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial001.py] 1423tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/logging/tutorial001.py] 1424tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1425[gw1] [ 11%] PASSED tests/client/test_auth.py::test_build_metadata[with-trailing-slash] 1426tests/client/test_auth.py::test_build_metadata[with-path-param] 1427[gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_redirect_uris_is_required 1428[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial001.py] 1429tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial002.py] 1430[gw1] [ 11%] PASSED tests/client/test_auth.py::test_build_metadata[with-path-param] 1431tests/docs_src/test_oauth_clients.py::test_the_redirect_handler_receives_the_authorization_url 1432[gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial007.py] 1433tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial008.py] 1434[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial002.py] 1435tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_no_prm_falls_back_to_root_oauth_discovery 1436[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] 1437[gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/logging/tutorial001.py] 1438tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial001.py] 1439tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial003.py] 1440[gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_the_redirect_handler_receives_the_authorization_url 1441[gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial008.py] 1442tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] 1443[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial003.py] 1444tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial009.py] 1445tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_has_no_human_in_the_loop 1446[gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_has_no_human_in_the_loop 1447[gw1] [ 11%] PASSED tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_no_prm_falls_back_to_root_oauth_discovery 1448tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_with_different_prm_and_root_urls 1449tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial004.py] 1450[gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial009.py] 1451[gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial001.py] 1452[gw1] [ 11%] PASSED tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_with_different_prm_and_root_urls 1453tests/client/test_auth.py::TestSEP985Discovery::test_path_based_fallback_when_no_www_authenticate 1454[gw1] [ 11%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_path_based_fallback_when_no_www_authenticate 1455tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial001.py] 1456tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial002.py] 1457[gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial002.py] 1458tests/client/test_auth.py::TestSEP985Discovery::test_root_based_fallback_after_path_based_404 1459tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_builds_its_own_metadata 1460[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial004.py] 1461tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial005.py] 1462[gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial001.py] 1463[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial005.py] 1464[gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_builds_its_own_metadata 1465tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial002.py] 1466tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial003.py] 1467tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[ClientCredentialsOAuthProvider] 1468[gw1] [ 11%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_root_based_fallback_after_path_based_404 1469tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 1470[gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial003.py] 1471tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial006.py] 1472[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial006.py] 1473[gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial002.py] 1474tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial003.py] 1475[gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[ClientCredentialsOAuthProvider] 1476tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial001.py] 1477tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial004.py] 1478tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[PrivateKeyJWTOAuthProvider] 1479[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial001.py] 1480[gw1] [ 11%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 1481tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 1482[gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial003.py] 1483tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_anyio.py] 1484[gw0] [ 11%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1485[gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial004.py] 1486tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial002.py] 1487tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1488[gw10] [ 11%] PASSED tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[PrivateKeyJWTOAuthProvider] 1489[gw1] [ 11%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 1490[gw2] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial002.py] 1491[gw15] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_anyio.py] 1492tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial005.py] 1493[gw6] [ 11%] PASSED tests/client/test_caching.py::test_store_failures_warn_once_per_burst 1494tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 1495tests/docs_src/test_oauth_clients.py::test_the_two_remaining_keyword_arguments_have_defaults 1496tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_asyncio.py] 1497[gw11] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial005.py] 1498tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial001.py] 1499tests/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] 1500[gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial001.py] 1501[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_asyncio.py] 1502tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial006.py] 1503[gw10] [ 12%] PASSED tests/docs_src/test_oauth_clients.py::test_the_two_remaining_keyword_arguments_have_defaults 1504[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] 1505tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_trio.py] 1506tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial002.py] 1507[gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial002.py] 1508tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 1509tests/docs_src/test_oauth_clients.py::test_the_one_more_provider_is_private_key_jwt 1510tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial003.py] 1511[gw10] [ 12%] PASSED tests/docs_src/test_oauth_clients.py::test_the_one_more_provider_is_private_key_jwt 1512[gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 1513[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_trio.py] 1514tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial005.py] 1515[gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial006.py] 1516tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial007.py] 1517[gw8] [ 12%] PASSED tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1518[gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial003.py] 1519[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial005.py] 1520[gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial007.py] 1521tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial006.py] 1522tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/cancellation/tutorial001.py] 1523tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1524tests/docs_src/test_oauth_clients.py::test_every_oauth_error_is_an_oauth_flow_error 1525[gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/cancellation/tutorial001.py] 1526tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial001.py] 1527tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/cancellation/tutorial002.py] 1528[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial006.py] 1529tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 1530[gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 1531[gw10] [ 12%] PASSED tests/docs_src/test_oauth_clients.py::test_every_oauth_error_is_an_oauth_flow_error 1532tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial007.py] 1533[gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/cancellation/tutorial002.py] 1534[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] 1535tests/docs_src/test_oauth_clients.py::test_not_everything_is_a_flow_error 1536[gw0] [ 12%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1537tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1538[gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial001.py] 1539tests/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] 1540[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] 1541[gw10] [ 12%] PASSED tests/docs_src/test_oauth_clients.py::test_not_everything_is_a_flow_error 1542tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001.py] 1543[gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001.py] 1544[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial007.py] 1545tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/testing/tutorial001.py] 1546tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial002.py] 1547tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 1548tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 1549[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/testing/tutorial001.py] 1550[gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial002.py] 1551tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001_client.py] 1552[gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001_client.py] 1553[gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 1554tests/docs_src/test_opentelemetry.py::test_a_plain_server_is_traced_with_no_extra_code 1555tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial001.py] 1556tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial003.py] 1557[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] 1558tests/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] 1559[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial001.py] 1560tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial002.py] 1561tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial002.py] 1562[gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial002.py] 1563tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits 1564[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] 1565[gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial003.py] 1566tests/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] 1567tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial003.py] 1568[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial002.py] 1569[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] 1570tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 1571tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial003.py] 1572[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial003.py] 1573[gw0] [ 12%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1574tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial004.py] 1575[gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial003.py] 1576tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial004.py] 1577[gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 1578tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 1579tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial004.py] 1580[gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial004.py] 1581tests/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] 1582[gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial004.py] 1583tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial005.py] 1584[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] 1585[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial004.py] 1586tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial005.py] 1587tests/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] 1588[gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial005.py] 1589[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial005.py] 1590[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] 1591tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial005.py] 1592[gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial005.py] 1593tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 1594tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial001.py] 1595[gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 1596tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial001.py] 1597tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial006.py] 1598[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial001.py] 1599[gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial006.py] 1600tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial007.py] 1601tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 1602[gw8] [ 12%] PASSED tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1603[gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial001.py] 1604tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial002.py] 1605[gw1] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 1606[gw2] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial007.py] 1607tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial002.py] 1608[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial002.py] 1609tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] 1610[gw11] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial002.py] 1611tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial001.py] 1612tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial003.py] 1613tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1614[gw15] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial003.py] 1615[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] 1616tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial001.py] 1617[gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial001.py] 1618tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial002.py] 1619[gw0] [ 13%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 1620[gw6] [ 13%] PASSED tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 1621tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 1622tests/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] 1623[gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial002.py] 1624tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial004.py] 1625[gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial004.py] 1626tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial005.py] 1627[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] 1628[gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial001.py] 1629tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 1630[gw6] [ 13%] PASSED tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 1631tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 1632tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial002.py] 1633tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial003.py] 1634[gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial003.py] 1635tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 1636[gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial005.py] 1637[gw1] [ 13%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 1638tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial004.py] 1639tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial006.py] 1640[gw6] [ 13%] PASSED tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 1641tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 1642[gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial002.py] 1643[gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial004.py] 1644[gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial006.py] 1645tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 1646tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial001.py] 1647[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] 1648tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial007.py] 1649[gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial007.py] 1650tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial003.py] 1651tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 1652[gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 1653[gw6] [ 13%] PASSED tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 1654tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 1655[gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial003.py] 1656[gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial001.py] 1657tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial008.py] 1658tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 1659[gw6] [ 13%] PASSED tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 1660[gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 1661tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial004.py] 1662tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 1663tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 1664[gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial008.py] 1665tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial002.py] 1666tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial001.py] 1667[gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 1668[gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial004.py] 1669tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 1670[gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 1671[gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial001.py] 1672tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial002.py] 1673[gw6] [ 13%] PASSED tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 1674tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 1675[gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial002.py] 1676tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial003.py] 1677[gw0] [ 13%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 1678tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 1679[gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial003.py] 1680tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial005.py] 1681[gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial002.py] 1682[gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 1683tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial004.py] 1684[gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial005.py] 1685tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial003.py] 1686tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 1687[gw6] [ 13%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 1688tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 1689[gw0] [ 13%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 1690[gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial004.py] 1691tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 1692[gw6] [ 13%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 1693tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial001.py] 1694tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 1695[gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial003.py] 1696tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial004.py] 1697[gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 1698tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial005.py] 1699[gw8] [ 13%] PASSED tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1700[gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial001.py] 1701tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 1702tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 1703[gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial005.py] 1704[gw0] [ 13%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 1705tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial002.py] 1706[gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 1707[gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial004.py] 1708tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 1709[gw6] [ 13%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 1710tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial001.py] 1711tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1712tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial005.py] 1713tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1714[gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial001.py] 1715[gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial002.py] 1716[gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial005.py] 1717tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 1718[gw0] [ 13%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1719[gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 1720tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 1721tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1722[gw6] [ 13%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 1723tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/opentelemetry/tutorial001.py] 1724tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/whats_new/tutorial001.py] 1725[gw15] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/whats_new/tutorial001.py] 1726tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] 1727[gw2] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] 1728[gw1] [ 13%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 1729tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 1730[gw0] [ 13%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1731tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] 1732[gw11] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/opentelemetry/tutorial001.py] 1733[gw6] [ 14%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 1734tests/docs_src/test_shape.py::test_every_example_is_included_by_a_page 1735tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 1736[gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 1737[gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] 1738tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1739tests/client/test_client.py::test_client_is_initialized 1740tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 1741tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial001.py] 1742[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1743tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] 1744[gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 1745[gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] 1746tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1747[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1748[gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial001.py] 1749tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 1750tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] 1751[gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 1752tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial002.py] 1753tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1754tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 1755[gw15] [ 14%] PASSED tests/docs_src/test_shape.py::test_every_example_is_included_by_a_page 1756[gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] 1757tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial003.py] 1758[gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial002.py] 1759tests/docs_src/test_shape.py::test_every_included_path_exists 1760[gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 1761[gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial003.py] 1762tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 1763[gw6] [ 14%] PASSED tests/client/test_client.py::test_client_is_initialized 1764[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1765tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial001.py] 1766tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial001.py] 1767tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1768[gw9] [ 14%] PASSED tests/docs/test_translations.py::test_translate_writes_pages_with_provenance_and_a_second_run_makes_no_calls 1769tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 1770[gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 1771[gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial001.py] 1772[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1773[gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial001.py] 1774tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1775tests/docs/test_translations.py::test_docs_translate_model_overrides_the_registry_model_for_the_run 1776tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial002.py] 1777tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 1778[gw15] [ 14%] PASSED tests/docs_src/test_shape.py::test_every_included_path_exists 1779tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial002.py] 1780tests/docs_src/test_structured_output.py::test_scalar_return_is_wrapped 1781[gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial002.py] 1782[gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 1783[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1784tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 1785[gw6] [ 14%] PASSED tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 1786tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial001.py] 1787tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1788tests/client/test_client.py::test_client_with_simple_server 1789[gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial002.py] 1790tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial003.py] 1791[gw8] [ 14%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1792[gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 1793[gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial001.py] 1794[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1795tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1796[gw6] [ 14%] PASSED tests/client/test_client.py::test_client_with_simple_server 1797[gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial003.py] 1798tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial004.py] 1799tests/client/test_client.py::test_client_send_ping 1800tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1801tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 1802[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1803tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1804[gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 1805[gw4] [ 14%] PASSED tests/client/test_client_caching.py::test_a_listing_served_from_a_shared_store_rebuilds_output_schemas 1806[gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial004.py] 1807tests/client/test_client_caching.py::test_validation_from_a_served_listing_rejects_missing_structured_content 1808tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial002.py] 1809tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 1810tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial001.py] 1811[gw6] [ 14%] PASSED tests/client/test_client.py::test_client_send_ping 1812[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1813tests/client/test_client.py::test_client_list_tools 1814tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1815[gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial002.py] 1816[gw4] [ 14%] PASSED tests/client/test_client_caching.py::test_validation_from_a_served_listing_rejects_missing_structured_content 1817[gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial001.py] 1818[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1819tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1820tests/client/test_client_caching.py::test_a_cache_hit_listing_still_mirrors_x_mcp_headers_on_tools_call 1821[gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 1822tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 1823tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial003.py] 1824[gw6] [ 14%] PASSED tests/client/test_client.py::test_client_list_tools 1825[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1826tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial002.py] 1827tests/client/test_client.py::test_client_call_tool 1828[gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial003.py] 1829[gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial002.py] 1830tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1831[gw4] [ 14%] PASSED tests/client/test_client_caching.py::test_a_cache_hit_listing_still_mirrors_x_mcp_headers_on_tools_call 1832[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1833tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial003.py] 1834tests/client/test_client_caching.py::test_a_shared_store_hit_prunes_a_header_map_the_writers_filter_dropped 1835tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1836[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1837tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial004.py] 1838[gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial003.py] 1839[gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial004.py] 1840tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1841[gw1] [ 14%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 1842tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial004.py] 1843[gw0] [ 14%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1844tests/examples/test_stories.py::test_story[prompts-server-http-asgi-modern] 1845tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1846tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial005.py] 1847[gw2] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial004.py] 1848[gw11] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial005.py] 1849[gw0] [ 14%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1850tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1851tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial001.py] 1852tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial006.py] 1853[gw12] [ 14%] PASSED tests/docs_src/test_elicitation.py::test_resolver_asks_only_when_the_folder_is_not_empty 1854[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial001.py] 1855tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial002.py] 1856[gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial006.py] 1857[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1858[gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_shared_store_hit_prunes_a_header_map_the_writers_filter_dropped 1859tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1860tests/client/test_client_caching.py::test_a_tools_list_changed_notification_makes_the_next_list_refetch 1861[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial002.py] 1862tests/docs_src/test_elicitation.py::test_the_resolved_parameter_is_hidden_from_the_tool_schema 1863[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1864tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1865tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial001.py] 1866tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial003.py] 1867[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1868[gw12] [ 15%] PASSED tests/docs_src/test_elicitation.py::test_the_resolved_parameter_is_hidden_from_the_tool_schema 1869[gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_tools_list_changed_notification_makes_the_next_list_refetch 1870tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1871[gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial001.py] 1872tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[accept-content0-kept the folder] 1873[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial003.py] 1874[gw8] [ 15%] PASSED tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1875tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 1876tests/client/test_client_caching.py::test_a_resource_updated_notification_evicts_that_uris_read_entry 1877tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial002.py] 1878[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1879tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1880tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial004.py] 1881[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial004.py] 1882[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1883tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1884tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial001.py] 1885[gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial002.py] 1886[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial001.py] 1887[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1888tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial003.py] 1889tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1890[gw1] [ 15%] PASSED tests/examples/test_stories.py::test_story[prompts-server-http-asgi-modern] 1891tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial002.py] 1892[gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_resource_updated_notification_evicts_that_uris_read_entry 1893tests/client/test_client_caching.py::test_the_modern_in_process_path_drops_the_eviction_notification 1894[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1895[gw7] [ 15%] PASSED tests/client/test_logging_callback.py::test_logging_callback 1896tests/client/test_notification_response.py::test_non_compliant_notification_response 1897tests/examples/test_stories.py::test_story[prompts-server-http-asgi-legacy] 1898[gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial003.py] 1899[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial002.py] 1900tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1901[gw12] [ 15%] PASSED tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[accept-content0-kept the folder] 1902tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003.py] 1903[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003.py] 1904[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1905tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1906tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial004.py] 1907[gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_the_modern_in_process_path_drops_the_eviction_notification 1908tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[decline-None-declined: folder not deleted] 1909[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1910[gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial004.py] 1911tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003_client.py] 1912[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003_client.py] 1913tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1914[gw7] [ 15%] PASSED tests/client/test_notification_response.py::test_non_compliant_notification_response 1915tests/client/test_client_caching.py::test_a_discover_result_never_enters_the_response_cache 1916tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004.py] 1917tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1918[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1919tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/real_host/tutorial001.py] 1920[gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_discover_result_never_enters_the_response_cache 1921[gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/real_host/tutorial001.py] 1922tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1923[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004.py] 1924tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004_client.py] 1925tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5] 1926tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial001.py] 1927[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1928[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004_client.py] 1929[gw8] [ 15%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 1930tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1931[gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5] 1932[gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial001.py] 1933tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 1934[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1935tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial005.py] 1936[gw9] [ 15%] PASSED tests/docs/test_translations.py::test_docs_translate_model_overrides_the_registry_model_for_the_run 1937[gw12] [ 15%] PASSED tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[decline-None-declined: folder not deleted] 1938tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[cancel-None-cancelled: folder not deleted] 1939[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial005.py] 1940tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006.py] 1941tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1942tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5.0] 1943tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial002.py] 1944[gw8] [ 15%] PASSED tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 1945tests/docs/test_translations.py::test_translate_pages_retranslates_the_named_pages_from_scratch_even_when_a_translation_exists 1946tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds 1947[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1948[gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5.0] 1949[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006.py] 1950[gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial002.py] 1951tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial003.py] 1952tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1953tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5] 1954tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006_client.py] 1955[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1956[gw1] [ 15%] PASSED tests/examples/test_stories.py::test_story[prompts-server-http-asgi-legacy] 1957tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1958[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006_client.py] 1959[gw8] [ 15%] PASSED tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds 1960tests/examples/test_stories.py::test_story[prompts-server_lowlevel-in-memory-modern] 1961[gw11] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial003.py] 1962tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce 1963[gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5] 1964[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1965tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007.py] 1966tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial001.py] 1967[gw12] [ 15%] PASSED tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[cancel-None-cancelled: folder not deleted] 1968tests/docs_src/test_tools.py::test_call_returns_text_and_structured_content 1969[gw2] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007.py] 1970tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5.0] 1971[gw4] [ 15%] PASSED tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5.0] 1972tests/interaction/auth/test_authorize_token.py::test_a_mismatched_iss_on_the_callback_aborts_the_flow 1973[gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial001.py] 1974tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial002.py] 1975tests/client/test_client_caching.py::test_each_notification_evicts_exactly_its_entries_end_to_end 1976[gw1] [ 16%] PASSED tests/examples/test_stories.py::test_story[prompts-server_lowlevel-in-memory-modern] 1977tests/examples/test_stories.py::test_story[prompts-server_lowlevel-in-memory-legacy] 1978tests/docs_src/test_extensions.py::test_using_an_extension_advertises_its_capability 1979[gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial002.py] 1980[gw12] [ 16%] PASSED tests/docs_src/test_extensions.py::test_using_an_extension_advertises_its_capability 1981[gw7] [ 16%] PASSED tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1982tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial003.py] 1983tests/docs_src/test_extensions.py::test_a_prefixless_identifier_fails_at_class_definition 1984tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1985[gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial003.py] 1986[gw12] [ 16%] PASSED tests/docs_src/test_extensions.py::test_a_prefixless_identifier_fails_at_class_definition 1987tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial001.py] 1988[gw1] [ 16%] PASSED tests/examples/test_stories.py::test_story[prompts-server_lowlevel-in-memory-legacy] 1989tests/docs_src/test_extensions.py::test_extension_settings_advertised_under_capabilities 1990[gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial001.py] 1991tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial002.py] 1992[gw7] [ 16%] PASSED tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1993[gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial002.py] 1994tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial001.py] 1995tests/examples/test_stories.py::test_story[prompts-server_lowlevel-http-asgi-modern] 1996[gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial001.py] 1997tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1998tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial002.py] 1999[gw11] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial002.py] 2000tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial003.py] 8897tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 8898[gw4] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 8899tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 8900[gw12] [ 74%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_mixed_with_other_content 8901[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] 8902tests/server/test_request_state_boundary.py::test_codec_authenticated_bytes_that_are_not_a_claims_envelope_are_rejected[json-wrong-envelope-version] 8903[gw15] [ 74%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[client_uri] 8904tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[logo_uri] 8905[gw15] [ 74%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[logo_uri] 8906tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[tos_uri] 8907[gw15] [ 74%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[tos_uri] 8908tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[policy_uri] 8909[gw15] [ 74%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[policy_uri] 8910[gw9] [ 74%] PASSED tests/server/test_runner.py::test_dual_era_loop_version_without_capabilities_rejects_naming_the_key 8911tests/server/test_runner.py::test_dual_era_loop_failed_modern_request_leaves_the_connection_modern 8912tests/shared/test_dispatcher.py::test_send_raw_request_returns_result_from_peer_on_request[direct] 8913[gw1] [ 74%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_returns_result_from_peer_on_request[direct] 8914tests/shared/test_dispatcher.py::test_send_raw_request_returns_result_from_peer_on_request[jsonrpc] 8915[gw1] [ 74%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_returns_result_from_peer_on_request[jsonrpc] 8916tests/shared/test_dispatcher.py::test_send_raw_request_reraises_mcperror_from_handler_unchanged[direct] 8917[gw4] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 8918tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 8919tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[jwks_uri] 8920[gw10] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-boolean] 8921tests/server/test_otel.py::test_nests_under_ambient_span_when_meta_lacks_traceparent 8922tests/shared/test_path_security.py::test_safe_join_simple 8923[gw15] [ 74%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[jwks_uri] 8924[gw1] [ 74%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_reraises_mcperror_from_handler_unchanged[direct] 8925[gw13] [ 74%] PASSED tests/shared/test_otel.py::test_client_and_server_spans 8926[gw14] [ 74%] PASSED tests/server/test_subscriptions.py::test_listen_requires_a_request_id 8927tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 8928[gw4] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 8929tests/shared/test_auth.py::test_all_optional_urls_empty_together 8930[gw2] [ 74%] PASSED tests/server/mcpserver/test_server.py::test_resource_security_server_wide_override 8931tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 8932[gw15] [ 74%] PASSED tests/shared/test_auth.py::test_all_optional_urls_empty_together 8933tests/shared/test_dispatcher.py::test_send_raw_request_reraises_mcperror_from_handler_unchanged[jsonrpc] 8934tests/shared/test_auth.py::test_valid_url_passes_through_unchanged 8935tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[two-distinct] 8936[gw7] [ 74%] PASSED tests/server/mcpserver/test_server.py::test_resource_template_input_required_result_on_legacy_session_is_a_serialization_error 8937[gw4] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 8938[gw6] [ 74%] PASSED tests/shared/test_path_security.py::test_safe_join_simple 8939[gw15] [ 74%] PASSED tests/shared/test_auth.py::test_valid_url_passes_through_unchanged 8940tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 8941tests/server/mcpserver/test_server.py::test_resource_security_namespaced_identifier_requires_exempt 8942tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 8943[gw9] [ 74%] PASSED tests/server/test_runner.py::test_dual_era_loop_failed_modern_request_leaves_the_connection_modern 8944[gw1] [ 74%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_reraises_mcperror_from_handler_unchanged[jsonrpc] 8945[gw14] [ 75%] PASSED tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 8946tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 8947tests/shared/test_auth.py::test_information_full_inherits_coercion 8948[gw15] [ 75%] PASSED tests/shared/test_auth.py::test_information_full_inherits_coercion 8949tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unregistered-application-type] 8950[gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unregistered-application-type] 8951tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-application-type] 8952tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 8953[gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 8954[gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[two-distinct] 8955tests/shared/test_dispatcher.py::test_send_raw_request_maps_validation_error_to_invalid_params[direct] 8956[gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_maps_validation_error_to_invalid_params[direct] 8957tests/server/mcpserver/test_server.py::test_resource_template_returning_input_required_result_reaches_client_sealed 8958[gw0] [ 75%] PASSED tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[direct] 8959[gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-application-type] 8960tests/shared/test_dispatcher.py::test_send_raw_request_maps_validation_error_to_invalid_params[jsonrpc] 8961[gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_maps_validation_error_to_invalid_params[jsonrpc] 8962tests/shared/test_dispatcher.py::test_send_raw_request_with_timeout_raises_mcperror_request_timeout[direct] 8963[gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_timeout_raises_mcperror_request_timeout[direct] 8964tests/shared/test_dispatcher.py::test_send_raw_request_with_timeout_raises_mcperror_request_timeout[jsonrpc] 8965[gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_timeout_raises_mcperror_request_timeout[jsonrpc] 8966tests/shared/test_dispatcher.py::test_notify_invokes_peer_on_notify[direct] 8967tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 8968tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[jsonrpc] 8969[gw11] [ 75%] PASSED tests/server/test_otel.py::test_nests_under_ambient_span_when_meta_lacks_traceparent 8970tests/server/test_otel.py::test_extracts_trace_context_from_meta 8971[gw2] [ 75%] PASSED tests/server/mcpserver/test_server.py::test_resource_security_namespaced_identifier_requires_exempt 8972tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[null-application-type] 8973[gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[null-application-type] 8974tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unimplemented-auth-method] 8975[gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unimplemented-auth-method] 8976tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[extra-grant-type] 8977[gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[extra-grant-type] 8978tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-redirect-uris] 8979[gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-redirect-uris] 8980tests/shared/test_auth.py::test_client_information_without_echoed_metadata_still_parses 8981[gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_without_echoed_metadata_still_parses 8982tests/shared/test_auth.py::test_every_request_metadata_field_exists_on_the_client_record 8983[gw13] [ 75%] PASSED tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 8984tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 8985[gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 8986tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 8987[gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 8988tests/shared/test_path_security.py::test_contains_path_traversal[-False] 8989[gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 8990tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 8991[gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 8992tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 8993[gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 8994tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping-prop] 8995[gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping-prop] 8996tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[nested-on-properties-chain] 8997[gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[nested-on-properties-chain] 8998tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-default-is-data] 8999tests/server/test_runner.py::test_dual_era_loop_initialize_with_envelope_takes_the_handshake_path 9000[gw9] [ 75%] PASSED tests/server/test_runner.py::test_dual_era_loop_initialize_with_envelope_takes_the_handshake_path 9001tests/server/test_runner.py::test_dual_era_loop_modern_notification_dispatches_at_the_served_version 9002[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[sse-2025-11-25] 9003tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[streamable-http-2025-11-25] 9004[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] 9005tests/server/mcpserver/test_server.py::test_resource_security_rejection_halts_template_iteration 9006[gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9007tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9008[gw15] [ 75%] PASSED tests/shared/test_auth.py::test_every_request_metadata_field_exists_on_the_client_record 9009tests/shared/test_auth.py::test_a_registration_response_without_a_client_id_is_rejected 9010[gw15] [ 75%] PASSED tests/shared/test_auth.py::test_a_registration_response_without_a_client_id_is_rejected 9011[gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_notify_invokes_peer_on_notify[direct] 9012tests/shared/test_dispatcher.py::test_notify_invokes_peer_on_notify[jsonrpc] 9013tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9014tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-null] 9015[gw7] [ 75%] PASSED tests/server/mcpserver/test_server.py::test_resource_template_returning_input_required_result_reaches_client_sealed 9016tests/server/mcpserver/test_server.py::test_resource_template_reads_input_responses_from_context_on_retry 9017[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] 9018[gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9019tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9020tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_without_previous_tool_use 9021[gw12] [ 75%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_without_previous_tool_use 9022tests/shared/test_path_security.py::test_safe_join_base_equals_target 9023[gw12] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_base_equals_target 9024tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9025[gw12] [ 75%] PASSED tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9026tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9027[gw4] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 9028tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9029[gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9030tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9031tests/server/test_request_state_boundary.py::test_codec_authenticated_bytes_that_are_not_a_claims_envelope_are_rejected[json-non-string-state] 9032[gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9033tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9034[gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_notify_invokes_peer_on_notify[jsonrpc] 9035tests/shared/test_dispatcher.py::test_ctx_send_raw_request_round_trips_to_calling_side[direct] 9036[gw1] [ 75%] PASSED tests/shared/test_dispatcher.py::test_ctx_send_raw_request_round_trips_to_calling_side[direct] 9037[gw4] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9038[gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9039tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9040[gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-null] 9041tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-empty-string] 9042[gw15] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-empty-string] 9043[gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9044tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9045[gw9] [ 75%] PASSED tests/server/test_runner.py::test_dual_era_loop_modern_notification_dispatches_at_the_served_version 9046[gw11] [ 75%] PASSED tests/server/test_otel.py::test_extracts_trace_context_from_meta 9047tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-examples-is-data] 9048[gw13] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9049[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] 9050[gw12] [ 75%] PASSED tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9051tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9052tests/server/test_runner.py::test_dual_era_loop_legacy_notifications_reach_the_loop_runner 9053[gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9054tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9055[gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9056tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9057[gw4] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9058tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9059[gw4] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9060tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9061[gw12] [ 75%] PASSED tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9062tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9063[gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9064tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9065tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[prompts/get-name] 9066tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-const-is-data] 9067[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] 9068[gw2] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_resource_security_rejection_halts_template_iteration 9069tests/server/mcpserver/test_server.py::test_static_resource_with_context_param_errors 9070[gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9071tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-enum-is-data] 9072tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9073[gw4] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9074tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9075[gw6] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9076[gw7] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_resource_template_reads_input_responses_from_context_on_retry 9077tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9078[gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[prompts/get-name] 9079tests/server/mcpserver/test_server.py::test_context_read_resource_raises_on_input_required_result 9080[gw2] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_with_context_param_errors 9081[gw5] [ 76%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[streamable-http-2025-11-25] 9082[gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9083[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] 9084tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9085tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[resources/read-uri] 9086tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[ref-is-not-dereferenced] 9087tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9088[gw4] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9089[gw9] [ 76%] PASSED tests/server/test_runner.py::test_dual_era_loop_legacy_notifications_reach_the_loop_runner 9090[gw12] [ 76%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9091[gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9092tests/server/test_runner.py::test_dual_era_loop_a_notifications_meta_never_opens_the_log_gate 9093tests/server/mcpserver/test_server.py::test_static_resource_with_extra_params_errors 9094[gw7] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_context_read_resource_raises_on_input_required_result 9095tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[streamable-http-stateless-2025-11-25] 9096[gw0] [ 76%] PASSED tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[jsonrpc] 9097tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9098tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9099tests/server/mcpserver/test_server.py::test_mcpserver_read_resource_returns_input_required_result_for_handler_forwarding 9100tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_single_elicitation 9101[gw9] [ 76%] PASSED tests/server/test_runner.py::test_dual_era_loop_a_notifications_meta_never_opens_the_log_gate 9102[gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[resources/read-uri] 9103[gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9104tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9105[gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_single_elicitation 9106tests/server/test_runner.py::test_dual_era_loop_modern_server_notifications_ride_the_pipe 9107[gw7] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_mcpserver_read_resource_returns_input_required_result_for_handler_forwarding 9108tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations 9109tests/shared/test_inbound.py::test_header_rung_decodes_base64_sentinel_before_comparing_name 9110[gw2] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_with_extra_params_errors 9111[gw12] [ 76%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9112[gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9113tests/server/mcpserver/test_server.py::test_completion_decorator 9114[gw10] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[ref-is-not-dereferenced] 9115tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9116[gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations 9117[gw9] [ 76%] PASSED tests/server/test_runner.py::test_dual_era_loop_modern_server_notifications_ride_the_pipe 9118tests/shared/test_exceptions.py::test_url_elicitation_required_error_custom_message 9119tests/server/mcpserver/test_server.py::test_context_read_resource_keeps_outer_input_responses_from_the_nested_template 9120tests/server/test_runner.py::test_dual_era_loop_modern_refuses_server_initiated_requests 9121[gw14] [ 76%] PASSED tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 9122[gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_custom_message 9123tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data 9124[gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_decodes_base64_sentinel_before_comparing_name 9125tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9126[gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data 9127tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_for_non_name_bearing_method 9128[gw9] [ 76%] PASSED tests/server/test_runner.py::test_dual_era_loop_modern_refuses_server_initiated_requests 9129tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data_wrong_code 9130tests/server/test_runner.py::test_dual_era_loop_initialize_during_an_in_flight_modern_request_is_refused 9131[gw12] [ 76%] PASSED tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9132[gw2] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_completion_decorator 9133[gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data_wrong_code 9134[gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_for_non_name_bearing_method 9135tests/shared/test_exceptions.py::test_url_elicitation_required_error_serialization_roundtrip 9136[gw7] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_context_read_resource_keeps_outer_input_responses_from_the_nested_template 9137tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup 9138[gw9] [ 76%] PASSED tests/server/test_runner.py::test_dual_era_loop_initialize_during_an_in_flight_modern_request_is_refused 9139[gw10] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9140tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9141tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_when_body_omits_the_named_param 9142tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9143[gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_serialization_roundtrip 9144tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations 9145tests/server/test_runner.py::test_dual_era_loop_maps_unmapped_handler_exceptions_like_the_modern_http_entry 9146[gw10] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9147tests/server/mcpserver/test_server.py::test_custom_resource_returning_the_wrong_type_is_a_crash 9148[gw5] [ 76%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[streamable-http-stateless-2025-11-25] 9149[gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations 9150tests/server/mcpserver/test_server.py::test_prompt_raising_mcp_error_surfaces_code_and_data_to_client 9151[gw12] [ 76%] PASSED tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9152tests/shared/test_exceptions.py::test_url_elicitation_required_error_inherits_from_mcp_error 9153tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[in-memory-2026-07-28] 9154[gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_when_body_omits_the_named_param 9155tests/shared/test_inbound.py::test_all_rungs_pass_yields_route 9156[gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_inherits_from_mcp_error 9157tests/shared/test_exceptions.py::test_url_elicitation_required_error_exception_message 9158[gw7] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_prompt_raising_mcp_error_surfaces_code_and_data_to_client 9159tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9160[gw10] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9161tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9162tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9163[gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_exception_message 9164[gw11] [ 76%] PASSED tests/shared/test_inbound.py::test_all_rungs_pass_yields_route 9165tests/server/mcpserver/test_server.py::test_resource_template_raising_mcp_error_surfaces_code_and_data_to_client 9166tests/shared/test_exceptions.py::test_from_jsonrpc_error_preserves_code_message_and_data 9167[gw12] [ 76%] PASSED tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9168[gw0] [ 76%] PASSED tests/shared/test_exceptions.py::test_from_jsonrpc_error_preserves_code_message_and_data 9169tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9170[gw5] [ 76%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[in-memory-2026-07-28] 9171[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] 9172tests/shared/test_extension.py::test_server_extension_module_reexports_shared_validator 9173tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[streamable-http-2026-07-28] 9174tests/shared/test_dispatcher.py::test_ctx_send_raw_request_round_trips_to_calling_side[jsonrpc] 9175tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[initialize] 9176tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[malformed-or-empty-applicators-ignored] 9177tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9178[gw13] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9179tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9180[gw7] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_resource_template_raising_mcp_error_surfaces_code_and_data_to_client 9181tests/server/mcpserver/test_server.py::test_static_resource_raising_mcp_error_surfaces_code_and_data_to_client 9182[gw10] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9183tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9184tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9185[gw4] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9186tests/shared/test_sse.py::test_sse_client_basic_connection 9187[gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[initialize] 9188tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[myorg/custom] 9189[gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[myorg/custom] 9190[gw0] [ 77%] PASSED tests/shared/test_extension.py::test_server_extension_module_reexports_shared_validator 9191tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[io.modelcontextprotocol/ui] 9192tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[does/not/exist] 9193[gw12] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9194tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9195[gw1] [ 77%] PASSED tests/shared/test_dispatcher.py::test_ctx_send_raw_request_round_trips_to_calling_side[jsonrpc] 9196[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[malformed-or-empty-applicators-ignored] 9197tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[empty] 9198[gw7] [ 77%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_raising_mcp_error_surfaces_code_and_data_to_client 9199tests/server/mcpserver/test_server.py::test_tool_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 9200[gw10] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9201tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9202[gw0] [ 77%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[io.modelcontextprotocol/ui] 9203[gw12] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9204tests/shared/test_streamable_http.py::test_content_type_validation 9205[gw13] [ 77%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9206tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9207[gw13] [ 77%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9208tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 9209[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[empty] 9210tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9211[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resources_returns_registered_resources[streamable-http-2026-07-28] 9212tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[space] 9213tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9214tests/interaction/lowlevel/test_resources.py::test_read_resource_text[in-memory-2025-11-25] 9215[gw12] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9216[gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[does/not/exist] 9217tests/shared/test_inbound.py::test_ladder_first_failure_wins 9218[gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 9219tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 9220[gw10] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9221[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[space] 9222[gw4] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection 9223[gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_ladder_first_failure_wins 9224[gw1] [ 77%] PASSED tests/shared/test_streamable_http.py::test_content_type_validation 9225tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9226tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9227[gw13] [ 77%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9228tests/shared/test_sse.py::test_sse_client_on_session_created 9229tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9230tests/shared/test_inbound.py::test_error_code_http_status_table[-32700-400] 9231tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[colon] 9232[gw9] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_maps_unmapped_handler_exceptions_like_the_modern_http_entry 9233tests/shared/test_streamable_http.py::test_json_validation 9234tests/server/test_runner.py::test_dual_era_loop_raise_exceptions_reraises_unmapped_modern_handler_exceptions 9235[gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 9236[gw13] [ 77%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9237[gw4] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created 9238[gw10] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9239[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[colon] 9240[gw12] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9241tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9242tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9243[gw4] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9244tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 9245tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9246tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9247[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_text[in-memory-2025-11-25] 9248tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-ascii] 9249tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9250tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9251[gw4] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9252[gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32700-400] 9253[gw7] [ 77%] PASSED tests/server/mcpserver/test_server.py::test_tool_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 9254tests/shared/test_inbound.py::test_error_code_http_status_table[-32600-400] 9255tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9256[gw10] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9257[gw12] [ 77%] PASSED tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9258[gw6] [ 77%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9259[gw1] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_validation 9260tests/server/mcpserver/test_server.py::test_tool_raising_tool_error_is_logged_at_info_without_traceback 9261tests/shared/test_streamable_http.py::test_json_parsing 9262tests/interaction/lowlevel/test_resources.py::test_read_resource_text[sse-2025-11-25] 9263[gw4] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9264tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9265tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9266[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-ascii] 9267[gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 9268tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9269[gw4] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9270tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 9271tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9272[gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32600-400] 9273[gw10] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9274tests/shared/test_streamable_http.py::test_get_validation 9275[gw4] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9276tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[control-char] 9277[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[control-char] 9278tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9279[gw12] [ 77%] PASSED tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9280[gw13] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9281tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9282[gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 9283tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9284[gw4] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9285tests/shared/test_inbound.py::test_error_code_http_status_table[-32602-400] 9286[gw1] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_parsing 9287tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9288tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-string] 9289tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-null] 9290[gw13] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9291[gw10] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9292tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9293tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 9294[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-string] 9295[gw11] [ 77%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32602-400] 9296tests/shared/test_inbound.py::test_error_code_http_status_table[-32020-400] 9297tests/shared/test_streamable_http.py::test_method_not_allowed 9298tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9299[gw4] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9300tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9301[gw15] [ 77%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-null] 9302tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9303tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-header] 9304[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-header] 9305[gw0] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 9306[gw12] [ 78%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9307[gw13] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9308[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9309[gw2] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_custom_resource_returning_the_wrong_type_is_a_crash 9310[gw7] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_tool_raising_tool_error_is_logged_at_info_without_traceback 9311tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9312[gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32020-400] 9313[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_text[sse-2025-11-25] 9314tests/interaction/lowlevel/test_resources.py::test_read_resource_text[streamable-http-2025-11-25] 9315tests/shared/test_inbound.py::test_error_code_http_status_table[-32021-400] 9316tests/server/mcpserver/test_server.py::test_tool_error_subclass_is_still_anticipated 9317[gw6] [ 78%] PASSED tests/shared/test_streamable_http.py::test_get_validation 9318tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 9319tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9320[gw1] [ 78%] PASSED tests/shared/test_streamable_http.py::test_method_not_allowed 9321tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 9322tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-object] 9323[gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-object] 9324[gw4] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9325tests/server/mcpserver/test_server.py::test_completion_handler_crash_is_logged_and_reaches_the_client_generically 9326tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-array] 9327[gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 9328tests/shared/test_sse.py::test_sse_client_exception_handling 9329[gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-array] 9330tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-null] 9331tests/shared/test_streamable_http.py::test_session_validation 9332[gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32021-400] 9333tests/shared/test_inbound.py::test_error_code_http_status_table[-32022-400] 9334tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9335[gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-null] 9336[gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32022-400] 9337tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 9338[gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 9339tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 9340tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-number] 9341[gw4] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_exception_handling 9342[gw1] [ 78%] PASSED tests/shared/test_streamable_http.py::test_session_validation 9343tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9344[gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-number] 9345tests/shared/test_inbound.py::test_error_code_http_status_table[-32601-404] 9346tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9347tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[array-type] 9348[gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 9349[gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32601-404] 9350[gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[array-type] 9351tests/shared/test_streamable_http.py::test_session_id_pattern 9352tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[dict-type] 9353tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 9354[gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[dict-type] 9355[gw4] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9356tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-type] 9357tests/shared/test_sse.py::test_request_context_propagation 9358[gw7] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_tool_error_subclass_is_still_anticipated 9359tests/server/mcpserver/test_server.py::test_tool_argument_validation_failure_is_logged_at_info_without_traceback 9360[gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-type] 9361[gw1] [ 78%] PASSED tests/shared/test_streamable_http.py::test_session_id_pattern 9362[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_text[streamable-http-2025-11-25] 9363tests/shared/test_inbound.py::test_error_code_http_status_covers_every_ladder_code 9364[gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_covers_every_ladder_code 9365tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[missing-type] 9366tests/interaction/lowlevel/test_resources.py::test_read_resource_text[streamable-http-stateless-2025-11-25] 9367[gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[missing-type] 9368tests/shared/test_inbound.py::test_verdict_dataclasses_are_frozen 9369tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-same-case] 9370[gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 9371[gw9] [ 78%] PASSED tests/server/test_runner.py::test_dual_era_loop_raise_exceptions_reraises_unmapped_modern_handler_exceptions 9372tests/server/test_runner.py::test_dual_era_loop_custom_method_with_mis_shaped_envelope_values_still_routes 9373tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9374[gw14] [ 78%] PASSED tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup 9375[gw12] [ 78%] PASSED tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9376[gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_verdict_dataclasses_are_frozen 9377tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[plain] 9378tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 9379[gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 9380tests/server/test_subscriptions.py::test_subscription_limit_rejects_further_streams_pre_ack 9381tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9382[gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-same-case] 9383tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-diff-case] 9384tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 9385[gw1] [ 78%] PASSED tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9386tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9387[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_text[streamable-http-stateless-2025-11-25] 9388[gw4] [ 78%] PASSED tests/shared/test_sse.py::test_request_context_propagation 9389[gw12] [ 78%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9390[gw9] [ 78%] PASSED tests/server/test_runner.py::test_dual_era_loop_custom_method_with_mis_shaped_envelope_values_still_routes 9391[gw14] [ 78%] PASSED tests/server/test_subscriptions.py::test_subscription_limit_rejects_further_streams_pre_ack 9392tests/interaction/lowlevel/test_resources.py::test_read_resource_text[in-memory-2026-07-28] 9393tests/shared/test_sse.py::test_request_context_isolation 9394tests/shared/test_sse.py::test_raw_sse_connection 9395[gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[plain] 9396tests/server/test_subscriptions.py::test_backlog_overflow_ends_the_stream_and_frees_its_slot 9397[gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-diff-case] 9398tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[properties-chain-not-restored-below-an-applicator] 9399[gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[properties-chain-not-restored-below-an-applicator] 9400tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[with internal space] 9401[gw12] [ 78%] PASSED tests/shared/test_sse.py::test_raw_sse_connection 9402[gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[with internal space] 9403tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] 9404tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9405[gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 9406tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 9407tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-root-schema] 9408[gw8] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-root-schema] 9409[gw2] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_completion_handler_crash_is_logged_and_reaches_the_client_generically 9410[gw11] [ 78%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] 9411[gw12] [ 78%] PASSED tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9412tests/shared/test_uri_template.py::test_parse_simple_variable 9413[gw7] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_tool_argument_validation_failure_is_logged_at_info_without_traceback 9414tests/server/test_runner.py::test_has_modern_envelope_keys_on_the_protocol_version_key 9415[gw9] [ 78%] PASSED tests/server/test_runner.py::test_has_modern_envelope_keys_on_the_protocol_version_key 9416tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9417tests/server/mcpserver/test_server.py::test_tool_argument_validation_failure_chains_directly_to_the_validation_error 9418[gw15] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 9419[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_text[in-memory-2026-07-28] 9420[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_simple_variable 9421tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-across-nesting-levels] 9422[gw8] [ 79%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-across-nesting-levels] 9423tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9424tests/server/mcpserver/test_server.py::test_completion_handler_returning_the_wrong_type_is_a_crash 9425[gw6] [ 79%] PASSED tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9426tests/interaction/lowlevel/test_resources.py::test_read_resource_text[streamable-http-2026-07-28] 9427[gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 9428[gw7] [ 79%] PASSED tests/server/mcpserver/test_server.py::test_tool_argument_validation_failure_chains_directly_to_the_validation_error 9429[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9430tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 9431tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-bad-token] 9432tests/server/mcpserver/test_server.py::test_validation_error_raised_inside_the_tool_body_is_a_crash 9433tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9434[gw14] [ 79%] PASSED tests/server/test_subscriptions.py::test_backlog_overflow_ends_the_stream_and_frees_its_slot 9435tests/server/test_subscriptions.py::test_same_task_publish_burst_does_not_overflow_a_healthy_stream 9436[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9437[gw14] [ 79%] PASSED tests/server/test_subscriptions.py::test_same_task_publish_burst_does_not_overflow_a_healthy_stream 9438[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9439tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9440[gw8] [ 79%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-bad-token] 9441tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9442[gw10] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9443tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[missing-host] 9444[gw4] [ 79%] PASSED tests/shared/test_sse.py::test_request_context_isolation 9445[gw15] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 9446tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9447[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9448tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9449tests/shared/test_sse.py::test_sse_message_id_coercion 9450[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9451[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9452tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 9453tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 9454tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9455tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9456[gw4] [ 79%] PASSED tests/shared/test_sse.py::test_sse_message_id_coercion 9457tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9458[gw4] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9459[gw5] [ 79%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_text[streamable-http-2026-07-28] 9460[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9461tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9462tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9463tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 9464[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9465[gw15] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 9466[gw4] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9467tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9468tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 9469tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9470[gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 9471[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9472tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] 9473[gw4] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9474tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9475[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 9476tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 9477[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9478[gw13] [ 79%] PASSED tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9479tests/shared/test_uri_template.py::test_parse_multiple_expressions 9480tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[in-memory-2025-11-25] 9481[gw11] [ 79%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] 9482tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 9483[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_expressions 9484tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9485[gw14] [ 79%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[missing-host] 9486[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 9487[gw6] [ 79%] PASSED tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9488tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9489tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-no-match] 9490[gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9491[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9492tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9493tests/shared/test_streamable_http.py::test_accept_header_validation 9494tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9495[gw7] [ 79%] PASSED tests/server/mcpserver/test_server.py::test_validation_error_raised_inside_the_tool_body_is_a_crash 9496tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 9497tests/server/mcpserver/test_server.py::test_return_value_failing_the_output_schema_is_a_crash 9498[gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9499[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9500tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9501[gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 9502tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9503[gw15] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 9504tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9505tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 9506[gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9507[gw4] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9508tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9509[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9510tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9511tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9512[gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9513tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 9514tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9515[gw15] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 9516[gw5] [ 79%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[in-memory-2025-11-25] 9517tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[sse-2025-11-25] 9518[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 9519[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9520tests/shared/test_uri_template.py::test_parse_explode_modifier 9521tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9522[gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9523tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9524[gw12] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_explode_modifier 9525[gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9526tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9527[gw13] [ 79%] PASSED tests/shared/test_streamable_http.py::test_accept_header_validation 9528[gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 9529tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 9530tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9531[gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9532tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 9533[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 9534tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9535[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9536tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 9537tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9538[gw11] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9539[gw14] [ 80%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-no-match] 9540tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9541[gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9542tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9543[gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 9544tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 9545tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9546[gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9547tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-wildcard-base-mismatch] 9548tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9549[gw6] [ 80%] PASSED tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9550[gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 9551[gw15] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 9552tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 9553tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 9554tests/shared/test_streamable_http.py::test_client_crash_handled 9555[gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 9556tests/shared/test_path_security.py::test_is_absolute_path[-False] 9557[gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9558[gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9559[gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[-False] 9560[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9561tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9562tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9563tests/shared/test_path_security.py::test_is_absolute_path[.-False] 9564tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9565[gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9566tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9567[gw15] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 9568tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-non-primitive] 9569[gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9570[gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[.-False] 9571tests/shared/test_path_security.py::test_is_absolute_path[..-False] 9572[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9573[gw0] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9574tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9575[gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9576tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9577[gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[..-False] 9578tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9579[gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9580[gw8] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-non-primitive] 9581[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9582[gw2] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_completion_handler_returning_the_wrong_type_is_a_crash 9583tests/shared/test_path_security.py::test_is_absolute_path[/-True] 9584[gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/-True] 9585tests/server/mcpserver/test_server.py::test_completion_handler_raising_mcp_error_passes_through 9586tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 9587tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9588[gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 9589[gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9590[gw5] [ 80%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[sse-2025-11-25] 9591tests/shared/test_streamable_http.py::test_session_termination 9592[gw14] [ 80%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-wildcard-base-mismatch] 9593tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9594tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 9595[gw15] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 9596tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9597[gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9598tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9599tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-exact-no-origin] 9600tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 9601tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[streamable-http-2025-11-25] 9602[gw7] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_return_value_failing_the_output_schema_is_a_crash 9603tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9604[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9605[gw14] [ 80%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-exact-no-origin] 9606[gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 9607tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 9608[gw0] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9609tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-wildcard-match] 9610[gw14] [ 80%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-wildcard-match] 9611[gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 9612tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 9613tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 9614tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-no-match] 9615[gw11] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9616tests/server/mcpserver/test_server.py::test_unknown_tool_is_logged_at_info_without_traceback 9617[gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9618[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9619[gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 9620tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9621tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 9622tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9623[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9624tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9625[gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 9626[gw2] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_completion_handler_raising_mcp_error_passes_through 9627tests/server/mcpserver/test_server.py::test_sse_app_applies_the_configured_request_body_limit 9628tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9629[gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9630tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9631[gw10] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9632tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9633[gw9] [ 80%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9634[gw15] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 9635tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9636tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9637[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9638tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9639tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9640[gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9641tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9642[gw6] [ 80%] PASSED tests/shared/test_streamable_http.py::test_client_crash_handled 9643tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9644[gw6] [ 80%] PASSED tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9645tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9646[gw6] [ 80%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9647tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9648[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9649tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9650[gw2] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_sse_app_applies_the_configured_request_body_limit 9651tests/server/mcpserver/test_server.py::test_report_progress_delegates_to_session_report_progress 9652[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_session_termination 9653[gw6] [ 80%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9654tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9655tests/shared/test_streamable_http.py::test_response 9656[gw13] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9657[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9658[gw14] [ 81%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-no-match] 9659[gw15] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9660[gw0] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9661tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9662tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-base-mismatch] 9663tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9664[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9665tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9666[gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9667tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 9668tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9669tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9670[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9671[gw13] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9672[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_response 9673[gw12] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9674tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9675tests/shared/test_streamable_http.py::test_json_response 9676tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9677tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9678[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9679[gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9680tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9681tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9682[gw10] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9683tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9684[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response 9685[gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9686tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9687[gw5] [ 81%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[streamable-http-2025-11-25] 9688tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[streamable-http-stateless-2025-11-25] 9689tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9690[gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9691tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9692[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9693[gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9694[gw15] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9695tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9696[gw12] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9697tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9698tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9699[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9700[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9701tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9702[gw14] [ 81%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-base-mismatch] 9703tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9704tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9705[gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9706tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9707tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9708[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9709tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9710[gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9711tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-exact] 9712[gw14] [ 81%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-exact] 9713tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-match] 9714[gw14] [ 81%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-match] 9715[gw0] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9716tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9717tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9718[gw12] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9719tests/server/test_transport_security.py::test_validate_request_skips_host_and_origin_when_protection_is_disabled 9720tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9721[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9722tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9723[gw11] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9724[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9725tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9726[gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9727[gw14] [ 81%] PASSED tests/server/test_transport_security.py::test_validate_request_skips_host_and_origin_when_protection_is_disabled 9728[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9729tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9730[gw10] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9731tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9732[gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9733tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9734tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9735[gw14] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9736tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9737[gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9738[gw7] [ 81%] PASSED tests/server/mcpserver/test_server.py::test_unknown_tool_is_logged_at_info_without_traceback 9739tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9740tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9741[gw12] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9742[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9743[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9744tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9745[gw14] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9746[gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9747tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9748tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9749tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9750tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9751[gw15] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9752tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9753[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9754[gw14] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9755[gw0] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9756[gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9757tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9758tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9759tests/server/mcpserver/test_server.py::test_tool_raising_mcp_error_is_not_logged_by_mcpserver 9760tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9761[gw11] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9762tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 9763[gw15] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9764[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9765[gw14] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9766tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9767[gw10] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9768tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9769[gw12] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9770[gw13] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9771tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9772tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9773[gw14] [ 82%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9774tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9775[gw13] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9776tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9777[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9778tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9779tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9780[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9781[gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 9782tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9783[gw14] [ 82%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9784tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9785[gw13] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9786[gw0] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9787tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9788[gw5] [ 82%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[streamable-http-stateless-2025-11-25] 9789tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 9790tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9791[gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9792[gw14] [ 82%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9793tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9794tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9795tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 9796tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9797tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[in-memory-2026-07-28] 9798tests/shared/test_streamable_http.py::test_get_sse_stream 9799[gw10] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 9800[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9801tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9802tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9803tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9804[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9805tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9806[gw9] [ 82%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9807[gw13] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9808[gw12] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9809[gw14] [ 82%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9810[gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9811tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 9812tests/shared/test_uri_template.py::test_parse_literal_only 9813[gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_get_sse_stream 9814[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9815tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9816[gw10] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9817tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9818tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9819tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9820[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 9821[gw5] [ 82%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[in-memory-2026-07-28] 9822[gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_literal_only 9823tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9824[gw12] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9825[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9826tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9827tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9828[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9829[gw10] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9830tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 9831tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9832[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9833[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9834tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9835tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9836[gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9837tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[streamable-http-2026-07-28] 9838[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9839[gw7] [ 82%] PASSED tests/server/mcpserver/test_server.py::test_tool_raising_mcp_error_is_not_logged_by_mcpserver 9840tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9841tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9842[gw10] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9843tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9844tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9845[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9846tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9847tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9848[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9849[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9850[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 9851[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9852tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 9853[gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9854tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9855[gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9856tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9857tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9858tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9859[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9860tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9861[gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9862tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9863tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9864tests/server/mcpserver/test_server.py::test_resolver_raising_tool_error_is_anticipated 9865[gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9866[gw12] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9867[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 9868tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 9869[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9870[gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9871tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9872[gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9873tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9874[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9875tests/shared/test_uri_template.py::test_is_template[-False] 9876[gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[-False] 9877tests/shared/test_uri_template.py::test_is_template[{a}-True] 9878[gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9879tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9880[gw11] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9881[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9882tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9883[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9884tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9885[gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[{a}-True] 9886tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9887tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9888[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 9889tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9890[gw12] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9891[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9892tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9893tests/shared/test_uri_template.py::test_is_template[{-False] 9894tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9895tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 9896[gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 9897[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9898[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9899tests/shared/test_uri_template.py::test_equality_based_on_template_string 9900tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9901tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9902[gw14] [ 83%] PASSED tests/shared/test_uri_template.py::test_is_template[{-False] 9903[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_equality_based_on_template_string 9904tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 9905[gw5] [ 83%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_binary[streamable-http-2026-07-28] 9906[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9907[gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9908tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9909[gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9910tests/shared/test_uri_template.py::test_is_template[}-False] 9911[gw14] [ 83%] PASSED tests/shared/test_uri_template.py::test_is_template[}-False] 9912tests/shared/test_uri_template.py::test_is_template[}{-False] 9913[gw15] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9914tests/shared/test_uri_template.py::test_frozen 9915[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_frozen 9916tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9917[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9918[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9919tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9920[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9921tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9922tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9923[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 9924tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 9925tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9926[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9927tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9928[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 9929[gw14] [ 83%] PASSED tests/shared/test_uri_template.py::test_is_template[}{-False] 9930tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9931[gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9932tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[in-memory-2025-11-25] 9933[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9934tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9935[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9936tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9937tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9938[gw12] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9939tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9940[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9941[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9942tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9943[gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9944tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 9945tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9946tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 9947[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9948tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9949[gw15] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9950[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9951tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9952[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9953[gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 9954[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 9955tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9956tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9957tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9958[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9959tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9960[gw5] [ 83%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[in-memory-2025-11-25] 9961[gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9962tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9963[gw12] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9964tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9965tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 9966[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 9967tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 9968[gw11] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9969[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9970[gw15] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9971[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9972tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9973[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9974tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9975tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9976[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9977tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 9978[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9979tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9980tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9981[gw13] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9982[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 9983tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9984tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9985tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[sse-2025-11-25] 9986[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9987tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9988[gw0] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 9989[gw12] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9990tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 9991[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 9992[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9993tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9994[gw15] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9995tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 9996[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9997tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 9998[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9999tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 10000[gw13] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 10001[gw0] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 10002tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 10003[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 10004[gw12] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 10005tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 10006tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 10007[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 10008[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 10009tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 10010tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10011tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 10012tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 10013tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 10014[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10015[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 10016tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 10017[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 10018[gw5] [ 84%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[sse-2025-11-25] 10019tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 10020[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 10021tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 10022[gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 10023tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10024[gw15] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 10025tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 10026[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 10027tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 10028[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 10029tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 10030tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 10031[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 10032[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 10033tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 10034[gw3] [ 84%] PASSED tests/server/test_stdio.py::test_stdio_server_round_trips_messages_over_injected_streams 10035tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[streamable-http-2025-11-25] 10036[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 10037tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 10038tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 10039[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 10040tests/server/test_stdio.py::test_stdio_server_invalid_utf8 10041[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 10042tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 10043tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 10044[gw15] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 10045[gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10046[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 10047tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 10048tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 10049tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10050[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 10051tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 10052[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 10053tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 10054[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 10055tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 10056[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 10057tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 10058tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 10059[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 10060tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 10061[gw7] [ 84%] PASSED tests/server/mcpserver/test_server.py::test_resolver_raising_tool_error_is_anticipated 10062tests/server/mcpserver/test_server.py::test_resolver_crash_is_logged_as_the_tools_crash 10063tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 10064[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 10065[gw15] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 10066[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 10067[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 10068[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 10069tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 10070[gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10071[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 10072tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 10073[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] 10074tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 10075[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 10076tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10077[gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10078[gw3] [ 84%] PASSED tests/server/test_stdio.py::test_stdio_server_invalid_utf8 10079tests/server/test_stdio.py::test_stdio_server_takes_stdin_off_the_descriptor_table_while_serving 10080tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 10081tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10082tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 10083[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 10084[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] 10085tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 10086[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 10087tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10088[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10089tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 10090[gw15] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 10091[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 10092tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 10093tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 10094[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 10095tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 10096tests/shared/test_uri_template.py::test_match_escapes_template_literals 10097tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 10098[gw5] [ 84%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[streamable-http-2025-11-25] 10099[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 10100tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 10101tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 10102[gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_escapes_template_literals 10103tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10104[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 10105[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 10106[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 10107tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 10108tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 10109tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[streamable-http-stateless-2025-11-25] 10110tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 10111[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 10112tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10113[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 10114[gw15] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 10115[gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10116tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10117tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10118tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 10119tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 10120[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 10121tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10122tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 10123[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10124[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 10125[gw14] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10126tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 10127[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 10128tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 10129[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10130tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10131tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10132[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 10133[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 10134tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10135[gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10136[gw11] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10137[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 10138tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10139tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10140tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10141[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10142tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10143[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10144[gw10] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 10145tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10146[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] 10147tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 10148tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 10149[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 10150[gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10151tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10152[gw11] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10153tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10154[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[streamable-http-stateless-2025-11-25] 10155tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10156tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10157tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[in-memory-2026-07-28] 10158[gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10159tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10160[gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10161[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[in-memory-2026-07-28] 10162tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 10163tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[streamable-http-2026-07-28] 10164[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10165[gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 10166tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 10167[gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10168[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 10169[gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 10170tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 10171tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 10172tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10173[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 10174[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_resources.py::test_read_resource_unknown_uri_is_protocol_error[streamable-http-2026-07-28] 10175[gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 10176tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[in-memory-2025-11-25] 10177tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 10178[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10179tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10180tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 10181tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10182[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 10183tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10184[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 10185tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 10186[gw13] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10187[gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10188[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 10189tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10190tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 10191tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 10192[gw11] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10193tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10194[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 10195[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 10196tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 10197[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[in-memory-2025-11-25] 10198tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[sse-2025-11-25] 10199[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 10200[gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10201tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10202tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 10203tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10204tests/shared/test_uri_template.py::test_match_never_raises 10205[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 10206tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 10207[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10208tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10209[gw7] [ 85%] PASSED tests/server/mcpserver/test_server.py::test_resolver_crash_is_logged_as_the_tools_crash 10210[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 10211tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 10212[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10213[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[sse-2025-11-25] 10214tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10215[gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10216tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[streamable-http-2025-11-25] 10217[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 10218tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 10219tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10220[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 10221tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 10222[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 10223tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10224tests/server/mcpserver/test_server.py::test_argument_validator_that_crashes_is_the_tools_crash 10225tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 10226[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10227tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10228[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 10229[gw15] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10230[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10231tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10232tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 10233[gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10234[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[streamable-http-2025-11-25] 10235[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 10236[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10237tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[streamable-http-stateless-2025-11-25] 10238[gw3] [ 85%] PASSED tests/server/test_stdio.py::test_stdio_server_takes_stdin_off_the_descriptor_table_while_serving 10239tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 10240[gw10] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10241tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10242tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10243tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 10244[gw14] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 10245[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 10246[gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10247tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10248tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10249tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup] 10250[gw13] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10251tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10252[gw1] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10253tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10254[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10255tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10256[gw11] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_never_raises 10257tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10258tests/test_examples.py::test_simple_echo 10259[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[streamable-http-stateless-2025-11-25] 10260[gw12] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10261tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10262tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10263[gw2] [ 86%] PASSED tests/server/mcpserver/test_server.py::test_report_progress_delegates_to_session_report_progress 10264tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[in-memory-2026-07-28] 10265[gw1] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10266tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10267tests/server/mcpserver/test_server.py::test_context_headers_returns_request_headers 10268[gw2] [ 86%] PASSED tests/server/mcpserver/test_server.py::test_context_headers_returns_request_headers 10269tests/server/mcpserver/test_server.py::test_context_headers_is_none_without_request 10270[gw12] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10271[gw1] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10272[gw2] [ 86%] PASSED tests/server/mcpserver/test_server.py::test_context_headers_is_none_without_request 10273[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[in-memory-2026-07-28] 10274[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10275tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10276tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[streamable-http-2026-07-28] 10277tests/server/mcpserver/test_server.py::test_context_headers_is_none_when_request_carries_no_headers 10278[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10279[gw2] [ 86%] PASSED tests/server/mcpserver/test_server.py::test_context_headers_is_none_when_request_carries_no_headers 10280tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10281tests/server/mcpserver/test_server.py::test_read_resource_template_error 10282tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10283[gw12] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10284[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_resources.py::test_list_resource_templates_returns_registered_templates[streamable-http-2026-07-28] 10285[gw14] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10286tests/interaction/lowlevel/test_resources.py::test_subscribe_resource_delivers_uri_to_handler[in-memory-2025-11-25] 10287[gw15] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10288[gw10] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10289tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10290[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10291tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10292[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10293tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10294[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_resources.py::test_subscribe_resource_delivers_uri_to_handler[in-memory-2025-11-25] 10295tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10296tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10297tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10298tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10299[gw13] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10300tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10301[gw1] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10302[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10303tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10304[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10305tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10306[gw10] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10307tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10308tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10309tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10310[gw5] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10311tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10312[gw12] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10313[gw15] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10314[gw6] [ 86%] PASSED tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 10315tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 10316[gw13] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10317tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10318[gw14] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10319tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10320[gw10] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10321tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10322tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 10323[gw0] [ 86%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 10324tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10325tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10326[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10327tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10328tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10329[gw3] [ 86%] PASSED tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup] 10330[gw13] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10331tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10332[gw5] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10333[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10334[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10335[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10336tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10337tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2] 10338[gw12] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10339tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10340tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10341tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10342[gw15] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10343[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10344[gw14] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10345tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10346tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10347[gw2] [ 86%] PASSED tests/server/mcpserver/test_server.py::test_read_resource_template_error 10348tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10349tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10350tests/server/mcpserver/test_server.py::test_read_resource_template_not_found 10351[gw10] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10352[gw5] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10353[gw13] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10354[gw12] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10355tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10356tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10357tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10358[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10359tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10360tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10361[gw2] [ 86%] PASSED tests/server/mcpserver/test_server.py::test_read_resource_template_not_found 10362tests/server/mcpserver/test_server.py::test_tool_returning_input_required_result_reaches_client_sealed 10363[gw5] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10364[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10365[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10366tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10367[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10368[gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10369tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10370tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10371tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10372tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10373[gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10374[gw14] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10375tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10376[gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10377tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10378[gw2] [ 87%] PASSED tests/server/mcpserver/test_server.py::test_tool_returning_input_required_result_reaches_client_sealed 10379tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10380[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10381tests/server/mcpserver/test_server.py::test_tool_reads_input_responses_and_request_state_from_context_on_retry 10382[gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10383tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10384[gw12] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10385tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10386[gw11] [ 87%] PASSED tests/test_examples.py::test_simple_echo 10387tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10388[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10389[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10390tests/test_examples.py::test_complex_inputs 10391tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10392tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10393[gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10394tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10395[gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10396[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10397tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10398tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10399[gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10400[gw14] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10401[gw2] [ 87%] PASSED tests/server/mcpserver/test_server.py::test_tool_reads_input_responses_and_request_state_from_context_on_retry 10402[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10403tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10404tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10405[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10406tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10407[gw12] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10408tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10409tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10410[gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10411tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10412[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10413tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10414tests/server/mcpserver/test_server.py::test_prompt_returning_input_required_result_reaches_client_sealed 10415[gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10416[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10417tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10418[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10419[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10420tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10421[gw14] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10422[gw2] [ 87%] PASSED tests/server/mcpserver/test_server.py::test_prompt_returning_input_required_result_reaches_client_sealed 10423tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10424[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10425tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10426tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10427tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 10428[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10429[gw12] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10430tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10431tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10432tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10433[gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10434tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10435[gw2] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 10436[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10437[gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10438tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10439[gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10440tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10441[gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10442tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10443[gw3] [ 87%] PASSED tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2] 10444tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10445[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10446tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2_destroys_target] 10447[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10448tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10449tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10450[gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10451tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 10452[gw2] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 10453tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 10454tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10455[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10456[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10457[gw2] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 10458tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10459tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 10460[gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10461tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10462[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10463tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10464tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10465[gw14] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10466tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10467[gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10468tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10469[gw12] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10470[gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10471tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10472tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10473[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10474[gw2] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 10475tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 10476tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10477[gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10478tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10479[gw2] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 10480[gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10481tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 10482[gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10483[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10484tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10485tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10486tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10487[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10488[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10489[gw12] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10490tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10491[gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 10492tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10493[gw14] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10494[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10495tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10496[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10497tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10498[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10499tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10500tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 10501[gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 10502tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10503tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10504[gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10505tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 10506[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10507tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10508[gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 10509tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10510tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 10511[gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 10512tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 10513[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10514[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10515tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10516[gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10517tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10518[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10519tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10520[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10521tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10522tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10523[gw12] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10524tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10525[gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10526tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10527[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10528tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10529[gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 10530tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 10531[gw14] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10532tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10533[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10534tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10535[gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10536tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10537[gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 10538tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 10539[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10540[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10541[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10542tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10543[gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 10544tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 10545[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10546tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10547tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10548tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10549[gw3] [ 88%] PASSED tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2_destroys_target] 10550[gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 10551tests/server/test_stdio.py::test_stdio_server_exits_cleanly_when_the_stdin_restore_fails 10552[gw14] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10553[gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10554[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10555tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10556tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10557tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 10558[gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10559tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10560[gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10561tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10562[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10563tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10564[gw12] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10565tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10566tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10567[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10568[gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 10569tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 10570[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10571tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10572[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10573tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10574tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10575[gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 10576tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 10577[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10578[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10579tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10580tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10581[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10582[gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 10583[gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10584tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10585[gw12] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10586tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10587[gw14] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10588tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10589tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10590tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 10591[gw2] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 10592[gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10593tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10594tests/test_types.py::test_tool_result_content 10595[gw11] [ 88%] PASSED tests/test_examples.py::test_complex_inputs 10596tests/test_examples.py::test_direct_call_tool_result_return 10597[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10598tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10599[gw2] [ 88%] PASSED tests/test_types.py::test_tool_result_content 10600tests/test_types.py::test_tool_choice 10601[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10602tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10603[gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10604tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10605[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10606[gw2] [ 89%] PASSED tests/test_types.py::test_tool_choice 10607[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10608tests/test_types.py::test_sampling_message_with_user_role 10609tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10610[gw10] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10611[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10612tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10613tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10614[gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10615tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10616[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10617tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10618[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10619[gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10620tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10621[gw2] [ 89%] PASSED tests/test_types.py::test_sampling_message_with_user_role 10622tests/test_types.py::test_sampling_message_with_assistant_role 10623tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10624tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10625[gw2] [ 89%] PASSED tests/test_types.py::test_sampling_message_with_assistant_role 10626[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10627[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10628tests/test_types.py::test_sampling_message_backward_compatibility 10629tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10630tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10631[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10632tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10633[gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10634[gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10635[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10636[gw10] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10637tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10638[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10639[gw2] [ 89%] PASSED tests/test_types.py::test_sampling_message_backward_compatibility 10640tests/test_types.py::test_create_message_request_params_with_tools 10641tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10642tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10643[gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10644tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10645[gw2] [ 89%] PASSED tests/test_types.py::test_create_message_request_params_with_tools 10646tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10647tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10648[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10649tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10650[gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10651tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10652tests/test_types.py::test_create_message_result_with_tool_use 10653[gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10654[gw2] [ 89%] PASSED tests/test_types.py::test_create_message_result_with_tool_use 10655[gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10656tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10657tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10658[gw7] [ 89%] PASSED tests/server/mcpserver/test_server.py::test_argument_validator_that_crashes_is_the_tools_crash 10659[gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10660tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10661[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10662tests/test_types.py::test_create_message_result_basic 10663[gw2] [ 89%] PASSED tests/test_types.py::test_create_message_result_basic 10664tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10665[gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10666[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10667tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10668tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10669[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10670tests/test_types.py::test_client_capabilities_with_sampling_tools 10671tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10672[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10673tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10674tests/server/mcpserver/test_server.py::test_argument_validator_raising_mcp_error_is_a_protocol_error 10675[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10676[gw10] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10677tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10678[gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10679[gw2] [ 89%] PASSED tests/test_types.py::test_client_capabilities_with_sampling_tools 10680[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10681[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10682[gw3] [ 89%] PASSED tests/server/test_stdio.py::test_stdio_server_exits_cleanly_when_the_stdin_restore_fails 10683tests/server/test_stdio.py::test_stdio_server_takes_stdout_off_the_descriptor_table_while_serving 10684tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10685tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10686tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10687tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10688tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10689[gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10690tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10691[gw2] [ 89%] PASSED tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10692[gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10693[gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10694tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10695[gw7] [ 89%] PASSED tests/server/mcpserver/test_server.py::test_argument_validator_raising_mcp_error_is_a_protocol_error 10696tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10697tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10698[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10699tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10700[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10701[gw10] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10702tests/server/mcpserver/test_server.py::test_resource_error_escaping_a_tool_is_anticipated 10703tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10704[gw2] [ 89%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10705tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10706[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10707tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10708tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10709[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10710[gw2] [ 89%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10711[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10712tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10713[gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10714tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10715tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10716tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10717[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10718[gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10719tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10720tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10721[gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10722[gw2] [ 89%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10723[gw13] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10724tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 10725tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10726tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10727[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10728tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10729[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10730tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10731[gw15] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10732tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10733[gw10] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10734[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10735[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10736tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10737[gw13] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10738tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10739[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10740[gw12] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10741tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10742tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10743tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10744[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10745[gw14] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10746[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10747tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10748tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10749tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10750[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10751[gw15] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10752tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10753tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10754[gw12] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10755tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10756[gw10] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10757[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10758[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10759[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10760tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10761tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10762[gw13] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10763[gw14] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10764tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10765tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10766[gw7] [ 90%] PASSED tests/server/mcpserver/test_server.py::test_resource_error_escaping_a_tool_is_anticipated 10767tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 10768tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10769[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10770tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10771[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10772tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10773tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10774[gw15] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10775tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10776tests/server/mcpserver/test_server.py::test_resource_crash_escaping_a_tool_is_the_tools_crash 10777[gw13] [ 90%] PASSED tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10778[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10779tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10780[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10781tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10782tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10783[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10784[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10785tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10786[gw10] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10787[gw14] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10788[gw12] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10789tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10790tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10791tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10792[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10793[gw13] [ 90%] PASSED tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10794tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10795[gw15] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10796tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10797tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10798tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 10799[gw13] [ 90%] PASSED tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10800tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10801[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10802tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10803[gw13] [ 90%] PASSED tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10804tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10805[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10806[gw13] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10807tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 10808[gw8] [ 90%] SKIPPED tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 10809[gw14] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10810tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10811[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10812tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10813[gw10] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10814[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10815tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10816[gw5] [ 90%] PASSED tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10817[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10818[gw15] [ 90%] PASSED tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 10819[gw3] [ 90%] PASSED tests/server/test_stdio.py::test_stdio_server_takes_stdout_off_the_descriptor_table_while_serving 10820tests/server/test_stdio.py::test_stdio_server_diverts_stdout_to_the_null_device_when_stderr_is_unusable 10821tests/test_types.py::test_jsonrpc_request 10822[gw13] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10823tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10824tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10825tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10826tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10827tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 10828[gw1] [ 90%] PASSED tests/test_types.py::test_jsonrpc_request 10829tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10830[gw13] [ 90%] PASSED tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10831[gw7] [ 90%] PASSED tests/server/mcpserver/test_server.py::test_resource_crash_escaping_a_tool_is_the_tools_crash 10832tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10833[gw8] [ 90%] PASSED tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 10834tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 10835tests/server/mcpserver/test_server.py::test_tool_that_recovers_from_a_missing_resource_logs_nothing 10836[gw5] [ 90%] PASSED tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10837tests/test_types.py::test_method_initialization 10838[gw12] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10839tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10840[gw0] [ 90%] PASSED tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10841[gw13] [ 91%] PASSED tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10842[gw14] [ 91%] PASSED tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10843[gw1] [ 91%] PASSED tests/test_types.py::test_method_initialization 10844[gw15] [ 91%] PASSED tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10845tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10846tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10847[gw8] [ 91%] PASSED tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 10848tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 10849[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10850[gw7] [ 91%] PASSED tests/server/mcpserver/test_server.py::test_tool_that_recovers_from_a_missing_resource_logs_nothing 10851tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10852tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10853[gw5] [ 91%] PASSED tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10854[gw10] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10855tests/test_types.py::test_tool_use_content 10856tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10857tests/server/mcpserver/test_server.py::test_static_resource_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 10858tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10859[gw0] [ 91%] PASSED tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10860[gw13] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10861[gw8] [ 91%] PASSED tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 10862tests/types/test_methods.py::test_built_in_maps_are_immutable 10863tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 10864[gw0] [ 91%] PASSED tests/types/test_methods.py::test_built_in_maps_are_immutable 10865[gw14] [ 91%] PASSED tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10866tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10867[gw15] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10868tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 10869tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10870[gw12] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10871tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10872[gw1] [ 91%] PASSED tests/test_types.py::test_tool_use_content 10873tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10874tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10875[gw5] [ 91%] PASSED tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10876[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10877tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10878[gw0] [ 91%] PASSED tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10879tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10880[gw13] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10881tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 10882[gw8] [ 91%] PASSED tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 10883[gw0] [ 91%] PASSED tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10884[gw10] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 10885tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10886tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10887tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10888[gw0] [ 91%] PASSED tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10889[gw13] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10890tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10891tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10892tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 10893[gw10] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 10894[gw14] [ 91%] PASSED tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10895tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10896[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10897[gw11] [ 91%] PASSED tests/test_examples.py::test_direct_call_tool_result_return 10898tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 10899[gw8] [ 91%] PASSED tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 10900[gw0] [ 91%] PASSED tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10901[gw15] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 10902tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10903[gw1] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10904tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 10905[gw1] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 10906tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10907[gw0] [ 91%] PASSED tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10908tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10909[gw14] [ 91%] PASSED tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10910tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10911[gw7] [ 91%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 10912tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10913tests/test_examples.py::test_desktop 10914[gw5] [ 91%] PASSED tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10915tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10916tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10917tests/server/mcpserver/test_server.py::test_resource_template_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 10918[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10919[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10920[gw12] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10921tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10922tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10923[gw10] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10924tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10925tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10926[gw5] [ 91%] PASSED tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10927[gw13] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10928[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] 10929tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10930[gw15] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10931tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10932[gw14] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10933tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10934tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10935tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10936tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 10937[gw1] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 10938[gw8] [ 91%] PASSED tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10939[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] 10940tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10941[gw14] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10942tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10943[gw5] [ 91%] PASSED tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10944tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10945tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10946[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] 10947tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10948[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] 10949tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10950[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10951tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10952[gw14] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10953[gw15] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10954tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 10955tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10956tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10957[gw12] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10958tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10959[gw12] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10960[gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10961tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10962tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 10963[gw14] [ 92%] PASSED tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10964tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10965[gw13] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10966tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10967[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10968tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 10969tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10970[gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10971[gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10972[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] 10973[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10974tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 10975tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10976[gw15] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 10977[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] 10978tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 10979[gw7] [ 92%] PASSED tests/server/mcpserver/test_server.py::test_resource_template_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 10980tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 10981[gw13] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10982tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 10983tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10984[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] 10985tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10986[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] 10987[gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10988tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 10989tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 10990[gw8] [ 92%] PASSED tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10991[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 10992[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] 10993[gw12] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10994tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10995tests/server/mcpserver/test_server.py::test_read_resource_wraps_a_crash_as_unexpected_resource_error_chained_to_the_original 10996tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 10997[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] 10998tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 10999tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11000[gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 11001[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] 11002[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] 11003[gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 11004[gw13] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 11005tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 11006tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 11007[gw15] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 11008tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11009tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11010[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] 11011[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] 11012tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11013tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11014[gw12] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 11015tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 11016tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 11017[gw13] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 11018tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 11019tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 11020[gw8] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 11021[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] 11022[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] 11023tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 11024[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] 11025tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11026tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11027[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 11028[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] 11029tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 11030[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] 11031tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 11032[gw7] [ 92%] PASSED tests/server/mcpserver/test_server.py::test_read_resource_wraps_a_crash_as_unexpected_resource_error_chained_to_the_original 11033tests/server/mcpserver/test_server.py::test_custom_resource_subclass_crash_is_wrapped_and_logged_like_a_function_resource 11034tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 11035[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] 11036tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11037tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11038[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] 11039[gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 11040tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11041tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 11042[gw8] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 11043tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11044tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 11045[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] 11046[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] 11047[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] 11048tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 11049tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 11050[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 11051[gw12] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 11052tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 11053[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] 11054tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 11055tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11056[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] 11057tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 11058tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 11059[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] 11060tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11061[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] 11062[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] 11063tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11064[gw12] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 11065[gw13] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 11066tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 11067[gw13] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 11068[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11069[gw15] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 11070tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 11071tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11072tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 11073tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 11074[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 11075[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11076tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11077[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] 11078tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11079[gw8] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 11080tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 11081tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11082tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11083[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] 11084tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11085[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11086tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 11087[gw15] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 11088tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 11089[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] 11090[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] 11091tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11092tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11093[gw12] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 11094tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11095tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11096[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11097[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] 11098[gw8] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 11099tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11100tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11101[gw13] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11102[gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11103[gw14] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11104[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11105tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11106[gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11107tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11108[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] 11109tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11110[gw15] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 11111[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11112tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 11113tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11114tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 11115[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] 11116[gw14] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11117tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11118[gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11119tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11120[gw12] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11121tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11122tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11123[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] 11124[gw14] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11125[gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11126tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 11127[gw8] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 11128[gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11129tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11130tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11131tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11132[gw7] [ 93%] PASSED tests/server/mcpserver/test_server.py::test_custom_resource_subclass_crash_is_wrapped_and_logged_like_a_function_resource 11133[gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11134tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 11135tests/server/mcpserver/test_server.py::test_static_resource_raising_resource_not_found_error_is_invalid_params_logged_at_info 11136[gw14] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11137[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11138tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11139tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11140[gw15] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 11141tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 11142[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 11143[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11144tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11145[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] 11146tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11147tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11148[gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11149tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11150[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11151tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11152[gw8] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 11153tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11154tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11155tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 11156[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11157tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11158[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] 11159tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11160[gw14] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11161tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11162[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11163[gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11164tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11165tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11166[gw8] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 11167tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11168tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 11169[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11170tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11171[gw13] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11172[gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11173tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11174tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11175[gw12] [ 93%] PASSED tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11176[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11177[gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11178tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11179[gw14] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11180tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11181tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11182tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11183[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11184[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] 11185tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11186tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11187[gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11188tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11189[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11190tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11191[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11192tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11193[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11194tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11195[gw13] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11196tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11197[gw15] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 11198tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 11199[gw4] [ 94%] PASSED tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11200[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11201[gw1] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11202tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11203[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11204tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11205tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11206[gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11207[gw10] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11208[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11209[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11210tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11211tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11212[gw3] [ 94%] PASSED tests/server/test_stdio.py::test_stdio_server_diverts_stdout_to_the_null_device_when_stderr_is_unusable 11213tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11214tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11215[gw1] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11216tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11217[gw12] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11218tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11219tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11220[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11221tests/server/test_stdio.py::test_a_second_stdio_server_on_the_same_process_streams_is_refused 11222[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11223tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11224[gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11225tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11226[gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11227[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11228tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11229[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11230[gw7] [ 94%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_raising_resource_not_found_error_is_invalid_params_logged_at_info 11231[gw15] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 11232tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11233[gw12] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11234tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11235tests/server/mcpserver/test_server.py::test_deliberate_resource_error_passes_its_message_through_and_is_logged_at_info 11236tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11237[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11238tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11239[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11240[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11241tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11242[gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11243tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11244tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11245[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11246tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11247tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11248[gw10] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11249tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11250tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11251tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11252tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11253[gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11254[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11255tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11256[gw12] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11257[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11258tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11259[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11260[gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11261tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11262[gw15] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11263tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11264[gw15] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11265tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11266[gw15] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11267[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11268tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11269tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11270tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11271[gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11272[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11273tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11274[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11275tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11276tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11277tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11278[gw10] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11279[gw15] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11280[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11281[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11282tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11283[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11284tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11285[gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11286tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11287tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11288[gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11289tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11290[gw10] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11291[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11292tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11293[gw12] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11294tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11295[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11296[gw15] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11297tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11298tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11299[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11300tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11301tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11302[gw12] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11303[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11304tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11305[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11306tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11307[gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11308tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11309[gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11310tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11311tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11312tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11313[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11314tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11315[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11316tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11317[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11318tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11319[gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11320[gw4] [ 95%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11321[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11322[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11323[gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11324[gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11325tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11326tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11327[gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11328tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11329tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11330[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11331tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 11332tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11333tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11334tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11335tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11336[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11337tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11338[gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11339[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11340[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11341tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11342tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11343[gw5] [ 95%] PASSED tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 11344tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 11345[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11346[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11347[gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11348tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11349tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11350tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11351[gw3] [ 95%] PASSED tests/server/test_stdio.py::test_a_second_stdio_server_on_the_same_process_streams_is_refused 11352tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11353[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11354[gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11355tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11356[gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11357[gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11358tests/server/test_stdio.py::test_a_refused_claim_releases_the_stream_it_already_took 11359[gw5] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 11360tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11361[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11362[gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11363tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11364tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11365[gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11366tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11367[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11368tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11369[gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11370[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11371tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11372tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11373tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11374[gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11375[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11376[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11377tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11378tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 11379tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11380[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11381[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11382tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11383[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11384tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11385[gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11386tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11387[gw5] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 11388tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11389[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11390tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11391[gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11392tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 11393[gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11394[gw7] [ 95%] PASSED tests/server/mcpserver/test_server.py::test_deliberate_resource_error_passes_its_message_through_and_is_logged_at_info 11395[gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11396tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11397tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11398tests/server/mcpserver/test_server.py::test_prompt_raising_unexpected_exception_is_logged_once 11399[gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11400[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] 11401[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11402[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11403tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11404[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11405tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11406[gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11407tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 11408tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11409[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] 11410tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 11411tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11412[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11413tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11414[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11415tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11416tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11417[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] 11418[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11419[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11420tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11421[gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11422[gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11423tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11424[gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11425[gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11426tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11427[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11428tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11429tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11430tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11431tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11432tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11433[gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11434[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11435[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11436tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11437[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11438tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11439[gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11440tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11441[gw3] [ 96%] PASSED tests/server/test_stdio.py::test_a_refused_claim_releases_the_stream_it_already_took 11442tests/server/test_stdio.py::test_the_claim_engages_even_when_stderr_is_closed 11443tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11444[gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11445[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11446tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11447[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11448tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11449[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11450tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 11451[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] 11452[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11453[gw7] [ 96%] PASSED tests/server/mcpserver/test_server.py::test_prompt_raising_unexpected_exception_is_logged_once 11454[gw4] [ 96%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 11455tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11456[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11457tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11458[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11459tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11460[gw13] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11461tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11462tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11463tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11464tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11465[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11466tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11467tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11468[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11469tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11470[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11471tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11472[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11473tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11474[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11475[gw13] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11476[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11477[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11478[gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11479tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11480[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11481tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11482tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11483[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11484tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11485tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11486tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11487tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11488[gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11489tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11490[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11491tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11492[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11493[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11494tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11495tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11496[gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11497tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11498[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11499tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11500tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11501tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11502[gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11503[gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11504[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11505tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11506[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11507tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11508tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11509[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11510[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11511[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11512tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11513[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11514tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11515[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11516tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11517[gw13] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11518[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11519tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11520[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11521tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11522tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11523[gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11524tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11525[gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11526tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11527tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11528tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11529tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11530[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11531[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11532tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11533tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11534[gw13] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11535[gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11536[gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11537[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11538[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11539tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11540tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11541tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11542[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11543tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11544tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11545[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11546tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11547tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11548[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11549[gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11550tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11551[gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11552[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11553[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11554[gw12] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11555tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11556tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11557[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11558[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11559tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11560[gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11561tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11562tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11563[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11564tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11565tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11566tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11567[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11568tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11569tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11570[gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11571[gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11572[gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11573[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11574[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11575[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11576[gw11] [ 97%] PASSED tests/test_examples.py::test_desktop 11577tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11578[gw12] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11579tests/test_examples.py::test_docs_examples[README.md:47-63] 11580tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11581[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11582tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11583[gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11584tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11585tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11586tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11587[gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11588[gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11589tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11590tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11591[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11592tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11593[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11594[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11595[gw11] [ 97%] PASSED tests/test_examples.py::test_docs_examples[README.md:47-63] 11596[gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11597tests/test_examples.py::test_docs_examples[README.md:90-103] 11598tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11599tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11600[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11601tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11602tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11603tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11604[gw12] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11605[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11606[gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11607[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11608[gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11609[gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11610tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11611[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11612tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11613[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11614[gw11] [ 97%] PASSED tests/test_examples.py::test_docs_examples[README.md:90-103] 11615tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11616[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11617tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 11618tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11619tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11620[gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11621tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11622tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11623tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11624tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11625tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11626[gw4] [ 97%] PASSED tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11627tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11628tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11629tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11630tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11631[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11632[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11633[gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11634[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11635[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11636[gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11637tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11638tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11639[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11640[gw12] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11641[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11642[gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11643[gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11644tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11645tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11646tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11647tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11648tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11649[gw11] [ 97%] PASSED tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 11650tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11651tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 11652tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11653[gw8] [ 97%] PASSED tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11654[gw14] [ 97%] PASSED tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11655tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11656[gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11657[gw5] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11658tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11659[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11660tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11661tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11662[gw9] [ 97%] PASSED tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11663tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11664tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11665[gw13] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11666[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11667tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11668[gw12] [ 98%] PASSED tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11669[gw10] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11670[gw1] [ 98%] PASSED tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11671[gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 11672[gw7] [ 98%] PASSED tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11673tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11674tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 11675tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11676[gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11677tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11678[gw10] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11679[gw14] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11680[gw3] [ 98%] PASSED tests/server/test_stdio.py::test_the_claim_engages_even_when_stderr_is_closed 11681[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11682tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11683[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11684tests/server/test_stdio.py::test_stdio_server_serves_in_place_when_the_diversion_cannot_be_opened 11685tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11686tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11687tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11688tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11689tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11690tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11691tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11692[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11693[gw10] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11694[gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 11695tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11696[gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11697tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 11698[gw12] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11699tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11700[gw14] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11701tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11702[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11703tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11704[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11705[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11706[gw15] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11707[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11708[gw10] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11709[gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 11710tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 11711[gw13] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11712[gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 11713tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11714tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11715tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11716tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11717[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11718tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 11719tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11720[gw14] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11721tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11722tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11723[gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11724[gw10] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11725tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11726tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11727tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11728[gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 11729tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11730tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11731[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11732tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 11733tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11734tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11735[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11736[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11737[gw15] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11738[gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11739[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11740tests/types/test_version.py::test_supported_versions_are_known 11741[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11742[gw12] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11743tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11744tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11745[gw10] [ 98%] PASSED tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11746tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11747[gw13] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11748tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11749tests/types/test_version.py::test_known_versions_are_strictly_ordered 11750tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11751[gw1] [ 98%] PASSED tests/types/test_version.py::test_known_versions_are_strictly_ordered 11752[gw15] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11753tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11754[gw5] [ 98%] PASSED tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11755[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11756tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11757[gw9] [ 98%] PASSED tests/types/test_version.py::test_supported_versions_are_known 11758[gw14] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11759tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11760[gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 11761[gw7] [ 98%] PASSED tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11762[gw12] [ 98%] PASSED tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11763tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11764tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 11765[gw8] [ 98%] PASSED tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11766[gw14] [ 98%] PASSED tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11767[gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 11768tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 11769[gw3] [ 98%] PASSED tests/server/test_stdio.py::test_stdio_server_serves_in_place_when_the_diversion_cannot_be_opened 11770[gw6] [ 98%] PASSED tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 11771tests/server/test_stdio.py::test_a_degraded_session_does_not_close_the_sys_stream_it_served 11772tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11773[gw13] [ 98%] PASSED tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11774[gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 11775tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 11776[gw11] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 11777tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 11778[gw6] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11779tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11780[gw6] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11781tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11782[gw4] [ 99%] PASSED tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11783[gw6] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11784tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11785[gw6] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11786tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11787tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11788[gw6] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11789[gw4] [ 99%] SKIPPED tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11790tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11791[gw11] [ 99%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 11792[gw6] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11793tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11794tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 11795[gw6] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11796tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11797tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 11798[gw4] [ 99%] SKIPPED tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11799[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 11800tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11801tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 11802[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 11803[gw11] [ 99%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 11804tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 11805[gw4] [ 99%] SKIPPED tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11806[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 11807tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 11808[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 11809tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 11810[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 11811tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 11812[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 11813tests/shared/test_uri_template.py::test_match_no_match[static-different] 11814[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[static-different] 11815tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 11816[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 11817tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 11818[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 11819tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 11820[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 11821tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 11822[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 11823tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 11824[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 11825tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 11826[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 11827tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 11828[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 11829[gw3] [ 99%] PASSED tests/server/test_stdio.py::test_a_degraded_session_does_not_close_the_sys_stream_it_served 11830tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 11831[gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 11832tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 11833[gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 11834tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 11835[gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 11836tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 11837[gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 11838tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 11839[gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 11840tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 11841[gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 11842tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 11843[gw3] [ 99%] PASSED tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 11844tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 11845[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 11846tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 11847[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 11848tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 11849[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 11850tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 11851[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 11852tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 11853[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 11854tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 11855[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 11856tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 11857[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 11858tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 11859[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 11860tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 11861[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 11862tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 11863[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 11864tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 11865[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 11866tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 11867[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 11868tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 11869[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 11870tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 11871[gw3] [ 99%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 11872[gw2] [ 99%] PASSED tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 11873tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11874[gw2] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11875tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11876[gw2] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11877tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11878[gw2] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11879tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 11880[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 11881tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 11882[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 11883tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 11884[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 11885tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 11886[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 11887tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 11888[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 11889tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 11890[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 11891tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 11892[gw2] [100%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 1189311894============ 5904 passed, 8 skipped, 1 xfailed in 68.39s (0:01:08) =============11895Finished executing pytestCheckPhase11896pytestCheckPhase completed in 1 minutes 22 seconds