nixbot

builds

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

1bld1: building 7ibk2fmg37r1fcckn8mxg858pv8m0xlm-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/7xz9ma2k2sldzysn777zphvp0id0sx3j-python3.14-mcp-2.3.0-dist42checking for references to /build/ in /nix/store/7xz9ma2k2sldzysn777zphvp0id0sx3j-python3.14-mcp-2.3.0-dist...43patching script interpreter paths in /nix/store/7xz9ma2k2sldzysn777zphvp0id0sx3j-python3.14-mcp-2.3.0-dist44shrinking RPATHs of ELF executables and libraries in /nix/store/xbc8cpmhbgszb6gjhbymygg4kq4289ld-python3.14-mcp-2.3.045checking for references to /build/ in /nix/store/xbc8cpmhbgszb6gjhbymygg4kq4289ld-python3.14-mcp-2.3.0...46patching script interpreter paths in /nix/store/xbc8cpmhbgszb6gjhbymygg4kq4289ld-python3.14-mcp-2.3.047stripping (with command strip and flags -S -p) in /nix/store/xbc8cpmhbgszb6gjhbymygg4kq4289ld-python3.14-mcp-2.3.0/lib /nix/store/xbc8cpmhbgszb6gjhbymygg4kq4289ld-python3.14-mcp-2.3.0/bin48Rewriting #!/nix/store/xahxrjs30p3mw0a42bqg9ikgkikskw8m-python3-3.14.8/bin/python3.14 to #!/nix/store/xahxrjs30p3mw0a42bqg9ikgkikskw8m-python3-3.14.849wrapping `/nix/store/xbc8cpmhbgszb6gjhbymygg4kq4289ld-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=4858============================= 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=function6448 workers [5913 items] 65scheduling tests via LoadScheduling6667tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 68tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 69tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 70tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 71tests/client/test_client.py::test_client_is_initialized 72tests/client/test_auth.py::test_union_scopes[no-new] 73tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 74tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 75tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 76tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32601] 77tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 78tests/client/test_client_caching.py::test_a_custom_store_with_a_url_server_constructs_and_is_used 79tests/client/test_client_caching.py::test_a_shared_store_hit_prunes_a_header_map_the_writers_filter_dropped 80tests/client/test_client_extensions.py::test_settings_dict_is_held_by_reference_not_copied 81tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 82tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 83tests/client/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 84tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 85tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_modern_path 86tests/client/test_session_notification_bindings.py::test_binding_delivery_works_without_adopt 87tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 88tests/client/test_stdio.py::test_invalid_utf8_flushed_by_a_dying_server_does_not_break_shutdown 89tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 90tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 91tests/docs_src/test_completions.py::test_returning_none_is_an_empty_list_not_an_error 92tests/client/test_transport_stream_cleanup.py::test_sse_client_closes_all_streams_on_http_error 93tests/docs_src/test_media.py::test_icons_are_visible_where_they_were_declared 94tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 95tests/docs_src/test_apps.py::test_one_tool_two_answers 96tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[entry-string] 97tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 98tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 99tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce 100tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 101[gw13] [ 0%] PASSED tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 102tests/docs_src/test_prompts.py::test_message_list_becomes_a_multi_turn_template 103tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 104[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 105tests/docs_src/test_deploy.py::test_a_shared_key_and_name_let_any_worker_finish_a_round_trip 106[gw20] [ 0%] PASSED tests/client/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 107tests/client/test_session.py::test_raising_sampling_callback_answers_with_code_zero 108[gw8] [ 0%] PASSED tests/client/test_auth.py::test_union_scopes[no-new] 109tests/client/test_auth.py::test_union_scopes[both-empty] 110[gw8] [ 0%] PASSED tests/client/test_auth.py::test_union_scopes[both-empty] 111tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 112[gw5] [ 0%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 113tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 114tests/docs_src/test_header_parameters.py::test_a_legacy_http_connection_ignores_the_annotation 115tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 116[gw16] [ 0%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32601] 117tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32001] 118tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 119tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] 120[gw44] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] 121tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] 122[gw44] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] 123tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] 124tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 125[gw41] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 126tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 127[gw16] [ 0%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32001] 128[gw2] [ 0%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 129tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 130[gw2] [ 0%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 131tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 132tests/docs_src/test_extensions.py::test_contributed_tool_is_listed_and_callable 133tests/docs_src/test_client.py::test_a_raising_tool_is_a_result_not_an_exception 134[gw14] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 135tests/client/test_extension.py::test_notification_binding_is_frozen 136[gw3] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 137tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 138[gw3] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 139tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 140[gw3] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 141tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 142[gw11] [ 0%] PASSED tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 143tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 144tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 145[gw46] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 146tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 147[gw46] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 148tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 149[gw46] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 150tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 151[gw45] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 152tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 153[gw45] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 154tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 155[gw18] [ 0%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_modern_path 156tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_handshake_path 157[gw18] [ 0%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_handshake_path 158tests/client/test_send_request_mcp_name.py::test_name_value_passes_through_encode_header_value 159[gw18] [ 0%] PASSED tests/client/test_send_request_mcp_name.py::test_name_value_passes_through_encode_header_value 160tests/client/test_send_request_mcp_name.py::test_core_tools_call_header_comes_from_the_stamp_alone 161[gw18] [ 0%] PASSED tests/client/test_send_request_mcp_name.py::test_core_tools_call_header_comes_from_the_stamp_alone 162tests/client/test_send_request_mcp_name.py::test_stamp_table_rows_win_over_name_param_by_ordering 163[gw18] [ 0%] PASSED tests/client/test_send_request_mcp_name.py::test_stamp_table_rows_win_over_name_param_by_ordering 164tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_preconnect_path 165[gw3] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 166tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 167[gw3] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 168tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 169[gw9] [ 0%] PASSED tests/client/test_client.py::test_client_is_initialized 170tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 171[gw9] [ 0%] PASSED tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 172tests/client/test_client.py::test_client_with_simple_server 173[gw19] [ 0%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 174tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits 175[gw18] [ 0%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_preconnect_path 176tests/client/test_send_request_mcp_name.py::test_missing_name_value_fails_loud_naming_method_and_key 177tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 178[gw47] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 179tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 180[gw14] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_is_frozen 181tests/client/test_extension.py::test_extension_defaults_advertise_nothing 182[gw14] [ 0%] PASSED tests/client/test_extension.py::test_extension_defaults_advertise_nothing 183[gw7] [ 0%] PASSED tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 184tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 185[gw7] [ 0%] PASSED tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 186tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 187[gw7] [ 0%] PASSED tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 188tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 189[gw7] [ 0%] PASSED tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 190tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 191[gw7] [ 0%] PASSED tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 192tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 193[gw7] [ 0%] PASSED tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 194tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 195[gw7] [ 0%] PASSED tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 196tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 197[gw7] [ 0%] PASSED tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 198tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 199[gw7] [ 0%] PASSED tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 200tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 201[gw7] [ 0%] PASSED tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 202tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 203tests/docs_src/test_oauth_clients.py::test_the_provider_is_an_httpx_auth 204[gw40] [ 0%] PASSED tests/docs_src/test_oauth_clients.py::test_the_provider_is_an_httpx_auth 205tests/docs_src/test_oauth_clients.py::test_the_metadata_defaults_are_the_authorization_code_flow 206[gw40] [ 0%] PASSED tests/docs_src/test_oauth_clients.py::test_the_metadata_defaults_are_the_authorization_code_flow 207tests/docs_src/test_oauth_clients.py::test_redirect_uris_is_required 208[gw40] [ 0%] PASSED tests/docs_src/test_oauth_clients.py::test_redirect_uris_is_required 209tests/docs_src/test_oauth_clients.py::test_the_redirect_handler_receives_the_authorization_url 210[gw40] [ 0%] PASSED tests/docs_src/test_oauth_clients.py::test_the_redirect_handler_receives_the_authorization_url 211tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_has_no_human_in_the_loop 212[gw40] [ 0%] PASSED tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_has_no_human_in_the_loop 213tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_builds_its_own_metadata 214[gw40] [ 0%] PASSED tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_builds_its_own_metadata 215tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[ClientCredentialsOAuthProvider] 216[gw40] [ 0%] PASSED tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[ClientCredentialsOAuthProvider] 217tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[PrivateKeyJWTOAuthProvider] 218[gw40] [ 0%] PASSED tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[PrivateKeyJWTOAuthProvider] 219tests/docs_src/test_oauth_clients.py::test_the_two_remaining_keyword_arguments_have_defaults 220[gw40] [ 0%] PASSED tests/docs_src/test_oauth_clients.py::test_the_two_remaining_keyword_arguments_have_defaults 221tests/docs_src/test_oauth_clients.py::test_the_one_more_provider_is_private_key_jwt 222[gw40] [ 0%] PASSED tests/docs_src/test_oauth_clients.py::test_the_one_more_provider_is_private_key_jwt 223[gw5] [ 0%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 224tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 225[gw5] [ 0%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 226tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 227[gw5] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 228tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 229[gw5] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 230tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 231[gw5] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 232tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 233[gw5] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 234tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 235[gw5] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 236tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 237[gw5] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 238tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 239[gw5] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 240tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 241[gw5] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 242tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 243[gw5] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 244tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 245[gw5] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 246tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 247[gw5] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 248tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 249[gw5] [ 1%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 250tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 251[gw18] [ 1%] PASSED tests/client/test_send_request_mcp_name.py::test_missing_name_value_fails_loud_naming_method_and_key 252tests/client/test_send_request_mcp_name.py::test_non_string_name_value_fails_loud 253[gw18] [ 1%] PASSED tests/client/test_send_request_mcp_name.py::test_non_string_name_value_fails_loud 254tests/client/test_send_request_mcp_name.py::test_absent_params_fails_loud_not_attribute_error 255[gw18] [ 1%] PASSED tests/client/test_send_request_mcp_name.py::test_absent_params_fails_loud_not_attribute_error 256tests/client/test_send_request_mcp_name.py::test_request_without_name_param_sends_no_mcp_name 257[gw18] [ 1%] PASSED tests/client/test_send_request_mcp_name.py::test_request_without_name_param_sends_no_mcp_name 258tests/client/test_session.py::test_client_session_initialize 259[gw18] [ 1%] PASSED tests/client/test_session.py::test_client_session_initialize 260tests/client/test_session.py::test_client_session_custom_client_info 261[gw18] [ 1%] PASSED tests/client/test_session.py::test_client_session_custom_client_info 262tests/client/test_session.py::test_client_session_default_client_info 263[gw18] [ 1%] PASSED tests/client/test_session.py::test_client_session_default_client_info 264tests/client/test_session.py::test_client_session_version_negotiation_success 265[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 266tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 267[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 268tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 269[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 270tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 271[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 272tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 273[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 274tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 275[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 276tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 277[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 278tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 279[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 280tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 281[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 282tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 283[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 284tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 285[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 286tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 287[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 288tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 289[gw46] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 290tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 291[gw21] [ 1%] PASSED tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 292tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 293[gw21] [ 1%] PASSED tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 294tests/client/test_session.py::test_era_neutral_properties_after_discover 295[gw21] [ 1%] PASSED tests/client/test_session.py::test_era_neutral_properties_after_discover 296tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 297[gw21] [ 1%] PASSED tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 298tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 299[gw21] [ 1%] PASSED tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 300tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 301[gw21] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 302tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 303[gw21] [ 1%] PASSED tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 304tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 305[gw21] [ 1%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 306tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 307[gw21] [ 1%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 308tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 309[gw21] [ 1%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 310tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 311[gw21] [ 1%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 312tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 313tests/docs_src/test_lifespan.py::test_lifespan_object_reaches_the_tool 314[gw4] [ 1%] PASSED tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 315tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 316[gw4] [ 1%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 317tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 318[gw4] [ 1%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 319tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 320[gw4] [ 1%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 321tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 322[gw4] [ 1%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 323tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 324[gw4] [ 1%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 325tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 326[gw4] [ 1%] PASSED tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 327tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 328[gw4] [ 1%] PASSED tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 329tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 330[gw4] [ 1%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 331tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 332[gw4] [ 1%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 333tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 334[gw4] [ 1%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 335tests/client/test_auth.py::test_registration_request_sends_application_type 336[gw4] [ 1%] PASSED tests/client/test_auth.py::test_registration_request_sends_application_type 337tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 338[gw4] [ 1%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 339tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 340[gw4] [ 1%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 341tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 342[gw4] [ 1%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 343[gw21] [ 1%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 344tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 345[gw21] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 346tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 347[gw21] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 348tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 349[gw21] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 350tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 351[gw21] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 352tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 353[gw21] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 354tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 355[gw21] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 356tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 357[gw21] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 358tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 359[gw21] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 360tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 361[gw46] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 362tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 363[gw46] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 364tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 365[gw46] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 366tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 367[gw46] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 368tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 369[gw46] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 370tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 371[gw46] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 372tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 373[gw46] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 374tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 375[gw46] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 376tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 377[gw3] [ 2%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 378tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 379[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 380tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 381[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 382tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 383[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 384tests/cli/test_claude.py::test_generates_uv_run_command 385[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_generates_uv_run_command 386tests/cli/test_claude.py::test_file_spec_without_object_suffix 387[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_file_spec_without_object_suffix 388tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 389[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 390tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 391[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 392tests/cli/test_claude.py::test_with_editable_adds_flag 393[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_with_editable_adds_flag 394tests/cli/test_claude.py::test_env_vars_written 395[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_env_vars_written 396tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 397[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 398tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 399[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 400tests/cli/test_claude.py::test_other_servers_preserved 401[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_other_servers_preserved 402tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 403[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 404tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 405tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 406[gw3] [ 2%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 407tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 408[gw3] [ 2%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 409tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 410[gw3] [ 2%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 411tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 412[gw3] [ 2%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 413tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 414[gw3] [ 2%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 415tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 416[gw3] [ 2%] PASSED tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 417tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 418[gw3] [ 2%] PASSED tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 419tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 420[gw3] [ 2%] PASSED tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 421tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 422[gw3] [ 2%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 423tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 424[gw3] [ 2%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 425tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 426tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 427[gw14] [ 2%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 428tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 429[gw14] [ 2%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 430tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 431[gw14] [ 2%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 432tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 433[gw14] [ 2%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 434tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 435[gw14] [ 2%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 436tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 437[gw14] [ 2%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 438tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 439[gw14] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 440tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 441[gw14] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 442tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 443[gw14] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 444tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 445[gw14] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 446tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 447[gw14] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 448tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 449[gw14] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 450tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 451[gw14] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 452tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 453[gw14] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 454tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 455[gw14] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 456[gw38] [ 2%] PASSED tests/docs_src/test_media.py::test_icons_are_visible_where_they_were_declared 457tests/docs_src/test_middleware.py::test_timing_record_predicate 458[gw38] [ 2%] PASSED tests/docs_src/test_middleware.py::test_timing_record_predicate 459tests/docs_src/test_middleware.py::test_middleware_observes_every_inbound_message 460[gw26] [ 2%] PASSED tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 461tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 462[gw26] [ 2%] PASSED tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 463tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 464[gw26] [ 3%] PASSED tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 465tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 466[gw26] [ 3%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 467tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 468[gw26] [ 3%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 469tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 470[gw26] [ 3%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 471tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 472[gw26] [ 3%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 473tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] 474[gw26] [ 3%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] 475tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] 476[gw26] [ 3%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] 477tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 478[gw26] [ 3%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 479tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 480[gw26] [ 3%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 481tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 482[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 483tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 484[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 485tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 486[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 487tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 488[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 489tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 490[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 491tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 492[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 493tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 494[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 495tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 496[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 497tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 498[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 499tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 500[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 501tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 502[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 503tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 504[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 505tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 506[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 507tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 508[gw47] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 509tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 510tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 511[gw4] [ 3%] PASSED tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 512tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 513[gw4] [ 3%] PASSED tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 514tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 515[gw4] [ 3%] PASSED tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 516tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 517[gw4] [ 3%] PASSED tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 518tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 519[gw4] [ 3%] PASSED tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 520tests/client/test_auth.py::test_build_metadata[simple-url] 521[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] 522tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 523[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 524tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 525[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 526tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 527[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 528tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 529[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 530tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 531[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 532tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 533[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 534tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 535[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 536tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 537[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 538tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 539[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 540tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 541[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 542tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 543[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 544tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 545[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 546tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 547[gw44] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 548[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 549tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 550[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 551tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 552[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 553tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 554[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 555tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 556[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 557tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 558[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 559tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 560[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 561tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 562[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 563tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 564[gw21] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 565[gw17] [ 3%] PASSED tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 566tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 567[gw17] [ 3%] PASSED tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 568tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 569[gw17] [ 3%] PASSED tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 570tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 571[gw17] [ 3%] PASSED tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 572tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 573[gw17] [ 3%] PASSED tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 574tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 575[gw17] [ 3%] PASSED tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 576tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 577[gw17] [ 3%] PASSED tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 578tests/client/test_input_required.py::test_default_max_rounds_constant 579[gw17] [ 3%] PASSED tests/client/test_input_required.py::test_default_max_rounds_constant 580tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 581[gw17] [ 4%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 582tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 583[gw17] [ 4%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 584tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 585[gw17] [ 4%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 586tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 587[gw17] [ 4%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 588tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 589[gw17] [ 4%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 590tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 591[gw17] [ 4%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 592tests/client/test_list_roots_callback.py::test_list_roots_callback 593[gw42] [ 4%] PASSED tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 594tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 595[gw13] [ 4%] PASSED tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 596tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 597[gw13] [ 4%] PASSED tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 598tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 599[gw13] [ 4%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 600tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 601[gw13] [ 4%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 602tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 603[gw13] [ 4%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 604tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 605[gw13] [ 4%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 606tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 607[gw13] [ 4%] PASSED tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 608tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize 609[gw13] [ 4%] PASSED tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize 610tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises 611[gw13] [ 4%] PASSED tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises 612tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] 613[gw13] [ 4%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] 614[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 615tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 616[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 617tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 618[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 619tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 620[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 621tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 622[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 623tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 624[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 625tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 626[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 627tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 628[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 629tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 630[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 631tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 632[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 633tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 634[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 635tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 636[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 637tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 638[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 639tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 640[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 641[gw15] [ 4%] PASSED tests/client/test_client_extensions.py::test_settings_dict_is_held_by_reference_not_copied 642tests/client/test_client_extensions.py::test_no_extensions_keeps_tools_call_parsing_byte_identical[none] 643[gw23] [ 4%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 644tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 645[gw23] [ 4%] PASSED tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 646tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 647[gw23] [ 4%] PASSED tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 648tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 649[gw23] [ 4%] PASSED tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 650tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 651[gw23] [ 4%] PASSED tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 652tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 653[gw23] [ 4%] PASSED tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 654tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 655[gw23] [ 4%] PASSED tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 656tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 657[gw23] [ 4%] PASSED tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 658tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 659[gw25] [ 4%] PASSED tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce 660tests/client/test_subscriptions.py::test_graceful_server_close_ends_the_loop_cleanly 661[gw25] [ 4%] PASSED tests/client/test_subscriptions.py::test_graceful_server_close_ends_the_loop_cleanly 662tests/client/test_subscriptions.py::test_abrupt_stream_end_raises_subscription_lost 663[gw25] [ 4%] PASSED tests/client/test_subscriptions.py::test_abrupt_stream_end_raises_subscription_lost 664tests/client/test_subscriptions.py::test_listen_on_a_legacy_connection_raises_the_typed_steer 665[gw25] [ 4%] PASSED tests/client/test_subscriptions.py::test_listen_on_a_legacy_connection_raises_the_typed_steer 666tests/client/test_subscriptions.py::test_server_rejection_raises_from_enter_not_from_iteration 667[gw25] [ 4%] PASSED tests/client/test_subscriptions.py::test_server_rejection_raises_from_enter_not_from_iteration 668tests/client/test_subscriptions.py::test_immediate_result_without_ack_opens_already_closed 669[gw25] [ 4%] PASSED tests/client/test_subscriptions.py::test_immediate_result_without_ack_opens_already_closed 670tests/client/test_subscriptions.py::test_server_sent_cancelled_for_the_listen_id_raises_subscription_lost 671[gw25] [ 4%] PASSED tests/client/test_subscriptions.py::test_server_sent_cancelled_for_the_listen_id_raises_subscription_lost 672tests/client/test_subscriptions.py::test_exiting_the_context_frees_the_server_slot 673[gw25] [ 4%] PASSED tests/client/test_subscriptions.py::test_exiting_the_context_frees_the_server_slot 674tests/client/test_subscriptions.py::test_concurrent_subscriptions_demux_independently 675[gw9] [ 4%] PASSED tests/client/test_client.py::test_client_with_simple_server 676tests/client/test_client.py::test_client_send_ping 677[gw9] [ 4%] PASSED tests/client/test_client.py::test_client_send_ping 678tests/client/test_client.py::test_client_list_tools 679[gw9] [ 4%] PASSED tests/client/test_client.py::test_client_list_tools 680tests/client/test_client.py::test_client_call_tool 681tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 682[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 683tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 684[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 685tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 686[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 687tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 688[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 689tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 690[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 691tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 692[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 693tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 694[gw2] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 695tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 696[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 697tests/cli/test_claude.py::test_raises_when_config_dir_missing 698[gw0] [ 5%] PASSED tests/cli/test_claude.py::test_raises_when_config_dir_missing 699tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 700[gw0] [ 5%] PASSED tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 701tests/cli/test_claude.py::test_get_uv_path[None-uv] 702[gw0] [ 5%] PASSED tests/cli/test_claude.py::test_get_uv_path[None-uv] 703tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 704[gw0] [ 5%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 705tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 706[gw0] [ 5%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 707tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 708[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 709tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 710[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 711tests/cli/test_utils.py::test_parse_file_path_missing 712[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_parse_file_path_missing 713tests/cli/test_utils.py::test_parse_file_exit_on_dir 714[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_parse_file_exit_on_dir 715tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 716[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 717tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 718[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 719tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 720[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 721tests/cli/test_utils.py::test_get_npx_unix_like 722[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_get_npx_unix_like 723tests/cli/test_utils.py::test_get_npx_windows 724[gw33] [ 5%] PASSED tests/docs_src/test_prompts.py::test_message_list_becomes_a_multi_turn_template 725tests/docs_src/test_prompts.py::test_title_and_argument_descriptions 726[gw33] [ 5%] PASSED tests/docs_src/test_prompts.py::test_title_and_argument_descriptions 727tests/docs_src/test_prompts.py::test_default_value_makes_the_argument_optional 728[gw33] [ 5%] PASSED tests/docs_src/test_prompts.py::test_default_value_makes_the_argument_optional 729tests/docs_src/test_protocol_versions.py::test_auto_lands_on_the_modern_version 730[gw33] [ 5%] PASSED tests/docs_src/test_protocol_versions.py::test_auto_lands_on_the_modern_version 731tests/docs_src/test_protocol_versions.py::test_legacy_forces_the_initialize_handshake 732[gw33] [ 5%] PASSED tests/docs_src/test_protocol_versions.py::test_legacy_forces_the_initialize_handshake 733tests/docs_src/test_protocol_versions.py::test_version_pin_sends_nothing_and_knows_nothing 734[gw20] [ 5%] PASSED tests/client/test_session.py::test_raising_sampling_callback_answers_with_code_zero 735tests/client/test_session.py::test_receive_loop_logs_and_drops_malformed_notification 736[gw20] [ 5%] PASSED tests/client/test_session.py::test_receive_loop_logs_and_drops_malformed_notification 737tests/client/test_session.py::test_raising_message_handler_on_transport_exception_costs_the_delivery_not_the_connection 738[gw20] [ 5%] PASSED tests/client/test_session.py::test_raising_message_handler_on_transport_exception_costs_the_delivery_not_the_connection 739tests/client/test_session.py::test_message_handler_awaiting_session_traffic_on_transport_exception_completes 740[gw11] [ 5%] PASSED tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 741tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 742[gw11] [ 5%] PASSED tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 743tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 744[gw11] [ 5%] PASSED tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 745tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 746[gw11] [ 5%] PASSED tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 747tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 748[gw11] [ 5%] PASSED tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 749tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 750[gw11] [ 5%] PASSED tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 751tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 752tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 753[gw14] [ 5%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 754tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 755[gw14] [ 5%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 756tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 757[gw14] [ 5%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 758tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 759tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 760[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 761tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 762[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 763tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 764[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 765tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 766[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 767tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 768[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 769tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 770[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 771tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 772[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 773tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 774[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 775tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 776[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 777tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 778[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 779tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 780[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 781tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 782[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 783tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 784[gw44] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 785[gw39] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 786tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 787[gw39] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 788tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 789[gw39] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 790tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 791[gw39] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 792tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 793[gw39] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 794tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 795[gw39] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 796tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 797[gw39] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 798tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 799[gw39] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 800tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 801[gw39] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 802tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 803[gw39] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 804tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 805[gw39] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 806tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] 807[gw39] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] 808tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] 809[gw39] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] 810[gw20] [ 5%] PASSED tests/client/test_session.py::test_message_handler_awaiting_session_traffic_on_transport_exception_completes 811tests/client/test_session.py::test_receive_loop_consumes_server_cancelled_without_reaching_message_handler 812[gw20] [ 5%] PASSED tests/client/test_session.py::test_receive_loop_consumes_server_cancelled_without_reaching_message_handler 813tests/client/test_session.py::test_request_timeout_zero_overrides_session_timeout 814[gw20] [ 5%] PASSED tests/client/test_session.py::test_request_timeout_zero_overrides_session_timeout 815tests/client/test_session.py::test_progress_notification_reaches_request_callback_and_message_handler 816[gw20] [ 6%] PASSED tests/client/test_session.py::test_progress_notification_reaches_request_callback_and_message_handler 817tests/client/test_session.py::test_dispatcher_keyword_runs_over_direct_dispatch 818[gw29] [ 6%] PASSED tests/docs_src/test_client.py::test_a_raising_tool_is_a_result_not_an_exception 819tests/docs_src/test_client.py::test_an_unknown_tool_name_is_a_result_not_an_exception 820[gw29] [ 6%] PASSED tests/docs_src/test_client.py::test_an_unknown_tool_name_is_a_result_not_an_exception 821tests/docs_src/test_client.py::test_resources_and_templates_are_two_separate_lists 822[gw29] [ 6%] PASSED tests/docs_src/test_client.py::test_resources_and_templates_are_two_separate_lists 823tests/docs_src/test_client.py::test_read_resource_fills_in_a_template 824[gw29] [ 6%] PASSED tests/docs_src/test_client.py::test_read_resource_fills_in_a_template 825tests/docs_src/test_client.py::test_resource_subscriptions_are_listen_based_on_the_modern_wire 826[gw29] [ 6%] PASSED tests/docs_src/test_client.py::test_resource_subscriptions_are_listen_based_on_the_modern_wire 827tests/docs_src/test_client.py::test_list_prompts_describes_the_arguments 828[gw29] [ 6%] PASSED tests/docs_src/test_client.py::test_list_prompts_describes_the_arguments 829tests/docs_src/test_client.py::test_get_prompt_renders_the_messages 830[gw29] [ 6%] PASSED tests/docs_src/test_client.py::test_get_prompt_renders_the_messages 831tests/docs_src/test_client.py::test_complete_suggests_values_for_an_argument 832[gw29] [ 6%] PASSED tests/docs_src/test_client.py::test_complete_suggests_values_for_an_argument 833tests/docs_src/test_client.py::test_the_pagination_loop_collects_every_tool_from_a_single_page_server 834[gw29] [ 6%] PASSED tests/docs_src/test_client.py::test_the_pagination_loop_collects_every_tool_from_a_single_page_server 835tests/docs_src/test_client.py::test_raise_exceptions_is_a_constructor_flag 836tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] 837[gw39] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] 838tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] 839[gw39] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] 840tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] 841[gw39] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] 842tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] 843[gw39] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] 844tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] 845[gw39] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] 846tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] 847[gw39] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] 848tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 849[gw39] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 850tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial001.py] 851[gw39] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial001.py] 852tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial002.py] 853[gw39] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial002.py] 854tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial003.py] 855[gw39] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial003.py] 856tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 857[gw39] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 858tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 859[gw39] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 860tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 861[gw22] [ 6%] PASSED tests/client/test_session_notification_bindings.py::test_binding_delivery_works_without_adopt 862tests/client/test_session_promotions.py::test_dispatch_input_request_routes_through_the_callback_table 863[gw22] [ 6%] PASSED tests/client/test_session_promotions.py::test_dispatch_input_request_routes_through_the_callback_table 864tests/client/test_session_promotions.py::test_dispatch_input_request_returns_error_data_on_refusal 865[gw22] [ 6%] PASSED tests/client/test_session_promotions.py::test_dispatch_input_request_returns_error_data_on_refusal 866tests/client/test_session_promotions.py::test_validate_tool_result_passes_a_conforming_result 867[gw26] [ 6%] PASSED tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 868tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 869[gw26] [ 6%] PASSED tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 870tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 871[gw26] [ 6%] PASSED tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 872tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 873[gw3] [ 6%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 874tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 875[gw3] [ 6%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 876tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 877[gw3] [ 6%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 878tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 879[gw3] [ 6%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 880tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 881[gw3] [ 6%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 882tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 883[gw3] [ 6%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 884tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 885[gw3] [ 6%] PASSED tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 886tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 887[gw3] [ 6%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 888tests/client/test_auth.py::test_validate_resource_custom_callback 889[gw3] [ 6%] PASSED tests/client/test_auth.py::test_validate_resource_custom_callback 890tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 891[gw3] [ 6%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 892tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 893[gw3] [ 6%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 894tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 895[gw3] [ 6%] PASSED tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 896tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 897[gw3] [ 6%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 898tests/docs_src/test_oauth_clients.py::test_every_oauth_error_is_an_oauth_flow_error 899[gw40] [ 6%] PASSED tests/docs_src/test_oauth_clients.py::test_every_oauth_error_is_an_oauth_flow_error 900tests/docs_src/test_oauth_clients.py::test_not_everything_is_a_flow_error 901[gw40] [ 6%] PASSED tests/docs_src/test_oauth_clients.py::test_not_everything_is_a_flow_error 902tests/docs_src/test_opentelemetry.py::test_a_plain_server_is_traced_with_no_extra_code 903[gw7] [ 6%] PASSED tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 904tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 905[gw7] [ 6%] PASSED tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 906tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 907[gw7] [ 6%] PASSED tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 908tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 909[gw7] [ 6%] PASSED tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 910tests/client/test_caching.py::test_a_zero_cap_disables_eviction 911[gw7] [ 6%] PASSED tests/client/test_caching.py::test_a_zero_cap_disables_eviction 912tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 913[gw7] [ 6%] PASSED tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 914tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 915[gw7] [ 6%] PASSED tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 916tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 917[gw7] [ 6%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 918tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 919[gw7] [ 6%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 920tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 921[gw7] [ 6%] PASSED tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 922tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 923[gw7] [ 6%] PASSED tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 924tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 925[gw7] [ 6%] PASSED tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 926tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 927[gw7] [ 6%] PASSED tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 928tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 929[gw7] [ 6%] PASSED tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 930tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 931[gw7] [ 6%] PASSED tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 932tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 933[gw7] [ 6%] PASSED tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 934tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 935[gw7] [ 7%] PASSED tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 936tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 937[gw7] [ 7%] PASSED tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 938tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 939[gw7] [ 7%] PASSED tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 940[gw46] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 941tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 942[gw46] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 943tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 944[gw46] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 945tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 946[gw46] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 947tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 948[gw46] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 949[gw32] [ 7%] PASSED tests/docs_src/test_completions.py::test_returning_none_is_an_empty_list_not_an_error 950tests/docs_src/test_completions.py::test_context_arguments_resolve_a_dependent_parameter 951[gw32] [ 7%] PASSED tests/docs_src/test_completions.py::test_context_arguments_resolve_a_dependent_parameter 952tests/docs_src/test_completions.py::test_the_typed_prefix_still_filters_a_dependent_parameter 953[gw32] [ 7%] PASSED tests/docs_src/test_completions.py::test_the_typed_prefix_still_filters_a_dependent_parameter 954tests/docs_src/test_completions.py::test_context_arguments_is_optional 955[gw32] [ 7%] PASSED tests/docs_src/test_completions.py::test_context_arguments_is_optional 956tests/docs_src/test_completions.py::test_no_context_means_no_suggestions 957[gw32] [ 7%] PASSED tests/docs_src/test_completions.py::test_no_context_means_no_suggestions 958tests/docs_src/test_completions.py::test_the_prompt_branch_is_untouched_by_the_new_one 959[gw32] [ 7%] PASSED tests/docs_src/test_completions.py::test_the_prompt_branch_is_untouched_by_the_new_one 960tests/docs_src/test_context.py::test_the_context_parameter_is_not_in_the_input_schema 961[gw32] [ 7%] PASSED tests/docs_src/test_context.py::test_the_context_parameter_is_not_in_the_input_schema 962tests/docs_src/test_context.py::test_every_request_gets_its_own_context 963[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 964tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 965[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 966tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 967[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 968tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 969[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 970tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 971[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 972tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 973[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 974tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 975[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 976tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 977[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 978tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 979[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 980tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 981[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 982tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 983[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 984tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 985[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 986tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 987[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 988tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 989[gw45] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 990tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 991[gw43] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 992tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 993[gw42] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 994tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 995[gw42] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 996tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 997[gw42] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 998tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 999[gw42] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 1000tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 1001[gw42] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 1002tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 1003[gw42] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 1004tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 1005[gw17] [ 7%] PASSED tests/client/test_list_roots_callback.py::test_list_roots_callback 1006tests/client/test_logging_callback.py::test_logging_callback 1007[gw18] [ 7%] PASSED tests/client/test_session.py::test_client_session_version_negotiation_success 1008[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 1009tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1010[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1011tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1012[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1013tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1014[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1015tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1016[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1017tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1018[gw41] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1019tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1020[gw31] [ 7%] PASSED tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 1021tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 1022[gw31] [ 7%] PASSED tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 1023tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 1024[gw31] [ 7%] PASSED tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 1025tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 1026[gw31] [ 7%] PASSED tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 1027tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 1028[gw31] [ 7%] PASSED tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 1029tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 1030[gw31] [ 7%] PASSED tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 1031tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 1032[gw31] [ 7%] PASSED tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 1033tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 1034[gw31] [ 7%] PASSED tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 1035tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 1036[gw31] [ 7%] PASSED tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 1037tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 1038[gw31] [ 7%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 1039tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 1040[gw31] [ 7%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 1041tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 1042[gw31] [ 7%] PASSED tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 1043tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] 1044[gw31] [ 7%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] 1045tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[legacy] 1046[gw45] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 1047tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 1048[gw45] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 1049tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 1050[gw45] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 1051tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 1052[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 1053tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 1054[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 1055tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 1056[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 1057tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 1058[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 1059tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 1060[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 1061tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 1062[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 1063tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 1064[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 1065tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 1066[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 1067tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 1068[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 1069tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 1070[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 1071tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 1072[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 1073tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 1074[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 1075tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 1076[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 1077tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 1078[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 1079tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 1080[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 1081tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 1082[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 1083tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 1084[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 1085tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 1086[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 1087tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 1088[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 1089tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 1090[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 1091tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 1092[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 1093[gw41] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1094tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1095[gw41] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1096tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1097[gw41] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1098tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1099[gw41] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1100[gw10] [ 8%] PASSED tests/client/test_client_caching.py::test_a_shared_store_hit_prunes_a_header_map_the_writers_filter_dropped 1101[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 1102tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1103[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1104tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1105[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1106tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1107[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1108tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1109[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1110tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1111[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1112tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1113[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1114tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1115[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1116tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1117[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1118tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1119[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1120tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1121[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1122tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1123[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1124tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1125[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1126tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1127tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 1128[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 1129tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 1130[gw45] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 1131[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1132tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1133[gw1] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1134tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1135[gw1] [ 8%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1136tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1137[gw1] [ 8%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1138tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1139[gw1] [ 8%] PASSED tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1140tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1141[gw1] [ 8%] PASSED tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1142tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1143[gw1] [ 8%] PASSED tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1144tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1145[gw1] [ 8%] PASSED tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1146tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1147[gw39] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 1148tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 1149[gw39] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 1150tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 1151[gw39] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 1152tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 1153[gw39] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 1154[gw25] [ 8%] PASSED tests/client/test_subscriptions.py::test_concurrent_subscriptions_demux_independently 1155tests/client/test_subscriptions.py::test_change_notifications_still_reach_message_handler 1156[gw25] [ 8%] PASSED tests/client/test_subscriptions.py::test_change_notifications_still_reach_message_handler 1157tests/client/test_subscriptions.py::test_enter_times_out_when_the_ack_never_arrives 1158[gw25] [ 8%] PASSED tests/client/test_subscriptions.py::test_enter_times_out_when_the_ack_never_arrives 1159tests/client/test_subscriptions.py::test_an_open_stream_outlives_the_session_read_timeout 1160[gw12] [ 8%] PASSED tests/client/test_client_caching.py::test_a_custom_store_with_a_url_server_constructs_and_is_used 1161tests/client/test_client_caching.py::test_a_custom_store_with_an_explicit_target_id_constructs_for_any_server 1162[gw12] [ 8%] PASSED tests/client/test_client_caching.py::test_a_custom_store_with_an_explicit_target_id_constructs_for_any_server 1163tests/client/test_client_caching.py::test_cache_none_disables_the_cache_and_the_handler_wrap 1164[gw12] [ 8%] PASSED tests/client/test_client_caching.py::test_cache_none_disables_the_cache_and_the_handler_wrap 1165tests/client/test_client_caching.py::test_the_default_cache_uses_a_per_client_in_memory_store 1166[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_the_default_cache_uses_a_per_client_in_memory_store 1167tests/client/test_client_caching.py::test_the_negotiated_version_supplier_tracks_the_session_lifecycle 1168[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_the_negotiated_version_supplier_tracks_the_session_lifecycle 1169tests/client/test_client_caching.py::test_a_list_changed_notification_evicts_without_a_user_handler 1170[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_a_list_changed_notification_evicts_without_a_user_handler 1171tests/client/test_client_caching.py::test_a_user_handler_receives_the_notification_the_eviction_consumed 1172[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_a_user_handler_receives_the_notification_the_eviction_consumed 1173tests/client/test_client_caching.py::test_non_notification_items_pass_through_to_the_user_handler_untouched 1174[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_non_notification_items_pass_through_to_the_user_handler_untouched 1175tests/client/test_client_caching.py::test_a_raising_eviction_does_not_block_notification_delivery 1176[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_a_raising_eviction_does_not_block_notification_delivery 1177tests/client/test_client_caching.py::test_a_second_list_tools_within_the_ttl_is_served_from_the_cache 1178[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_a_second_list_tools_within_the_ttl_is_served_from_the_cache 1179tests/client/test_client_caching.py::test_an_expired_entry_is_refetched 1180[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_an_expired_entry_is_refetched 1181tests/client/test_client_caching.py::test_each_list_verb_caches_independently_under_its_own_method 1182[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_each_list_verb_caches_independently_under_its_own_method 1183tests/client/test_client_caching.py::test_read_resource_caches_per_uri 1184[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_read_resource_caches_per_uri 1185tests/client/test_client_caching.py::test_cursor_continuations_neither_read_nor_write_the_cache 1186[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_cursor_continuations_neither_read_nor_write_the_cache 1187tests/client/test_client_caching.py::test_an_expired_cursor_rejection_evicts_the_methods_entry 1188[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_an_expired_cursor_rejection_evicts_the_methods_entry 1189tests/client/test_client_caching.py::test_an_expired_cursor_rejection_under_bypass_does_not_evict 1190[gw12] [ 9%] PASSED tests/client/test_client_caching.py::test_an_expired_cursor_rejection_under_bypass_does_not_evict 1191tests/client/test_client_caching.py::test_a_non_cursor_error_on_a_continuation_does_not_evict 1192[gw14] [ 9%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 1193tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 1194[gw14] [ 9%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 1195tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 1196[gw14] [ 9%] PASSED tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 1197tests/client/test_extension.py::test_advertise_serves_captured_settings 1198[gw14] [ 9%] PASSED tests/client/test_extension.py::test_advertise_serves_captured_settings 1199tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 1200[gw14] [ 9%] PASSED tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 1201tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 1202[gw14] [ 9%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 1203tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 1204[gw14] [ 9%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 1205tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 1206[gw14] [ 9%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 1207[gw26] [ 9%] PASSED tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 1208tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 1209[gw26] [ 9%] PASSED tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 1210tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 1211tests/client/test_client_caching.py::test_a_tools_list_changed_notification_makes_the_next_list_refetch 1212[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_a_tools_list_changed_notification_makes_the_next_list_refetch 1213tests/client/test_client_caching.py::test_a_resource_updated_notification_evicts_that_uris_read_entry 1214[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_a_resource_updated_notification_evicts_that_uris_read_entry 1215tests/client/test_client_caching.py::test_the_modern_in_process_path_drops_the_eviction_notification 1216[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_the_modern_in_process_path_drops_the_eviction_notification 1217tests/client/test_client_caching.py::test_a_discover_result_never_enters_the_response_cache 1218[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_a_discover_result_never_enters_the_response_cache 1219tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5] 1220[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5] 1221tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5.0] 1222[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5.0] 1223tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5] 1224[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5] 1225tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5.0] 1226[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5.0] 1227tests/client/test_client_caching.py::test_each_notification_evicts_exactly_its_entries_end_to_end 1228[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_each_notification_evicts_exactly_its_entries_end_to_end 1229tests/client/test_client_caching.py::test_private_entries_never_cross_partitions_between_clients_sharing_a_store 1230tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 1231[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 1232tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 1233[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 1234tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 1235[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 1236tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 1237[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 1238tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 1239[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 1240tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 1241[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 1242tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1243[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1244tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1245[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1246tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1247[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1248tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1249[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1250tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1251[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1252tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1253[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1254tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1255[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1256tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1257[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1258[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_private_entries_never_cross_partitions_between_clients_sharing_a_store 1259tests/client/test_client_caching.py::test_a_server_stamped_public_entry_does_not_cross_partitions_by_default 1260[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_a_server_stamped_public_entry_does_not_cross_partitions_by_default 1261tests/client/test_client_caching.py::test_share_public_serves_a_server_stamped_public_entry_across_partitions 1262[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_share_public_serves_a_server_stamped_public_entry_across_partitions 1263tests/client/test_client_caching.py::test_same_partition_clients_share_read_entries_through_the_store 1264[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_same_partition_clients_share_read_entries_through_the_store 1265tests/client/test_client_caching.py::test_mutating_returned_results_never_corrupts_the_cached_entry 1266[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_mutating_returned_results_never_corrupts_the_cached_entry 1267tests/client/test_client_caching.py::test_a_cache_hit_still_yields_to_the_event_loop 1268[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_a_cache_hit_still_yields_to_the_event_loop 1269tests/client/test_client_caching.py::test_a_legacy_peer_injecting_cache_hints_caches_nothing 1270[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_a_legacy_peer_injecting_cache_hints_caches_nothing 1271tests/client/test_client_caching.py::test_a_verb_cancelled_mid_write_leaves_no_stale_arm_pair 1272[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_a_verb_cancelled_mid_write_leaves_no_stale_arm_pair 1273tests/client/test_client_caching.py::test_an_eviction_landing_mid_fetch_discards_that_fetchs_write 1274[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_an_eviction_landing_mid_fetch_discards_that_fetchs_write 1275tests/client/test_client_caching.py::test_read_resource_bypass_neither_serves_nor_disturbs_a_warm_entry 1276[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_read_resource_bypass_neither_serves_nor_disturbs_a_warm_entry 1277tests/client/test_client_caching.py::test_read_resource_refresh_refetches_and_restores 1278[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_read_resource_refresh_refetches_and_restores 1279tests/client/test_client_caching.py::test_a_closed_client_raises_on_every_cacheable_verb_instead_of_serving_the_cache 1280[gw10] [ 9%] PASSED tests/client/test_client_caching.py::test_a_closed_client_raises_on_every_cacheable_verb_instead_of_serving_the_cache 1281tests/client/test_client_extensions.py::test_mapping_extensions_get_the_migration_error 1282tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 1283[gw43] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 1284tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial002.py] 1285[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial002.py] 1286tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 1287[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 1288tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 1289[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 1290tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] 1291[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] 1292tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] 1293[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] 1294tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] 1295[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] 1296tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial001.py] 1297[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial001.py] 1298tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 1299[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 1300tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] 1301[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] 1302tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] 1303[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] 1304tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] 1305[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] 1306tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] 1307[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] 1308tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] 1309[gw43] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] 1310tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] 1311[gw13] [ 10%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] 1312tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] 1313[gw13] [ 10%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] 1314tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop 1315[gw13] [ 10%] PASSED tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop 1316tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts 1317[gw13] [ 10%] PASSED tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts 1318tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] 1319[gw13] [ 10%] PASSED tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] 1320tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[no-data] 1321[gw13] [ 10%] PASSED tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[no-data] 1322tests/client/test_probe.py::test_handshake_unsupported_reprobes_at_most_once 1323[gw13] [ 10%] PASSED tests/client/test_probe.py::test_handshake_unsupported_reprobes_at_most_once 1324tests/client/test_probe.py::test_any_other_handshake_error_propagates_unchanged 1325[gw13] [ 10%] PASSED tests/client/test_probe.py::test_any_other_handshake_error_propagates_unchanged 1326tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[httpx2-connect-error] 1327[gw13] [ 10%] PASSED tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[httpx2-connect-error] 1328tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[anyio-closed-resource] 1329[gw13] [ 10%] PASSED tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[anyio-closed-resource] 1330tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data0-expected0] 1331[gw13] [ 10%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data0-expected0] 1332tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data1-expected1] 1333[gw13] [ 10%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data1-expected1] 1334tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[None-None] 1335[gw13] [ 10%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[None-None] 1336tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data3-None] 1337[gw13] [ 10%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data3-None] 1338tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[not a dict-None] 1339[gw13] [ 10%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[not a dict-None] 1340tests/client/test_sampling_callback.py::test_sampling_callback 1341[gw0] [ 10%] PASSED tests/cli/test_utils.py::test_get_npx_windows 1342[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 1343tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 1344[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 1345tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 1346[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 1347tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 1348[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 1349tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 1350[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 1351tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 1352[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 1353tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 1354[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 1355tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 1356[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 1357tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 1358[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 1359tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 1360[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 1361tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 1362[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 1363tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 1364[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 1365tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 1366[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 1367tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 1368[gw47] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 1369[gw5] [ 10%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 1370tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 1371[gw5] [ 10%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 1372tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 1373[gw5] [ 10%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 1374tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 1375[gw5] [ 10%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 1376tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 1377[gw5] [ 10%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 1378tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 1379[gw5] [ 10%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 1380tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 1381[gw5] [ 10%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 1382tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 1383[gw5] [ 10%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 1384tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 1385[gw5] [ 10%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 1386tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 1387[gw5] [ 10%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 1388tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 1389[gw5] [ 10%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 1390tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 1391[gw5] [ 10%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 1392tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 1393[gw5] [ 10%] PASSED tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 1394tests/client/test_auth.py::test_union_scopes[dedup] 1395[gw5] [ 10%] PASSED tests/client/test_auth.py::test_union_scopes[dedup] 1396[gw30] [ 10%] PASSED tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[entry-string] 1397tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[keep-string] 1398[gw11] [ 10%] PASSED tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1399[gw24] [ 11%] PASSED tests/client/test_stdio.py::test_invalid_utf8_flushed_by_a_dying_server_does_not_break_shutdown 1400tests/client/test_stdio.py::test_a_kill_racing_a_pending_stdout_read_is_swallowed_during_shutdown 1401[gw8] [ 11%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 1402tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 1403[gw8] [ 11%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 1404tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 1405[gw8] [ 11%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 1406tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 1407[gw8] [ 11%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 1408tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 1409[gw8] [ 11%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 1410tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 1411[gw8] [ 11%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 1412tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 1413[gw8] [ 11%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 1414tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 1415[gw8] [ 11%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 1416tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 1417[gw8] [ 11%] PASSED tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 1418tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 1419[gw8] [ 11%] PASSED tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 1420tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 1421[gw8] [ 11%] PASSED tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 1422tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 1423[gw8] [ 11%] PASSED tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 1424tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 1425[gw8] [ 11%] PASSED tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 1426tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 1427[gw8] [ 11%] PASSED tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 1428tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 1429[gw8] [ 11%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 1430tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 1431[gw24] [ 11%] PASSED tests/client/test_stdio.py::test_a_kill_racing_a_pending_stdout_read_is_swallowed_during_shutdown 1432tests/client/test_stdio.py::test_a_mid_session_stdout_failure_is_logged_and_surfaces_as_clean_closure 1433[gw38] [ 11%] PASSED tests/docs_src/test_middleware.py::test_middleware_observes_every_inbound_message 1434[gw10] [ 11%] PASSED tests/client/test_client_extensions.py::test_mapping_extensions_get_the_migration_error 1435tests/client/test_client_extensions.py::test_one_extension_claiming_a_tag_twice_reads_as_one_owner 1436[gw10] [ 11%] PASSED tests/client/test_client_extensions.py::test_one_extension_claiming_a_tag_twice_reads_as_one_owner 1437tests/client/test_client_extensions.py::test_bare_extension_instance_is_rejected_with_the_fix_named 1438[gw10] [ 11%] PASSED tests/client/test_client_extensions.py::test_bare_extension_instance_is_rejected_with_the_fix_named 1439tests/client/test_client_extensions.py::test_invalid_per_instance_identifier_raises_the_validators_error 1440[gw10] [ 11%] PASSED tests/client/test_client_extensions.py::test_invalid_per_instance_identifier_raises_the_validators_error 1441tests/client/test_client_extensions.py::test_duplicate_extension_identifiers_are_rejected_naming_the_identifier 1442[gw10] [ 11%] PASSED tests/client/test_client_extensions.py::test_duplicate_extension_identifiers_are_rejected_naming_the_identifier 1443tests/client/test_client_extensions.py::test_conflicting_claims_across_extensions_name_both_owners 1444[gw10] [ 11%] PASSED tests/client/test_client_extensions.py::test_conflicting_claims_across_extensions_name_both_owners 1445tests/client/test_client_extensions.py::test_conflicting_notification_bindings_name_both_owners 1446tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1447[gw11] [ 11%] PASSED tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1448tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1449[gw11] [ 11%] PASSED tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1450tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1451tests/client/test_session.py::test_client_session_version_negotiation_failure 1452[gw18] [ 11%] PASSED tests/client/test_session.py::test_client_session_version_negotiation_failure 1453tests/client/test_session.py::test_client_capabilities_default 1454[gw18] [ 11%] PASSED tests/client/test_session.py::test_client_capabilities_default 1455tests/client/test_session.py::test_client_capabilities_with_custom_callbacks 1456[gw18] [ 11%] PASSED tests/client/test_session.py::test_client_capabilities_with_custom_callbacks 1457tests/client/test_session.py::test_client_capabilities_with_sampling_tools 1458[gw18] [ 11%] PASSED tests/client/test_session.py::test_client_capabilities_with_sampling_tools 1459tests/client/test_session.py::test_initialize_result 1460[gw18] [ 11%] PASSED tests/client/test_session.py::test_initialize_result 1461tests/client/test_session.py::test_client_tool_call_with_meta[None] 1462[gw18] [ 11%] PASSED tests/client/test_session.py::test_client_tool_call_with_meta[None] 1463tests/client/test_session.py::test_client_tool_call_with_meta[meta1] 1464[gw18] [ 11%] PASSED tests/client/test_session.py::test_client_tool_call_with_meta[meta1] 1465tests/client/test_session.py::test_receive_loop_answers_malformed_inbound_request_with_invalid_params 1466[gw18] [ 11%] PASSED tests/client/test_session.py::test_receive_loop_answers_malformed_inbound_request_with_invalid_params 1467tests/client/test_session.py::test_receive_loop_answers_unknown_request_method_with_method_not_found 1468[gw18] [ 11%] PASSED tests/client/test_session.py::test_receive_loop_answers_unknown_request_method_with_method_not_found 1469tests/client/test_session.py::test_receive_loop_drops_unknown_notification_method_without_response 1470[gw18] [ 11%] PASSED tests/client/test_session.py::test_receive_loop_drops_unknown_notification_method_without_response 1471tests/client/test_session.py::test_on_request_rejects_a_server_request_absent_at_the_negotiated_version 1472[gw18] [ 11%] PASSED tests/client/test_session.py::test_on_request_rejects_a_server_request_absent_at_the_negotiated_version 1473tests/client/test_session.py::test_on_request_validates_the_callback_result_against_the_surface_schema 1474[gw18] [ 11%] PASSED tests/client/test_session.py::test_on_request_validates_the_callback_result_against_the_surface_schema 1475tests/client/test_session.py::test_on_request_callback_returning_a_surface_invalid_result_is_internal_error 1476[gw18] [ 11%] PASSED tests/client/test_session.py::test_on_request_callback_returning_a_surface_invalid_result_is_internal_error 1477tests/client/test_session.py::test_on_notify_drops_a_server_notification_absent_at_the_negotiated_version 1478[gw18] [ 11%] PASSED tests/client/test_session.py::test_on_notify_drops_a_server_notification_absent_at_the_negotiated_version 1479tests/client/test_session.py::test_on_request_elicitation_with_loose_property_schema_reaches_the_callback 1480[gw18] [ 11%] PASSED tests/client/test_session.py::test_on_request_elicitation_with_loose_property_schema_reaches_the_callback 1481[gw1] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1482tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1483[gw1] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1484tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1485[gw1] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1486tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1487[gw1] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1488tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1489[gw1] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1490tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1491[gw1] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1492tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1493[gw1] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1494tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1495[gw1] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1496tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1497[gw41] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1498tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1499[gw41] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1500tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1501[gw41] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1502tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1503[gw41] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1504tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1505[gw41] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1506[gw10] [ 11%] PASSED tests/client/test_client_extensions.py::test_conflicting_notification_bindings_name_both_owners 1507[gw6] [ 11%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 1508tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 1509[gw6] [ 11%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 1510tests/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] 1511[gw6] [ 11%] 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] 1512tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 1513[gw6] [ 11%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 1514tests/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] 1515[gw6] [ 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] 1516tests/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] 1517[gw6] [ 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] 1518tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 1519[gw6] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 1520tests/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] 1521[gw6] [ 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] 1522tests/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] 1523[gw6] [ 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] 1524tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 1525[gw6] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 1526tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 1527[gw6] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 1528tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] 1529[gw6] [ 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] 1530tests/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] 1531[gw6] [ 12%] 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] 1532[gw2] [ 12%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 1533[gw8] [ 12%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 1534tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1535[gw8] [ 12%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1536tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1537[gw8] [ 12%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1538tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1539[gw8] [ 12%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1540tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1541[gw8] [ 12%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1542tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1543[gw8] [ 12%] PASSED tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1544tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1545[gw8] [ 12%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1546tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1547[gw8] [ 12%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1548tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1549[gw8] [ 12%] PASSED tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1550tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1551[gw8] [ 12%] PASSED tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1552tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1553[gw8] [ 12%] PASSED tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1554tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1555[gw8] [ 12%] PASSED tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1556tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 1557[gw6] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 1558tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 1559[gw6] [ 12%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 1560tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 1561[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 1562tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 1563[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 1564tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 1565[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 1566tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 1567[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 1568tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 1569[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 1570tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 1571[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 1572tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 1573[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 1574tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 1575[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 1576tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 1577[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 1578tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 1579[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 1580tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 1581[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 1582tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 1583[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 1584tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 1585[gw12] [ 12%] PASSED tests/client/test_client_caching.py::test_a_non_cursor_error_on_a_continuation_does_not_evict 1586tests/client/test_client_caching.py::test_bypass_neither_serves_nor_disturbs_a_warm_entry 1587[gw12] [ 12%] PASSED tests/client/test_client_caching.py::test_bypass_neither_serves_nor_disturbs_a_warm_entry 1588tests/client/test_client_caching.py::test_refresh_skips_the_read_and_stores_the_refetched_result 1589[gw12] [ 12%] PASSED tests/client/test_client_caching.py::test_refresh_skips_the_read_and_stores_the_refetched_result 1590tests/client/test_client_caching.py::test_refresh_storing_a_ttl_zero_result_purges_the_warm_entry 1591[gw12] [ 12%] PASSED tests/client/test_client_caching.py::test_refresh_storing_a_ttl_zero_result_purges_the_warm_entry 1592tests/client/test_client_caching.py::test_a_list_call_carrying_meta_is_fetched_and_replaces_the_warm_entry 1593[gw12] [ 12%] PASSED tests/client/test_client_caching.py::test_a_list_call_carrying_meta_is_fetched_and_replaces_the_warm_entry 1594tests/client/test_client_caching.py::test_a_read_resource_carrying_meta_is_fetched_and_replaces_the_warm_entry 1595[gw12] [ 12%] PASSED tests/client/test_client_caching.py::test_a_read_resource_carrying_meta_is_fetched_and_replaces_the_warm_entry 1596tests/client/test_client_caching.py::test_cache_mode_is_inert_when_caching_is_disabled 1597[gw12] [ 12%] PASSED tests/client/test_client_caching.py::test_cache_mode_is_inert_when_caching_is_disabled 1598tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[request_state] 1599[gw12] [ 12%] PASSED tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[request_state] 1600tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[input_responses] 1601[gw12] [ 12%] PASSED tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[input_responses] 1602tests/client/test_client_caching.py::test_a_terminal_read_reached_through_driver_rounds_is_never_cached 1603[gw12] [ 12%] PASSED tests/client/test_client_caching.py::test_a_terminal_read_reached_through_driver_rounds_is_never_cached 1604tests/client/test_client_caching.py::test_a_refresh_that_resolves_to_input_required_purges_the_warm_entry 1605[gw12] [ 12%] PASSED tests/client/test_client_caching.py::test_a_refresh_that_resolves_to_input_required_purges_the_warm_entry 1606tests/client/test_client_caching.py::test_a_listing_served_from_a_shared_store_rebuilds_output_schemas 1607[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 1608tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 1609[gw6] [ 12%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 1610tests/docs_src/test_middleware.py::test_the_result_passes_through_unchanged 1611[gw38] [ 12%] PASSED tests/docs_src/test_middleware.py::test_the_result_passes_through_unchanged 1612tests/docs_src/test_middleware.py::test_a_notification_has_no_request_id 1613[gw38] [ 12%] PASSED tests/docs_src/test_middleware.py::test_a_notification_has_no_request_id 1614tests/docs_src/test_middleware.py::test_raising_before_call_next_refuses_the_message 1615[gw38] [ 12%] PASSED tests/docs_src/test_middleware.py::test_raising_before_call_next_refuses_the_message 1616tests/docs_src/test_middleware.py::test_an_unhandled_method_raises_through_the_middleware 1617[gw38] [ 12%] PASSED tests/docs_src/test_middleware.py::test_an_unhandled_method_raises_through_the_middleware 1618tests/docs_src/test_middleware.py::test_initialize_cannot_be_replaced_only_wrapped 1619[gw38] [ 12%] PASSED tests/docs_src/test_middleware.py::test_initialize_cannot_be_replaced_only_wrapped 1620tests/docs_src/test_middleware.py::test_a_tool_call_over_the_cap_is_refused_while_the_earlier_calls_still_run 1621[gw38] [ 12%] PASSED tests/docs_src/test_middleware.py::test_a_tool_call_over_the_cap_is_refused_while_the_earlier_calls_still_run 1622tests/docs_src/test_middleware.py::test_other_requests_are_answered_with_the_cap_reached 1623[gw38] [ 12%] PASSED tests/docs_src/test_middleware.py::test_other_requests_are_answered_with_the_cap_reached 1624tests/docs_src/test_middleware.py::test_a_refused_call_is_accepted_once_a_running_call_finishes 1625[gw38] [ 12%] PASSED tests/docs_src/test_middleware.py::test_a_refused_call_is_accepted_once_a_running_call_finishes 1626tests/docs_src/test_middleware.py::test_a_tool_call_that_raises_gives_its_slot_back 1627[gw38] [ 12%] PASSED tests/docs_src/test_middleware.py::test_a_tool_call_that_raises_gives_its_slot_back 1628tests/docs_src/test_middleware.py::test_a_cancelled_tool_call_gives_its_slot_back 1629[gw38] [ 12%] PASSED tests/docs_src/test_middleware.py::test_a_cancelled_tool_call_gives_its_slot_back 1630tests/docs_src/test_middleware.py::test_answering_with_an_error_result_returns_it_to_the_caller_instead_of_raising 1631[gw38] [ 13%] PASSED tests/docs_src/test_middleware.py::test_answering_with_an_error_result_returns_it_to_the_caller_instead_of_raising 1632tests/docs_src/test_middleware.py::test_calls_made_one_after_another_never_reach_the_cap 1633[gw38] [ 13%] PASSED tests/docs_src/test_middleware.py::test_calls_made_one_after_another_never_reach_the_cap 1634tests/docs_src/test_mrtr.py::test_first_call_returns_an_input_required_result 1635[gw38] [ 13%] PASSED tests/docs_src/test_mrtr.py::test_first_call_returns_an_input_required_result 1636tests/docs_src/test_mrtr.py::test_the_auto_loop_drives_the_call_to_completion 1637[gw38] [ 13%] PASSED tests/docs_src/test_mrtr.py::test_the_auto_loop_drives_the_call_to_completion 1638tests/docs_src/test_mrtr.py::test_the_auto_loop_without_a_callback_raises_mcp_error 1639[gw38] [ 13%] PASSED tests/docs_src/test_mrtr.py::test_the_auto_loop_without_a_callback_raises_mcp_error 1640tests/docs_src/test_mrtr.py::test_retry_with_input_responses_and_request_state_completes_the_call 1641[gw38] [ 13%] PASSED tests/docs_src/test_mrtr.py::test_retry_with_input_responses_and_request_state_completes_the_call 1642tests/docs_src/test_mrtr.py::test_the_manual_loop_drives_the_call_to_completion 1643[gw38] [ 13%] PASSED tests/docs_src/test_mrtr.py::test_the_manual_loop_drives_the_call_to_completion 1644tests/docs_src/test_mrtr.py::test_the_in_memory_client_negotiates_2026_07_28 1645[gw38] [ 13%] PASSED tests/docs_src/test_mrtr.py::test_the_in_memory_client_negotiates_2026_07_28 1646tests/docs_src/test_mrtr.py::test_a_pre_2026_session_has_nowhere_to_put_the_result 1647[gw27] [ 13%] PASSED tests/client/test_transport_stream_cleanup.py::test_sse_client_closes_all_streams_on_http_error 1648[gw26] [ 13%] PASSED tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 1649tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1650[gw26] [ 13%] PASSED tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1651tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1652[gw4] [ 13%] XFAIL tests/client/test_auth.py::test_build_metadata[simple-url] 1653tests/client/test_auth.py::test_build_metadata[with-trailing-slash] 1654[gw4] [ 13%] PASSED tests/client/test_auth.py::test_build_metadata[with-trailing-slash] 1655tests/client/test_auth.py::test_build_metadata[with-path-param] 1656[gw4] [ 13%] PASSED tests/client/test_auth.py::test_build_metadata[with-path-param] 1657tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_no_prm_falls_back_to_root_oauth_discovery 1658[gw4] [ 13%] PASSED tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_no_prm_falls_back_to_root_oauth_discovery 1659tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_with_different_prm_and_root_urls 1660[gw4] [ 13%] PASSED tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_with_different_prm_and_root_urls 1661tests/client/test_auth.py::TestSEP985Discovery::test_path_based_fallback_when_no_www_authenticate 1662[gw4] [ 13%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_path_based_fallback_when_no_www_authenticate 1663tests/client/test_auth.py::TestSEP985Discovery::test_root_based_fallback_after_path_based_404 1664[gw4] [ 13%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_root_based_fallback_after_path_based_404 1665tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 1666[gw4] [ 13%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 1667tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 1668[gw4] [ 13%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 1669[gw38] [ 13%] PASSED tests/docs_src/test_mrtr.py::test_a_pre_2026_session_has_nowhere_to_put_the_result 1670tests/docs_src/test_mrtr.py::test_fulfil_refuses_a_request_it_cannot_answer 1671[gw38] [ 13%] PASSED tests/docs_src/test_mrtr.py::test_fulfil_refuses_a_request_it_cannot_answer 1672tests/docs_src/test_mrtr.py::test_a_prompt_returns_an_input_required_result_on_the_first_round 1673tests/client/transports/test_memory.py::test_with_server 1674[gw27] [ 13%] PASSED tests/client/transports/test_memory.py::test_with_server 1675tests/client/transports/test_memory.py::test_with_mcpserver 1676[gw27] [ 13%] PASSED tests/client/transports/test_memory.py::test_with_mcpserver 1677tests/client/transports/test_memory.py::test_server_is_running 1678[gw27] [ 13%] PASSED tests/client/transports/test_memory.py::test_server_is_running 1679tests/client/transports/test_memory.py::test_list_tools 1680[gw27] [ 13%] PASSED tests/client/transports/test_memory.py::test_list_tools 1681tests/client/transports/test_memory.py::test_call_tool 1682tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1683[gw2] [ 13%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1684tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1685[gw2] [ 13%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1686tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1687[gw11] [ 13%] PASSED tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1688[gw20] [ 13%] PASSED tests/client/test_session.py::test_dispatcher_keyword_runs_over_direct_dispatch 1689tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32603] 1690[gw16] [ 13%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32603] 1691tests/client/test_client.py::test_modern_list_tools_drops_tools_with_invalid_x_mcp_header_but_legacy_does_not 1692[gw16] [ 13%] PASSED tests/client/test_client.py::test_modern_list_tools_drops_tools_with_invalid_x_mcp_header_but_legacy_does_not 1693tests/client/test_client.py::test_a_complete_listing_prunes_per_tool_state_for_tools_it_no_longer_contains 1694tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1695[gw11] [ 13%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1696tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1697tests/client/test_session.py::test_direct_dispatch_roots_list_reaches_callback_with_synthesized_request_id 1698[gw20] [ 13%] PASSED tests/client/test_session.py::test_direct_dispatch_roots_list_reaches_callback_with_synthesized_request_id 1699tests/client/test_session.py::test_raising_notification_callbacks_over_direct_dispatch_cost_only_that_delivery 1700[gw20] [ 13%] PASSED tests/client/test_session.py::test_raising_notification_callbacks_over_direct_dispatch_cost_only_that_delivery 1701tests/client/test_session.py::test_dispatcher_keyword_send_request_before_enter_raises_runtimeerror 1702[gw20] [ 13%] PASSED tests/client/test_session.py::test_dispatcher_keyword_send_request_before_enter_raises_runtimeerror 1703tests/client/test_session.py::test_dispatcher_keyword_send_request_after_exit_raises_connection_closed 1704[gw20] [ 13%] PASSED tests/client/test_session.py::test_dispatcher_keyword_send_request_after_exit_raises_connection_closed 1705tests/client/test_session.py::test_dispatcher_keyword_request_timeout_bounds_wait_for_never_run_peer 1706[gw20] [ 13%] PASSED tests/client/test_session.py::test_dispatcher_keyword_request_timeout_bounds_wait_for_never_run_peer 1707tests/client/test_session.py::test_adopt_raises_when_no_mutual_modern_version_is_supported 1708[gw20] [ 13%] PASSED tests/client/test_session.py::test_adopt_raises_when_no_mutual_modern_version_is_supported 1709tests/client/test_session.py::test_initialize_opts_out_of_cancel_on_abandon_while_other_requests_leave_it_unset 1710[gw20] [ 13%] PASSED tests/client/test_session.py::test_initialize_opts_out_of_cancel_on_abandon_while_other_requests_leave_it_unset 1711tests/client/test_session.py::test_modern_stamp_leaves_cancel_on_abandon_at_the_dispatcher_default 1712[gw20] [ 13%] PASSED tests/client/test_session.py::test_modern_stamp_leaves_cancel_on_abandon_at_the_dispatcher_default 1713tests/client/test_session.py::test_constructor_rejects_streams_and_dispatcher_together 1714[gw20] [ 13%] PASSED tests/client/test_session.py::test_constructor_rejects_streams_and_dispatcher_together 1715tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 1716[gw20] [ 13%] PASSED tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 1717tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 1718[gw20] [ 13%] PASSED tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 1719tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 1720[gw20] [ 13%] PASSED tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 1721tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 1722[gw20] [ 13%] PASSED tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 1723tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 1724[gw20] [ 13%] PASSED tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 1725tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 1726[gw38] [ 13%] PASSED tests/docs_src/test_mrtr.py::test_a_prompt_returns_an_input_required_result_on_the_first_round 1727tests/docs_src/test_mrtr.py::test_the_prompt_auto_loop_returns_the_final_messages 1728[gw2] [ 13%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1729tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 1730[gw20] [ 13%] PASSED tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 1731tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 1732[gw20] [ 13%] PASSED tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 1733tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 1734[gw20] [ 13%] PASSED tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 1735tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 1736[gw20] [ 13%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 1737tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 1738[gw20] [ 13%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 1739tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 1740[gw20] [ 13%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 1741[gw38] [ 13%] PASSED tests/docs_src/test_mrtr.py::test_the_prompt_auto_loop_returns_the_final_messages 1742tests/docs_src/test_mrtr.py::test_a_custom_codec_round_trips_what_it_sealed 1743[gw38] [ 13%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_round_trips_what_it_sealed 1744tests/docs_src/test_mrtr.py::test_a_custom_codec_raises_invalid_request_state_for_any_bad_token 1745[gw38] [ 13%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_raises_invalid_request_state_for_any_bad_token 1746tests/docs_src/test_mrtr.py::test_a_custom_codec_rejects_every_alias_of_a_minted_token 1747[gw11] [ 13%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1748tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1749[gw38] [ 14%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_rejects_every_alias_of_a_minted_token 1750tests/docs_src/test_oauth_clients.py::test_in_memory_storage_satisfies_the_token_storage_protocol 1751[gw26] [ 14%] PASSED tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1752tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1753[gw38] [ 14%] PASSED tests/docs_src/test_oauth_clients.py::test_in_memory_storage_satisfies_the_token_storage_protocol 1754tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1755[gw7] [ 14%] PASSED tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1756tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 1757[gw30] [ 14%] PASSED tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[keep-string] 1758tests/client/test_auth.py::test_union_scopes[no-previous] 1759tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[avoid-string] 1760[gw7] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 1761tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 1762tests/client/test_session.py::test_send_request_validates_the_server_result_against_the_surface_schema 1763[gw2] [ 14%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 1764[gw5] [ 14%] PASSED tests/client/test_auth.py::test_union_scopes[no-previous] 1765tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 1766tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial001.py] 1767[gw7] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 1768[gw18] [ 14%] PASSED tests/client/test_session.py::test_send_request_validates_the_server_result_against_the_surface_schema 1769tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 1770[gw7] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 1771[gw5] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial001.py] 1772tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial002.py] 1773tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 1774tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1775tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial002.py] 1776[gw5] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial002.py] 1777[gw46] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 1778tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial002.py] 1779[gw18] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial002.py] 1780[gw7] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1781tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial003.py] 1782tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1783tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial003.py] 1784[gw5] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial003.py] 1785[gw7] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1786tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial004.py] 1787[gw18] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial003.py] 1788tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial004.py] 1789tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] 1790[gw11] [ 14%] PASSED tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1791tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1792tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1793[gw46] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial002.py] 1794tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial003.py] 1795[gw46] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial003.py] 1796tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial004.py] 1797[gw26] [ 14%] PASSED tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1798tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1799[gw31] [ 14%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[legacy] 1800tests/docs_src/test_cancellation.py::test_abandoning_the_call_over_streamable_http_runs_the_cleanup_too[2026-07-28] 1801[gw7] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1802tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1803[gw5] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial004.py] 1804tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial005.py] 1805[gw5] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial005.py] 1806tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial006.py] 1807[gw7] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1808[gw18] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial004.py] 1809tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial005.py] 1810[gw18] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial005.py] 1811tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial006.py] 1812tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1813[gw46] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial004.py] 1814tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial005.py] 1815[gw5] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial006.py] 1816[gw46] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial005.py] 1817tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial001.py] 1818[gw18] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial006.py] 1819tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial007.py] 1820tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial006.py] 1821[gw46] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial006.py] 1822tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial007.py] 1823[gw46] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial007.py] 1824tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial008.py] 1825[gw2] [ 14%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 1826[gw5] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial001.py] 1827tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial002.py] 1828[gw5] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial002.py] 1829tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial003.py] 1830[gw5] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial003.py] 1831[gw26] [ 14%] PASSED tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1832tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1833[gw18] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial007.py] 1834tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial008.py] 1835[gw18] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial008.py] 1836tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial009.py] 1837[gw18] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial009.py] 1838tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial001.py] 1839tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial004.py] 1840[gw46] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial008.py] 1841tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial001.py] 1842tests/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] 1843[gw4] [ 14%] 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] 1844tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] 1845[gw5] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial004.py] 1846tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/real_host/tutorial001.py] 1847[gw7] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1848tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1849[gw46] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial001.py] 1850[gw7] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1851tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 1852[gw7] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 1853tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 1854[gw7] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 1855tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 1856tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial002.py] 1857[gw4] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] 1858tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] 1859[gw5] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/real_host/tutorial001.py] 1860tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial001.py] 1861[gw46] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial002.py] 1862[gw24] [ 14%] PASSED tests/client/test_stdio.py::test_a_mid_session_stdout_failure_is_logged_and_surfaces_as_clean_closure 1863tests/client/test_stdio.py::test_a_failing_stdout_close_still_closes_the_transport_streams 1864tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial003.py] 1865[gw18] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial001.py] 1866tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial002.py] 1867[gw18] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial002.py] 1868tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial003.py] 1869[gw18] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial003.py] 1870tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_anyio.py] 1871[gw4] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] 1872tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] 1873[gw11] [ 15%] PASSED tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1874tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1875[gw5] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial001.py] 1876tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial002.py] 1877[gw5] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial002.py] 1878[gw46] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial003.py] 1879tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial004.py] 1880tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 1881[gw7] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 1882tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1883[gw7] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1884tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1885[gw7] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1886tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial003.py] 1887[gw46] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial004.py] 1888tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial005.py] 1889tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1890[gw0] [ 15%] PASSED tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 1891[gw5] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial003.py] 1892[gw4] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] 1893tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] 1894[gw4] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] 1895tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial003.py] 1896tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial001.py] 1897[gw18] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_anyio.py] 1898tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_asyncio.py] 1899[gw18] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_asyncio.py] 1900tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_trio.py] 1901[gw46] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial005.py] 1902tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/whats_new/tutorial001.py] 1903[gw7] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1904tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1905[gw5] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial001.py] 1906tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial002.py] 1907[gw46] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/whats_new/tutorial001.py] 1908[gw7] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1909tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001.py] 1910[gw25] [ 15%] PASSED tests/client/test_subscriptions.py::test_an_open_stream_outlives_the_session_read_timeout 1911tests/client/test_subscriptions.py::test_a_duplicate_ack_does_not_overwrite_the_honored_filter 1912[gw18] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_trio.py] 1913tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial005.py] 1914[gw4] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial003.py] 1915tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial001.py] 1916[gw4] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial001.py] 1917tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial002.py] 1918tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1919tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1920[gw18] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial005.py] 1921tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial006.py] 1922[gw5] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial002.py] 1923tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial003.py] 1924tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006.py] 1925[gw0] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006.py] 1926tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006_client.py] 1927[gw0] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006_client.py] 1928tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007.py] 1929[gw46] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001.py] 1930tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001_client.py] 1931[gw46] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001_client.py] 1932[gw18] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial006.py] 1933tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial007.py] 1934tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial002.py] 1935[gw3] [ 15%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1936tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial001.py] 1937[gw25] [ 15%] PASSED tests/client/test_subscriptions.py::test_a_duplicate_ack_does_not_overwrite_the_honored_filter 1938tests/client/test_subscriptions.py::test_a_non_event_frame_with_the_subscription_id_is_teed_not_delivered 1939[gw7] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1940tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1941[gw7] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1942tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 1943[gw5] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial003.py] 1944tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial001.py] 1945[gw5] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial001.py] 1946tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial002.py] 1947[gw4] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial002.py] 1948tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial003.py] 1949[gw4] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial003.py] 1950tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial004.py] 1951[gw0] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007.py] 1952tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007_client.py] 1953[gw0] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007_client.py] 1954tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001.py] 1955[gw0] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001.py] 1956tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001_client.py] 1957[gw5] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial002.py] 1958tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial001.py] 1959[gw18] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial007.py] 1960tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/testing/tutorial001.py] 1961[gw18] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/testing/tutorial001.py] 1962tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial001.py] 1963[gw46] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial002.py] 1964tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial003.py] 1965[gw46] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial003.py] 1966tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial001.py] 1967[gw11] [ 15%] PASSED tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1968tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1969[gw0] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001_client.py] 1970tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial001.py] 1971[gw5] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial001.py] 1972tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial002.py] 1973[gw4] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial004.py] 1974tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial001.py] 1975[gw4] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial001.py] 1976tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial002.py] 1977[gw5] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial002.py] 1978[gw46] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial001.py] 1979tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial002.py] 1980tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial003.py] 1981[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial001.py] 1982tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial002.py] 1983[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial002.py] 1984tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial003.py] 1985[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial003.py] 1986tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial004.py] 1987[gw18] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial001.py] 1988tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial002.py] 1989[gw18] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial002.py] 1990tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial003.py] 1991[gw18] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial003.py] 1992[gw3] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial004.py] 1993tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial005.py] 1994[gw0] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial001.py] 1995tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial002.py] 1996[gw0] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial002.py] 1997tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial003.py] 1998[gw4] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial002.py] 1999tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial003.py] 2000[gw4] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial003.py] 8896[gw43] [ 74%] PASSED tests/shared/test_inbound.py::test_all_rungs_pass_yields_route 8897tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[initialize] 8898tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[with internal space] 8899[gw9] [ 74%] PASSED tests/shared/test_inbound.py::test_non_string_protocol_version_over_http_still_rejects_at_the_header_rung 8900[gw16] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-version] 8901tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-client-caps] 8902[gw24] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32602-400] 8903tests/shared/test_inbound.py::test_error_code_http_status_table[-32020-400] 8904[gw24] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32020-400] 8905tests/shared/test_inbound.py::test_error_code_http_status_table[-32021-400] 8906[gw24] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32021-400] 8907[gw43] [ 74%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[initialize] 8908tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[myorg/custom] 8909tests/server/test_session.py::test_send_request_without_related_id_routes_to_standalone_channel 8910[gw6] [ 74%] PASSED tests/server/test_session.py::test_send_request_without_related_id_routes_to_standalone_channel 8911[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[mismatch] 8912tests/shared/test_inbound.py::test_error_code_http_status_table[-32022-400] 8913[gw16] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-client-caps] 8914tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?gA==?=] 8915[gw29] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[with internal space] 8916tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] 8917[gw29] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] 8918[gw34] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_custom_parameters 8919[gw24] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32022-400] 8920tests/shared/test_inbound.py::test_error_code_http_status_table[-32601-404] 8921[gw43] [ 74%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[myorg/custom] 8922tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[does/not/exist] 8923tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] 8924tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://mcp.example/mcp/] 8925[gw6] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?gA==?=] 8926tests/shared/test_inbound.py::test_name_bearing_methods_table_matches_spec 8927[gw29] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] 8928[gw24] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32601-404] 8929tests/shared/test_inbound.py::test_error_code_http_status_covers_every_ladder_code 8930tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[r\xe9sum\xe9] 8931[gw43] [ 74%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[does/not/exist] 8932[gw6] [ 74%] PASSED tests/shared/test_inbound.py::test_name_bearing_methods_table_matches_spec 8933tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[none] 8934[gw24] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_covers_every_ladder_code 8935tests/shared/test_inbound.py::test_verdict_dataclasses_are_frozen 8936[gw34] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://mcp.example/mcp/] 8937tests/shared/test_inbound.py::test_ladder_first_failure_wins 8938[gw29] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[r\xe9sum\xe9] 8939tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[a\r\nb] 8940tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-/other/path] 8941tests/server/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 8942[gw24] [ 74%] PASSED tests/shared/test_inbound.py::test_verdict_dataclasses_are_frozen 8943[gw29] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[a\r\nb] 8944[gw40] [ 75%] PASSED tests/server/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 8945[gw43] [ 75%] PASSED tests/shared/test_inbound.py::test_ladder_first_failure_wins 8946tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[=?base64?Zm9v?=] 8947tests/shared/test_inbound.py::test_error_code_http_status_table[-32700-400] 8948[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[none] 8949tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping] 8950tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-integer] 8951[gw29] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[=?base64?Zm9v?=] 8952[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping] 8953tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-properties] 8954[gw10] [ 75%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[different-issuer] 8955tests/shared/test_inbound.py::test_decode_header_value_passes_none_and_plain_through 8956[gw43] [ 75%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32700-400] 8957[gw34] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-/other/path] 8958tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example:8080/mcp-http://mcp.example:8080/v2/mcp] 8959[gw40] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-integer] 8960tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-boolean] 8961[gw29] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_passes_none_and_plain_through 8962[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-properties] 8963tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[properties-non-mapping] 8964tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] 8965[gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] 8966[gw34] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example:8080/mcp-http://mcp.example:8080/v2/mcp] 8967[gw40] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-boolean] 8968tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[two-distinct] 8969tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] 8970[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[properties-non-mapping] 8971[gw40] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[two-distinct] 8972tests/server/test_stateless_mode.py::test_send_ping_raises_no_back_channel 8973[gw11] [ 75%] PASSED tests/server/test_stateless_mode.py::test_send_ping_raises_no_back_channel 8974tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-annotation] 8975tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping-prop] 8976[gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] 8977tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header 8978[gw6] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-annotation] 8979tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-enum-is-data] 8980[gw40] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping-prop] 8981tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[nested-on-properties-chain] 8982[gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header 8983tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[tools/call-name] 8984tests/server/test_request_state_boundary.py::test_a_complete_result_crosses_the_boundary_untouched 8985[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-enum-is-data] 8986tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[ref-is-not-dereferenced] 8987[gw40] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[nested-on-properties-chain] 8988[gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[tools/call-name] 8989tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[prompts/get-name] 8990tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-default-is-data] 8991tests/server/test_request_state_boundary.py::test_an_explicit_policy_audience_overrides_the_server_name_default 8992[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[ref-is-not-dereferenced] 8993tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[malformed-or-empty-applicators-ignored] 8994[gw40] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-default-is-data] 8995tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-examples-is-data] 8996[gw37] [ 75%] PASSED tests/server/test_request_state_boundary.py::test_a_complete_result_crosses_the_boundary_untouched 8997tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-string] 8998[gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[prompts/get-name] 8999tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[resources/read-uri] 9000[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[malformed-or-empty-applicators-ignored] 9001tests/server/test_runner.py::test_runner_on_notify_drops_before_init_and_unknown_methods 9002[gw37] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-string] 9003[gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[resources/read-uri] 9004[gw40] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-examples-is-data] 9005tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[empty] 9006[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[empty] 9007tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[space] 9008tests/shared/test_inbound.py::test_header_rung_decodes_base64_sentinel_before_comparing_name 9009[gw10] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_decodes_base64_sentinel_before_comparing_name 9010tests/server/test_runner.py::test_runner_middleware_returning_error_data_produces_jsonrpc_error 9011tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-header] 9012[gw37] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-header] 9013tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-object] 9014[gw37] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-object] 9015tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-array] 9016[gw33] [ 75%] PASSED tests/server/test_request_state_boundary.py::test_an_explicit_policy_audience_overrides_the_server_name_default 9017[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[space] 9018tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[colon] 9019[gw22] [ 75%] PASSED tests/server/test_runner.py::test_runner_middleware_returning_error_data_produces_jsonrpc_error 9020[gw37] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-array] 9021[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[colon] 9022tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-ascii] 9023tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-type] 9024tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[dependentSchemas] 9025tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-null] 9026[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-ascii] 9027[gw37] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-null] 9028tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-number] 9029[gw37] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-number] 9030tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[array-type] 9031tests/server/test_transport_security.py::test_client_disconnect_before_request_body_is_replayed 9032[gw22] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[dependentSchemas] 9033tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[else] 9034tests/server/test_sse_security.py::test_sse_post_body_over_the_limit_returns_413 9035[gw33] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-type] 9036tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[missing-type] 9037[gw33] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[missing-type] 9038tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-same-case] 9039[gw37] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[array-type] 9040[gw35] [ 75%] PASSED tests/server/test_sse_security.py::test_sse_post_body_over_the_limit_returns_413 9041[gw22] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[else] 9042[gw33] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-same-case] 9043[gw18] [ 75%] PASSED tests/server/test_transport_security.py::test_client_disconnect_before_request_body_is_replayed 9044tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] 9045tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[if] 9046[gw22] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[if] 9047tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[items] 9048tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_tools_none 9049tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-diff-case] 9050[gw33] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-diff-case] 9051tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[propertyNames] 9052[gw35] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[propertyNames] 9053tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[properties-chain-not-restored-below-an-applicator] 9054[gw47] [ 75%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_tools_none 9055tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[then] 9056[gw22] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[items] 9057tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[not] 9058[gw33] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[properties-chain-not-restored-below-an-applicator] 9059tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-root-schema] 9060[gw35] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[then] 9061tests/server/mcpserver/test_server.py::test_static_resource_raising_mcp_error_surfaces_code_and_data_to_client 9062tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedItems] 9063[gw22] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[not] 9064tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[oneOf] 9065tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments 9066[gw22] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[oneOf] 9067[gw35] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedItems] 9068[gw47] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments 9069tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path 9070[gw33] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-root-schema] 9071tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-across-nesting-levels] 9072tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[patternProperties] 9073tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedProperties] 9074[gw47] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path 9075[gw33] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-across-nesting-levels] 9076[gw18] [ 76%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] 9077tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] 9078[gw18] [ 76%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] 9079tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec 9080[gw18] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec 9081tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] 9082[gw18] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] 9083[gw22] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[patternProperties] 9084tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken 9085[gw47] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken 9086tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] 9087tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] 9088[gw14] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_raising_mcp_error_surfaces_code_and_data_to_client 9089[gw18] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] 9090tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] 9091[gw47] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] 9092tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] 9093[gw35] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedProperties] 9094tests/shared/test_inbound.py::test_schema_walk_applicator_keywords_match_the_pinned_reject_cases 9095[gw35] [ 76%] PASSED tests/shared/test_inbound.py::test_schema_walk_applicator_keywords_match_the_pinned_reject_cases 9096tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property 9097[gw35] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property 9098tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path 9099tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[missing-padding] 9100[gw18] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] 9101tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] 9102[gw47] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] 9103[gw35] [ 76%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path 9104tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] 9105[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[missing-padding] 9106[gw46] [ 76%] PASSED tests/shared/test_dispatcher.py::test_direct_request_parked_waiting_for_peer_run_is_woken_by_peer_close 9107[gw18] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] 9108tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-alphabet-chars] 9109tests/shared/test_dispatcher.py::test_direct_send_raw_request_after_local_close_raises_and_notify_is_dropped 9110[gw47] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] 9111tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] 9112tests/server/test_subscriptions.py::test_backlog_overflow_ends_the_stream_and_frees_its_slot 9113[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-alphabet-chars] 9114[gw47] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] 9115[gw46] [ 76%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_after_local_close_raises_and_notify_is_dropped 9116tests/shared/test_dispatcher.py::test_direct_inbound_after_peer_close_refuses_requests_and_drops_notifications 9117tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-canonical-trailing-bits] 9118tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_previous_message_has_no_tool_use 9119[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-canonical-trailing-bits] 9120[gw46] [ 76%] PASSED tests/shared/test_dispatcher.py::test_direct_inbound_after_peer_close_refuses_requests_and_drops_notifications 9121[gw17] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_previous_message_has_no_tool_use 9122tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[invalid-utf8] 9123tests/examples/test_stories.py::test_story[subscriptions-server-http-asgi-modern] 9124tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] 9125tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-match] 9126tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[policy_uri] 9127[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[invalid-utf8] 9128tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[extra-grant-type] 9129tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_missing_header_for_present_argument 9130[gw32] [ 76%] PASSED tests/issues/test_1363_race_condition_streamable_http.py::test_race_condition_message_router_async_for 9131[gw2] [ 76%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[policy_uri] 9132[gw12] [ 76%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-match] 9133[gw17] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] 9134[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_missing_header_for_present_argument 9135tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 9136tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 9137tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] 9138[gw38] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[extra-grant-type] 9139tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[absent] 9140tests/issues/test_141_resource_templates.py::test_resource_template_edge_cases 9141tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 9142[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 9143tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9144[gw3] [ 76%] PASSED tests/server/test_subscriptions.py::test_backlog_overflow_ends_the_stream_and_frees_its_slot 9145[gw17] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] 9146[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[absent] 9147[gw13] [ 76%] PASSED tests/server/test_stdio.py::test_a_degraded_session_does_not_close_the_sys_stream_it_served 9148tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[null] 9149[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9150tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_absent_argument_with_no_header 9151tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 9152[gw38] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 9153tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 9154tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] 9155[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_absent_argument_with_no_header 9156tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9157[gw14] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[null] 9158tests/shared/test_inbound.py::test_validate_mcp_param_headers_matches_header_names_case_insensitively 9159[gw17] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] 9160tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] 9161[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_matches_header_names_case_insensitively 9162[gw38] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 9163[gw12] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9164tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 9165tests/shared/test_inbound.py::test_validate_mcp_param_headers_ignores_undeclared_mcp_param_headers 9166tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 9167[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_ignores_undeclared_mcp_param_headers 9168[gw32] [ 76%] PASSED tests/issues/test_141_resource_templates.py::test_resource_template_edge_cases 9169tests/shared/test_inbound.py::test_validate_mcp_param_headers_validates_nothing_for_an_invalid_annotation_schema 9170[gw17] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] 9171tests/issues/test_141_resource_templates.py::test_resource_template_client_interaction 9172tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] 9173[gw13] [ 76%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 9174tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 9175[gw38] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 9176tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 9177tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-null] 9178[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_validates_nothing_for_an_invalid_annotation_schema 9179tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths 9180[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths 9181[gw17] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] 9182tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] 9183tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering 9184[gw38] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 9185[gw39] [ 77%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-null] 9186tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 9187tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 9188[gw32] [ 77%] PASSED tests/issues/test_141_resource_templates.py::test_resource_template_client_interaction 9189[gw3] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering 9190tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] 9191[gw17] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] 9192[gw13] [ 77%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 9193tests/issues/test_152_resource_mime_type.py::test_mcpserver_resource_mime_type 9194tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 9195[gw39] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 9196tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 9197[gw3] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] 9198tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9199[gw38] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 9200tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 9201[gw17] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 9202[gw39] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9203tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9204[gw31] [ 77%] PASSED tests/examples/test_stories.py::test_story[subscriptions-server-http-asgi-modern] 9205[gw12] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 9206[gw13] [ 77%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 9207tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 9208tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 9209[gw31] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 9210[gw32] [ 77%] PASSED tests/issues/test_152_resource_mime_type.py::test_mcpserver_resource_mime_type 9211tests/issues/test_152_resource_mime_type.py::test_lowlevel_resource_mime_type 9212[gw39] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9213tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9214tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 9215tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 9216tests/shared/test_auth.py::test_client_information_that_is_not_an_object_still_fails_the_parse 9217[gw42] [ 77%] PASSED tests/shared/test_auth.py::test_client_information_that_is_not_an_object_still_fails_the_parse 9218tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 9219[gw31] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 9220[gw32] [ 77%] PASSED tests/issues/test_152_resource_mime_type.py::test_lowlevel_resource_mime_type 9221tests/server/mcpserver/test_resolve.py::test_roots_tool_without_client_capability_is_a_protocol_error 9222[gw13] [ 77%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 9223tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 9224tests/issues/test_1574_resource_uri_validation.py::test_relative_uri_roundtrip 9225tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 9226[gw31] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 9227[gw13] [ 77%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 9228[gw42] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 9229tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 9230tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 9231[gw31] [ 77%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 9232tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 9233tests/server/mcpserver/test_server.py::test_call_tool_keeps_a_deliberate_tool_error_a_plain_tool_error 9234[gw42] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 9235[gw21] [ 77%] PASSED tests/server/mcpserver/test_resolve.py::test_roots_tool_without_client_capability_is_a_protocol_error 9236[gw31] [ 77%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 9237tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 9238[gw32] [ 77%] PASSED tests/issues/test_1574_resource_uri_validation.py::test_relative_uri_roundtrip 9239tests/issues/test_1574_resource_uri_validation.py::test_custom_scheme_uri_roundtrip 9240tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 9241tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata 9242tests/server/test_runner.py::test_initialize_after_modern_data_arms 9243[gw8] [ 77%] PASSED tests/server/test_runner.py::test_initialize_after_modern_data_arms 9244[gw31] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 9245tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 9246tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9247[gw32] [ 77%] PASSED tests/issues/test_1574_resource_uri_validation.py::test_custom_scheme_uri_roundtrip 9248[gw31] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 9249[gw26] [ 77%] PASSED tests/server/mcpserver/test_server.py::test_call_tool_keeps_a_deliberate_tool_error_a_plain_tool_error 9250tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 9251tests/server/test_stdio.py::test_a_second_stdio_server_on_the_same_process_streams_is_refused 9252[gw21] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata 9253tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message 9254[gw8] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9255tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9256[gw21] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message 9257[gw26] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 9258tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 9259tests/shared/test_jsonrpc_dispatcher.py::test_ctx_after_handler_return_reports_closed_and_drops_backchannel_traffic 9260[gw8] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9261tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9262[gw26] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 9263tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 9264[gw8] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9265tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9266[gw21] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_after_handler_return_reports_closed_and_drops_backchannel_traffic 9267tests/shared/test_jsonrpc_dispatcher.py::test_inline_methods_are_handled_before_next_message_is_dequeued 9268[gw26] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 9269tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 9270tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_path 9271tests/shared/test_auth_utils.py::test_check_resource_allowed_hierarchical_matching 9272[gw30] [ 77%] PASSED tests/docs/test_translations.py::test_stage_keeps_showing_the_generated_code_block_after_its_english_changes_until_the_page_is_retranslated 9273[gw44] [ 77%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_path 9274tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9275[gw8] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9276tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9277tests/docs/test_translations.py::test_notice_links_climb_from_the_staged_page_to_the_english_page_and_this_sites_translations_page 9278[gw30] [ 77%] PASSED tests/docs/test_translations.py::test_notice_links_climb_from_the_staged_page_to_the_english_page_and_this_sites_translations_page 9279tests/docs/test_translations.py::test_stage_that_stops_part_way_leaves_no_titles_file_from_an_earlier_run 9280[gw21] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_inline_methods_are_handled_before_next_message_is_dequeued 9281tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_omits_empty_meta_and_empty_params_on_the_wire 9282[gw27] [ 77%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_hierarchical_matching 9283tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9284[gw8] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9285tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9286[gw26] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 9287tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 9288[gw44] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9289tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9290[gw27] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9291tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9292[gw21] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_omits_empty_meta_and_empty_params_on_the_wire 9293tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_merges_progress_token_into_caller_meta 9294[gw21] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_merges_progress_token_into_caller_meta 9295[gw8] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9296[gw42] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 9297tests/shared/test_dispatcher.py::test_ctx_notify_invokes_calling_side_on_notify[jsonrpc] 9298[gw36] [ 77%] PASSED tests/shared/test_dispatcher.py::test_ctx_notify_invokes_calling_side_on_notify[jsonrpc] 9299tests/shared/test_otel.py::test_client_and_server_spans 9300[gw44] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9301tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9302[gw44] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9303tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 9304tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 9305tests/shared/test_dispatcher.py::test_send_raw_request_with_timeout_raises_mcperror_request_timeout[direct] 9306tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[direct] 9307[gw44] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 9308tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9309[gw19] [ 78%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_timeout_raises_mcperror_request_timeout[direct] 9310tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9311tests/shared/test_dispatcher.py::test_direct_inbound_to_closed_never_run_peer_fails_with_connection_closed 9312[gw46] [ 78%] PASSED tests/shared/test_dispatcher.py::test_direct_inbound_to_closed_never_run_peer_fails_with_connection_closed 9313tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[direct] 9314[gw41] [ 78%] PASSED tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[direct] 9315tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9316tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 9317[gw19] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9318[gw46] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 9319tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 9320[gw46] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 9321tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 9322[gw26] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 9323tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9324[gw26] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9325[gw44] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9326tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9327[gw44] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9328tests/shared/test_context.py::test_base_context_satisfies_outbound_so_peer_mixin_works 9329[gw25] [ 78%] PASSED tests/shared/test_context.py::test_base_context_satisfies_outbound_so_peer_mixin_works 9330tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9331[gw25] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9332tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9333tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[.leading/x] 9334[gw28] [ 78%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[.leading/x] 9335tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9336[gw5] [ 78%] PASSED tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[direct] 9337tests/shared/test_path_security.py::test_is_absolute_path[/-True] 9338[gw5] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/-True] 9339tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9340[gw19] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9341tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9342[gw19] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9343tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9344[gw19] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9345[gw25] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9346tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9347tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 9348[gw46] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 9349tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 9350[gw46] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 9351tests/shared/test_path_security.py::test_is_absolute_path[-False] 9352[gw46] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[-False] 9353[gw23] [ 78%] PASSED tests/server/test_runner.py::test_runner_on_notify_drops_before_init_and_unknown_methods 9354tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-non-primitive] 9355tests/shared/test_extension.py::test_server_extension_module_reexports_shared_validator 9356[gw45] [ 78%] PASSED tests/shared/test_extension.py::test_server_extension_module_reexports_shared_validator 9357tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9358[gw45] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9359tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9360[gw45] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9361tests/shared/test_path_security.py::test_safe_join_simple 9362tests/shared/test_path_security.py::test_is_absolute_path[.-False] 9363[gw25] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9364tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9365[gw25] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9366tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9367[gw28] [ 78%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9368tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9369[gw28] [ 78%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9370tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9371[gw19] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9372tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9373[gw19] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9374[gw5] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 9375tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 9376[gw45] [ 78%] PASSED tests/shared/test_path_security.py::test_safe_join_simple 9377tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9378[gw25] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9379tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9380[gw23] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-non-primitive] 9381tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[$defs] 9382[gw23] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[$defs] 9383tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations 9384[gw7] [ 78%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations 9385tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9386[gw7] [ 78%] PASSED tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9387tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9388[gw7] [ 78%] PASSED tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9389tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9390[gw28] [ 78%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9391tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9392[gw27] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9393tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9394[gw45] [ 78%] PASSED tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9395tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9396tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[additionalProperties] 9397[gw23] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[additionalProperties] 9398tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[allOf] 9399[gw5] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 9400tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 9401[gw5] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 9402[gw46] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[.-False] 9403[gw28] [ 78%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9404tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9405[gw42] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 9406tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 9407tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9408[gw25] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9409tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 9410[gw36] [ 78%] PASSED tests/shared/test_otel.py::test_client_and_server_spans 9411tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 9412[gw45] [ 78%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9413tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9414[gw7] [ 78%] PASSED tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9415tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9416[gw28] [ 78%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9417tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9418[gw23] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[allOf] 9419tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[anyOf] 9420[gw23] [ 78%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[anyOf] 9421tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contains] 9422[gw5] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 9423tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 9424[gw41] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9425tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9426[gw41] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9427tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9428[gw41] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9429tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9430[gw41] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9431tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 9432[gw41] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 9433tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 9434[gw41] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 9435[gw7] [ 79%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9436tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9437[gw45] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9438[gw5] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 9439[gw23] [ 79%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contains] 9440tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contentSchema] 9441[gw23] [ 79%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contentSchema] 9442[gw7] [ 79%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9443[gw28] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9444tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9445[gw7] [ 79%] PASSED tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9446[gw4] [ 79%] PASSED tests/server/test_stdio.py::test_a_second_stdio_server_on_the_same_process_streams_is_refused 9447tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9448[gw36] [ 79%] PASSED tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 9449[gw4] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9450tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9451tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9452tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[303] 9453tests/shared/test_httpx_utils.py::test_redirect_location_with_userinfo_is_not_followed 9454[gw0] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[303] 9455[gw4] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9456tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9457[gw20] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_redirect_location_with_userinfo_is_not_followed 9458tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9459[gw36] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9460tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9461[gw36] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9462tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9463tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[io.modelcontextprotocol/ui\n] 9464[gw27] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9465tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9466[gw15] [ 79%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[io.modelcontextprotocol/ui\n] 9467tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9468[gw4] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9469tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9470[gw0] [ 79%] PASSED tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9471tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9472tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[int] 9473[gw20] [ 79%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9474tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9475tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9476[gw27] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9477tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9478tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] 9479[gw36] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9480tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9481[gw36] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9482[gw4] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9483tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9484[gw0] [ 79%] PASSED tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9485tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9486[gw9] [ 79%] PASSED tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[int] 9487tests/shared/test_sse.py::test_sse_client_exception_handling 9488[gw42] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 9489[gw27] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9490tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9491tests/shared/test_jsonrpc_dispatcher.py::test_spawned_notification_handlers_run_concurrently 9492[gw15] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9493tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9494[gw15] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9495[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] 9496tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9497[gw4] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9498tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9499[gw0] [ 79%] PASSED tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9500tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9501[gw0] [ 79%] PASSED tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9502tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9503[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9504tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9505tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-both] 9506[gw4] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9507[gw42] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_spawned_notification_handlers_run_concurrently 9508tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_request_metadata 9509tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9510[gw15] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9511[gw0] [ 79%] PASSED tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9512[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9513tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9514[gw16] [ 79%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-both] 9515[gw27] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9516tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9517tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9518[gw0] [ 79%] PASSED tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9519[gw15] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9520tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9521tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9522[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9523[gw42] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_request_metadata 9524tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9525[gw15] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9526[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9527tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9528tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[plain] 9529tests/shared/test_inbound.py::test_error_code_http_status_table[-32600-400] 9530tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9531[gw9] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_exception_handling 9532[gw16] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9533tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9534tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://MCP.EXAMPLE:80/mcp/] 9535[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9536tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9537tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9538[gw24] [ 79%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[plain] 9539[gw43] [ 80%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32600-400] 9540[gw16] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9541tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9542tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?not base64!?=] 9543[gw29] [ 80%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?not base64!?=] 9544tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9545tests/shared/test_streamable_http.py::test_json_validation 9546tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9547tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-string] 9548[gw6] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-string] 9549[gw2] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 9550tests/shared/test_streamable_http.py::test_client_crash_handled 9551[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9552[gw15] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9553[gw9] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9554tests/shared/test_sse.py::test_request_context_propagation 9555tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-const-is-data] 9556[gw34] [ 80%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://MCP.EXAMPLE:80/mcp/] 9557tests/shared/test_streamable_http.py::test_session_termination 9558tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 9559[gw24] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9560tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9561[gw43] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_validation 9562tests/shared/test_streamable_http.py::test_json_parsing 9563tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[dict-type] 9564[gw34] [ 80%] PASSED tests/shared/test_streamable_http.py::test_session_termination 9565tests/shared/test_streamable_http.py::test_response 9566[gw43] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_parsing 9567[gw38] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 9568tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 9569[gw38] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 9570tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[control-char] 9571[gw11] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[control-char] 9572[gw12] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 9573tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 9574[gw40] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-const-is-data] 9575tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 9576[gw37] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[dict-type] 9577tests/shared/test_streamable_http.py::test_method_not_allowed 9578tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 9579tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_for_non_name_bearing_method 9580[gw10] [ 80%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_for_non_name_bearing_method 9581tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 9582[gw10] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 9583tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 9584[gw10] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 9585tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 9586[gw10] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 9587tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 9588[gw9] [ 80%] PASSED tests/shared/test_sse.py::test_request_context_propagation 9589tests/shared/test_sse.py::test_request_context_isolation 9590[gw29] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9591tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9592[gw29] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9593tests/shared/test_streamable_http.py::test_get_sse_stream 9594[gw11] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 9595tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 9596[gw34] [ 80%] PASSED tests/shared/test_streamable_http.py::test_response 9597tests/shared/test_streamable_http.py::test_json_response 9598[gw34] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response 9599tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 9600[gw37] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 9601tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 9602[gw37] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 9603tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9604[gw10] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 9605tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 9606[gw10] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 9607tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 9608tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-bad-token] 9609[gw16] [ 80%] PASSED tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9610tests/shared/test_streamable_http.py::test_accept_header_validation 9611tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9612[gw24] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9613tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9614[gw24] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9615tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9616[gw24] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9617tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9618[gw11] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 9619tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 9620[gw29] [ 80%] PASSED tests/shared/test_streamable_http.py::test_get_sse_stream 9621tests/shared/test_streamable_http.py::test_get_validation 9622[gw10] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 9623[gw43] [ 80%] PASSED tests/shared/test_streamable_http.py::test_method_not_allowed 9624tests/shared/test_streamable_http.py::test_session_validation 9625[gw37] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9626tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9627[gw37] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9628tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9629[gw37] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9630[gw16] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_validation 9631tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9632tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[prefixItems] 9633[gw11] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 9634tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 9635[gw33] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-bad-token] 9636tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9637[gw24] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9638tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9639[gw22] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[prefixItems] 9640[gw43] [ 80%] PASSED tests/shared/test_streamable_http.py::test_session_validation 9641tests/shared/test_streamable_http.py::test_session_id_pattern 9642[gw11] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 9643tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 9644[gw16] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9645tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9646tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9647[gw29] [ 80%] PASSED tests/shared/test_streamable_http.py::test_get_validation 9648[gw33] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9649[gw40] [ 80%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 9650[gw43] [ 80%] PASSED tests/shared/test_streamable_http.py::test_session_id_pattern 9651tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9652tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9653[gw34] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9654tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9655[gw34] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9656tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9657[gw11] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 9658tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9659tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 9660[gw40] [ 81%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 9661tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 9662[gw40] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 9663tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 9664[gw40] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 9665[gw22] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9666[gw16] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9667[gw24] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9668[gw33] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9669tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9670[gw30] [ 81%] PASSED tests/docs/test_translations.py::test_stage_that_stops_part_way_leaves_no_titles_file_from_an_earlier_run 9671tests/docs/test_translations.py::test_stage_without_lang_stages_every_language_in_the_registry 9672[gw43] [ 81%] PASSED tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9673tests/shared/test_uri_template.py::test_parse_literal_only 9674[gw22] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_literal_only 9675[gw34] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9676tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 9677[gw40] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 9678tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 9679tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9680[gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_client_crash_handled 9681tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9682[gw40] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 9683[gw33] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9684[gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9685tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9686tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9687[gw22] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9688tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9689[gw22] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9690[gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9691tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9692[gw33] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9693tests/shared/test_uri_template.py::test_is_template[-False] 9694[gw22] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[-False] 9695[gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9696tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] 9697tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9698tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9699[gw29] [ 81%] PASSED tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9700tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-suffix-is-literal] 9701tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] 9702tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9703[gw33] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9704[gw47] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-suffix-is-literal] 9705[gw35] [ 81%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] 9706[gw18] [ 81%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] 9707tests/shared/test_uri_template.py::test_is_template[{-False] 9708tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9709tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9710[gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9711tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 9712[gw9] [ 81%] PASSED tests/shared/test_sse.py::test_request_context_isolation 9713[gw35] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9714tests/shared/test_sse.py::test_sse_message_id_coercion 9715[gw47] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9716tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9717[gw18] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[{-False] 9718tests/shared/test_uri_template.py::test_is_template[}-False] 9719[gw18] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[}-False] 9720tests/shared/test_uri_template.py::test_is_template[}{-False] 9721[gw18] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[}{-False] 9722[gw20] [ 81%] PASSED tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9723tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9724[gw9] [ 81%] PASSED tests/shared/test_sse.py::test_sse_message_id_coercion 9725tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9726[gw47] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9727tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9728tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9729[gw20] [ 81%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9730tests/shared/test_sse.py::test_raw_sse_connection 9731[gw9] [ 81%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9732[gw18] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9733[gw47] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9734tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9735[gw29] [ 81%] PASSED tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9736tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9737[gw47] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9738tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9739[gw18] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9740tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9741[gw35] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9742tests/shared/test_uri_template.py::test_parse_multiple_expressions 9743[gw35] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_expressions 9744tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9745[gw35] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9746tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9747[gw20] [ 81%] PASSED tests/shared/test_sse.py::test_raw_sse_connection 9748[gw35] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9749tests/shared/test_sse.py::test_sse_client_basic_connection 9750[gw47] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9751tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_value_mismatch 9752[gw14] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_value_mismatch 9753tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 9754tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9755tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] 9756tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 9757[gw3] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] 9758[gw17] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 9759[gw14] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9760tests/shared/test_uri_template.py::test_parse_explode_modifier 9761tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 9762[gw20] [ 81%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection 9763tests/shared/test_sse.py::test_sse_client_on_session_created 9764tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9765tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9766[gw14] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_explode_modifier 9767[gw17] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9768[gw38] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 9769tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9770[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9771tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9772[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9773[gw13] [ 82%] PASSED tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 9774tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9775[gw13] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9776tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9777tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9778[gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9779tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9780tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 9781[gw38] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9782tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9783[gw38] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9784tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9785tests/issues/test_1574_resource_uri_validation.py::test_uri_json_roundtrip_preserves_value 9786[gw32] [ 82%] PASSED tests/issues/test_1574_resource_uri_validation.py::test_uri_json_roundtrip_preserves_value 9787tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9788[gw20] [ 82%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created 9789tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9790[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9791tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9792[gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9793tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9794tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9795[gw17] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9796tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9797[gw17] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9798tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9799[gw17] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9800tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9801[gw31] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 9802tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9803[gw32] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9804tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9805[gw38] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9806tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9807[gw38] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9808tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9809[gw17] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9810[gw31] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9811tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9812[gw14] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9813[gw39] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9814tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9815[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9816tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9817[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9818[gw38] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9819[gw13] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9820tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9821[gw13] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9822tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9823[gw13] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9824tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9825[gw13] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9826[gw32] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9827tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9828[gw32] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9829tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9830[gw39] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9831tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9832[gw31] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9833tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9834[gw31] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9835tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9836[gw32] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9837tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9838[gw31] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9839tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9840[gw39] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9841tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9842[gw32] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9843[gw31] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9844tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9845[gw39] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9846tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params 9847[gw8] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9848tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9849tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9850tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9851[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9852[gw21] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params 9853tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9854[gw26] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9855tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9856tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9857[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9858[gw44] [ 82%] PASSED tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9859tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9860[gw30] [ 82%] PASSED tests/docs/test_translations.py::test_stage_without_lang_stages_every_language_in_the_registry 9861tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9862[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9863tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9864tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9865[gw44] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9866tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9867[gw44] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9868[gw26] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9869tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9870[gw26] [ 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}{.c*}] 9872[gw19] [ 82%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9873tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9874tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9875[gw25] [ 82%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9876tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9877tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9878tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9879[gw44] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9880tests/shared/test_path_security.py::test_is_absolute_path[..-False] 9881[gw46] [ 82%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[..-False] 9882tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9883[gw46] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9884tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9885tests/docs_src/test_apps.py::test_the_tool_carries_the_ui_resource_reference 9886[gw30] [ 82%] PASSED tests/docs_src/test_apps.py::test_the_tool_carries_the_ui_resource_reference 9887[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9888tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9889[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9890[gw26] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9891tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9892[gw26] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9893tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9894[gw26] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9895[gw25] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9896tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9897[gw19] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9898tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9899[gw19] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9900tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9901[gw45] [ 83%] PASSED tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9902tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9903[gw45] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9904tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9905[gw46] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9906tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9907[gw46] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9908tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9909tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9910[gw44] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9911tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9912[gw44] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9913[gw21] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9914tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9915[gw21] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9916tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9917[gw21] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9918tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9919[gw21] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9920tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9921[gw21] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9922[gw25] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9923tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9924[gw25] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9925tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9926[gw25] [ 83%] PASSED tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9927[gw46] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9928tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9929[gw46] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9930[gw45] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9931tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9932[gw45] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9933tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9934[gw19] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9935tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9936[gw19] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9937tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9938[gw19] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9939tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9940[gw25] [ 83%] PASSED tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9941tests/shared/test_path_security.py::test_safe_join_base_equals_target 9942[gw45] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9943[gw28] [ 83%] PASSED tests/shared/test_path_security.py::test_safe_join_base_equals_target 9944tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9945tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9946tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9947[gw28] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9948tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[definitions] 9949[gw5] [ 83%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9950[gw2] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 9951tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9952[gw45] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9953tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 9954tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 9955[gw23] [ 83%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[definitions] 9956tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9957tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9958[gw28] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9959tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9960[gw41] [ 83%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 9961tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9962tests/shared/test_uri_template.py::test_frozen 9963[gw7] [ 83%] PASSED tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9964tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9965[gw5] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9966[gw2] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 9967tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9968[gw28] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9969tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9970tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 9971[gw28] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9972tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9973tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9974[gw41] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9975[gw23] [ 83%] PASSED tests/shared/test_uri_template.py::test_frozen 9976[gw36] [ 83%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9977[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9978[gw2] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 9979tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 9980tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9981[gw28] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9982tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9983tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 9984tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9985[gw2] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 9986[gw12] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 9987tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 9988tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9989[gw23] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9990[gw5] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9991tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9992[gw5] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9993tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9994tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9995[gw4] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9996[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9997tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9998[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9999tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 10000[gw2] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 10001tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 10002[gw41] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 10003tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 10004[gw27] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 10005tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 10006[gw36] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 10007tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 10008[gw36] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 10009tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 10010tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 10011[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 10012tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 10013[gw5] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 10014tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 10015[gw5] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 10016[gw27] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 10017tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 10018[gw27] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 10019tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 10020[gw36] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 10021[gw41] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 10022tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 10023tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 10024[gw23] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 10025tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 10026[gw23] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 10027tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 10028[gw23] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 10029tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 10030[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 10031[gw2] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 10032[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 10033tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 10034[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 10035tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 10036[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 10037tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 10038[gw27] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 10039tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 10040[gw27] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 10041tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 10042tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 10043[gw36] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 10044tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 10045[gw41] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 10046tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 10047tests/shared/test_jsonrpc_dispatcher.py::test_transport_stamped_can_send_request_makes_the_request_channel_refuse 10048[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 10049[gw42] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_stamped_can_send_request_makes_the_request_channel_refuse 10050tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 10051[gw42] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 10052tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 10053[gw27] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 10054tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 10055[gw36] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 10056[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 10057[gw42] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 10058tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 10059tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 10060[gw41] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 10061[gw42] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 10062tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 10063[gw0] [ 84%] PASSED tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 10064[gw42] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 10065tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 10066tests/shared/test_sse.py::test_sse_client_happy_request_and_response 10067tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 10068tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 10069[gw42] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 10070[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 10071[gw1] [ 84%] PASSED tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 10072tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 10073tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 10074[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 10075tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 10076[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 10077tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 10078tests/shared/test_streamable_http.py::test_content_type_validation 10079[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 10080tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 10081tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 10082tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 10083[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 10084tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 10085[gw10] [ 84%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 10086tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 10087[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 10088[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 10089tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 10090tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 10091[gw37] [ 84%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 10092tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 10093tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 10094tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 10095[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 10096[gw24] [ 84%] PASSED tests/shared/test_streamable_http.py::test_content_type_validation 10097tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 10098[gw11] [ 84%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 10099tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 10100[gw10] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 10101tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 10102[gw15] [ 84%] PASSED tests/shared/test_sse.py::test_sse_client_happy_request_and_response 10103tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 10104tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 10105[gw37] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 10106tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 10107tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 10108[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 10109tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 10110[gw37] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 10111tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 10112[gw16] [ 84%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 10113[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 10114[gw10] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 10115[gw37] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 10116[gw24] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 10117tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 10118tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 10119tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 10120tests/docs_src/test_apps.py::test_the_ui_resource_is_served_as_the_app_mime_type 10121[gw15] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 10122tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 10123tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 10124tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 10125[gw10] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 10126[gw29] [ 84%] PASSED tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 10127[gw34] [ 84%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 10128tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 10129tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 10130tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 10131[gw37] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 10132[gw24] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 10133tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 10134[gw11] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 10135tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 10136[gw11] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 10137[gw34] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 10138tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 10139[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 10140tests/shared/test_uri_template.py::test_is_template[{a}-True] 10141tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 10142[gw16] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 10143tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 10144tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 10145tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 10146[gw22] [ 85%] PASSED tests/shared/test_uri_template.py::test_is_template[{a}-True] 10147[gw40] [ 85%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 10148tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 10149[gw34] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 10150tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 10151[gw33] [ 85%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 10152[gw30] [ 85%] PASSED tests/docs_src/test_apps.py::test_the_ui_resource_is_served_as_the_app_mime_type 10153tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 10154[gw24] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 10155tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 10156tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 10157tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 10158[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 10159tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 10160[gw29] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 10161tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 10162[gw10] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 10163[gw16] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 10164tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 10165[gw16] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 10166tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 10167[gw43] [ 85%] PASSED tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 10168tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 10169[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 10170[gw34] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 10171tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 10172[gw34] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 10173[gw33] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 10174tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 10175[gw22] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 10176tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 10177[gw40] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 10178tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 10179[gw40] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 10180tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 10181[gw16] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 10182[gw43] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 10183tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 10184[gw43] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 10185[gw30] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 10186tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10187[gw30] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10188tests/shared/test_uri_template.py::test_match_no_match[static-different] 10189[gw30] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[static-different] 10190tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 10191[gw30] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 10192tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 10193[gw9] [ 85%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 10194[gw24] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 10195tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 10196[gw29] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 10197tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 10198[gw29] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 10199tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 10200[gw29] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 10201[gw22] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 10202tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 10203[gw22] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 10204tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 10205[gw40] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 10206tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 10207[gw40] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 10208tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 10209[gw43] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 10210tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 10211[gw43] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 10212[gw33] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 10213tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 10214[gw33] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 10215tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 10216[gw33] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 10217[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 10218tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 10219[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 10220tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 10221[gw22] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 10222tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 10223tests/shared/test_uri_template.py::test_parse_simple_variable 10224[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 10225tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 10226tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 10227[gw18] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_simple_variable 10228[gw35] [ 85%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 10229tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10230[gw47] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 10231tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10232tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 10233[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 10234tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 10235[gw18] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 10236tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 10237[gw47] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10238tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10239[gw35] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10240tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10241tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 10242[gw18] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 10243tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 10244[gw20] [ 86%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 10245tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 10246tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 10247[gw47] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10248tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10249[gw20] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 10250[gw14] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 10251tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 10252tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 10253tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 10254[gw38] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 10255tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10256[gw17] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 10257tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10258[gw17] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10259[gw47] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10260tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10261[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 10262tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10263[gw38] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10264tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10265[gw14] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 10266tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10267[gw14] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10268tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10269tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 10270[gw20] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 10271tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 10272[gw20] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 10273tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 10274[gw20] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 10275[gw47] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10276tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 10277[gw13] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 10278tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10279[gw13] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10280tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10281[gw35] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10282tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10283[gw35] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10284tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10285[gw35] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10286[gw38] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10287tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10288[gw38] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10289tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10290[gw18] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 10291tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10292[gw18] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10293tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 10294[gw31] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 10295tests/test_examples.py::test_complex_inputs 10296[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10297tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10298[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10299tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10300tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 10301[gw32] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 10302tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10303[gw32] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10304tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10305[gw32] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10306tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10307tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10308[gw17] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10309tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10310[gw17] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10311tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10312[gw17] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10313[gw38] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10314tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 10315[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10316tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10317[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10318[gw13] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10319[gw14] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10320tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10321[gw14] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10322tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10323[gw13] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10324tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10325[gw13] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10326tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 10327tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 10328tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 10329tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 10330[gw8] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 10331[gw26] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 10332tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10333tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 10334tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10335[gw44] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 10336[gw21] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 10337tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10338tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 10339[gw46] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 10340tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10341tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10342[gw25] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 10343tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 10344tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 10345[gw19] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 10346tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10347tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10348[gw45] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 10349tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 10350tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10351tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 10352[gw28] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 10353tests/shared/test_uri_template.py::test_equality_based_on_template_string 10354[gw21] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10355tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10356[gw46] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10357tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10358[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10359tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10360[gw5] [ 86%] PASSED tests/shared/test_uri_template.py::test_equality_based_on_template_string 10361tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10362tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 10363tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10364[gw44] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10365tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10366tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 10367[gw23] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 10368[gw26] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10369tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10370[gw25] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10371tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10372tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10373[gw45] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10374tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10375[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 10376tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10377[gw19] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10378tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10379tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 10380[gw28] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10381[gw32] [ 87%] PASSED tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10382tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 10383[gw21] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10384tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10385[gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10386tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10387tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 10388[gw25] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10389[gw26] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10390tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10391tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10392[gw42] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 10393tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10394[gw45] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10395tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10396[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10397tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10398tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10399[gw4] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 10400tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10401[gw46] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10402tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10403[gw19] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10404[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10405[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10406tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10407[gw23] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10408tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10409[gw44] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10410tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10411tests/shared/test_uri_template.py::test_match_never_raises 10412tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 10413[gw41] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 10414tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10415[gw27] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 10416tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10417[gw27] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10418tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10419tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10420tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 10421[gw36] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 10422tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10423[gw36] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10424[gw46] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10425tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10426[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 10427tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10428[gw21] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10429tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10430[gw44] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10431tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10432tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10433tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 10434[gw0] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 10435tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10436tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10437[gw28] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10438tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10439[gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10440tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10441[gw41] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10442tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10443[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10444[gw26] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10445tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10446[gw42] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10447tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10448[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10449tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10450[gw12] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 10451tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 10452[gw23] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10453tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10454[gw21] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10455[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10456[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10457[gw25] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10458tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10459[gw26] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10460[gw27] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10461tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10462[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10463tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10464[gw19] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10465tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10466[gw45] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10467tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10468[gw28] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10469tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10470tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10471[gw46] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10472[gw31] [ 87%] PASSED tests/test_examples.py::test_complex_inputs 10473tests/test_examples.py::test_direct_call_tool_result_return 10474[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10475tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10476[gw45] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10477tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 10478[gw44] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10479[gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10480[gw36] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10481tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10482tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10483[gw41] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10484tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10485[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10486tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10487[gw1] [ 87%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 10488tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10489[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10490[gw25] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10491[gw19] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10492[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10493tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10494[gw42] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10495tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10496[gw28] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10497[gw27] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10498[gw23] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10499[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10500[gw42] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10501[gw36] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10502tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 10503[gw11] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 10504tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10505[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10506[gw41] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10507tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 10508[gw10] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 10509tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10510[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10511tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 10512[gw37] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 10513tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10514tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 10515tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10516[gw32] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_never_raises 10517tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 10518[gw24] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 10519tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 10520[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10521[gw34] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 10522tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 10523[gw15] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 10524tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10525tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10526[gw16] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 10527tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10528tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 10529tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 10530[gw30] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 10531[gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10532tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10533tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 10534[gw11] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10535tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10536tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 10537[gw29] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 10538tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 10539[gw43] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 10540tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10541[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10542tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10543[gw40] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 10544[gw37] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10545tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10546tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10547tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10548tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10549tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 10550[gw33] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 10551tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10552[gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10553tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10554tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10555[gw34] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10556tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10557[gw24] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10558tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10559[gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10560[gw11] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10561tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10562[gw16] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10563tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10564[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10565tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10566[gw22] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 10567tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10568[gw30] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10569tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10570tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 10571[gw37] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10572tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10573[gw9] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 10574tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10575[gw40] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10576tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10577[gw29] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10578tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10579[gw33] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10580tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10581[gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10582tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10583[gw24] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10584tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10585[gw22] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10586tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10587[gw43] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10588tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10589[gw34] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10590tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10591[gw37] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10592[gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10593[gw16] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10594tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10595[gw30] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10596tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10597tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 10598[gw11] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10599[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10600[gw43] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10601tests/shared/test_uri_template.py::test_match_escapes_template_literals 10602[gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10603[gw20] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 10604tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10605[gw29] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10606tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10607tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10608[gw22] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10609tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10610tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10611[gw33] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10612tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10613tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10614[gw24] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10615[gw35] [ 89%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10616[gw40] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10617tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10618[gw47] [ 89%] PASSED tests/shared/test_uri_template.py::test_match_escapes_template_literals 10619tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10620[gw16] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10621[gw34] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10622tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10623tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10624tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10625[gw30] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10626tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10627[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10628tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10629[gw17] [ 89%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10630[gw43] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10631[gw18] [ 89%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10632tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10633[gw38] [ 89%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10634[gw33] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10635tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10636[gw20] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10637tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10638[gw39] [ 89%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 10639[gw29] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10640tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10641[gw40] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10642tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10643tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10644[gw22] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10645tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10646tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10647[gw14] [ 89%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10648[gw3] [ 89%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10649[gw13] [ 89%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10650[gw18] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10651tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10652tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10653tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10654tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10655[gw35] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10656tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10657[gw47] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10658tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10659[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10660[gw20] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10661tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10662[gw17] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10663tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10664[gw38] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10665[gw39] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10666tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10667tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10668[gw47] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10669[gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10670[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10671[gw18] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10672tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10673tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10674[gw31] [ 89%] PASSED tests/test_examples.py::test_direct_call_tool_result_return 10675[gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10676tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10677tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10678tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10679[gw35] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10680[gw20] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10681tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10682[gw17] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10683tests/test_examples.py::test_desktop 10684tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10685[gw38] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10686tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10687[gw39] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10688tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10689tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10690tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10691tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10692tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10693[gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10694[gw47] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10695tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10696[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10697tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10698[gw18] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10699tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10700tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10701[gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10702tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10703tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10704[gw35] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10705[gw17] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10706[gw38] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10707tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10708tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10709[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10710tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10711[gw21] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10712tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10713tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10714[gw44] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10715tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10716tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10717[gw14] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10718tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10719[gw39] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10720tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10721tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10722tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10723tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10724tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10725[gw26] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10726tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10727[gw46] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10728tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10729tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10730[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10731tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10732[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10733[gw13] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10734[gw45] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10735tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10736tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10737[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10738[gw25] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10739[gw19] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10740tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10741[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10742tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10743tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10744[gw23] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10745tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10746tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10747[gw21] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10748tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10749[gw28] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10750tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10751[gw42] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10752tests/test_types.py::test_sampling_message_with_assistant_role 10753[gw26] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10754tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10755[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10756tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10757[gw44] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10758tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10759tests/test_examples.py::test_simple_echo 10760[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10761tests/test_types.py::test_tool_use_content 10762[gw2] [ 90%] PASSED tests/test_types.py::test_tool_use_content 10763tests/test_types.py::test_tool_result_content 10764[gw2] [ 90%] PASSED tests/test_types.py::test_tool_result_content 10765[gw39] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10766[gw27] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10767tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10768[gw41] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10769tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10770[gw41] [ 90%] PASSED tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10771tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10772[gw36] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10773tests/test_types.py::test_create_message_result_with_tool_use 10774[gw36] [ 90%] PASSED tests/test_types.py::test_create_message_result_with_tool_use 10775tests/test_types.py::test_create_message_result_basic 10776[gw36] [ 90%] PASSED tests/test_types.py::test_create_message_result_basic 10777[gw45] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10778tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10779[gw41] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10780[gw19] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10781tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10782[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10783tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10784[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10785tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10786[gw23] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10787tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10788[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10789tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10790[gw25] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10791tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10792[gw28] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10793tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10794[gw44] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10795tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10796[gw46] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10797tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10798[gw46] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10799tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10800tests/test_types.py::test_tool_choice 10801[gw2] [ 90%] PASSED tests/test_types.py::test_tool_choice 10802[gw21] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10803tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10804[gw42] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_assistant_role 10805tests/test_types.py::test_sampling_message_backward_compatibility 10806[gw42] [ 90%] PASSED tests/test_types.py::test_sampling_message_backward_compatibility 10807[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10808tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10809[gw0] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10810tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10811[gw0] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10812[gw27] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10813tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10814[gw27] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10815tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10816tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10817[gw4] [ 90%] PASSED tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10818tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10819[gw4] [ 90%] PASSED tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10820[gw45] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10821tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10822[gw26] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10823tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10824[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10825[gw19] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10826[gw12] [ 90%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 10827tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 10828[gw12] [ 90%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 10829tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 10830[gw12] [ 90%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 10831tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 10832[gw12] [ 90%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 10833tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 10834[gw12] [ 90%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 10835tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 10836[gw12] [ 90%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 10837[gw23] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10838tests/test_types.py::test_jsonrpc_request 10839[gw23] [ 90%] PASSED tests/test_types.py::test_jsonrpc_request 10840[gw25] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10841tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10842[gw5] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10843tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10844[gw5] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10845[gw28] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10846tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10847[gw21] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10848[gw46] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10849tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10850[gw45] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10851[gw44] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10852[gw27] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10853[gw26] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10854[gw25] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10855[gw28] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10856[gw7] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10857tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10858[gw7] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10859tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10860[gw19] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10861tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10862tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10863tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10864tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10865tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10866tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10867tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10868tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10869tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10870tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10871tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10872tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10873[gw1] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10874tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10875tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10876[gw24] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10877[gw10] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10878tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10879tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 10880[gw11] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10881[gw43] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10882tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 10883[gw37] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10884tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 10885tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 10886tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10887[gw16] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10888[gw34] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10889tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10890tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10891[gw29] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10892[gw30] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10893tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10894tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10895tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10896tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10897tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10898[gw24] [ 91%] PASSED tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 10899[gw15] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10900tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 10901[gw15] [ 91%] SKIPPED tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 10902tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 10903[gw15] [ 91%] PASSED tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 10904tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 10905[gw11] [ 91%] SKIPPED tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 10906tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 10907[gw11] [ 91%] SKIPPED tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 10908[gw34] [ 91%] PASSED tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10909tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 10910tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10911[gw43] [ 91%] PASSED tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10912tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10913[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10914tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10915[gw30] [ 91%] PASSED tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10916tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10917[gw30] [ 91%] PASSED tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10918tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10919[gw22] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10920tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10921[gw33] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10922tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10923[gw33] [ 91%] PASSED tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10924tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10925[gw16] [ 91%] PASSED tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10926tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10927[gw9] [ 91%] PASSED tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10928tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10929[gw40] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10930tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10931[gw22] [ 91%] PASSED tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10932tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10933[gw17] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10934tests/types/test_methods.py::test_built_in_maps_are_immutable 10935[gw34] [ 91%] PASSED tests/types/test_methods.py::test_built_in_maps_are_immutable 10936[gw47] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10937tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 10938[gw33] [ 91%] PASSED tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10939[gw40] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10940tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10941[gw24] [ 91%] PASSED tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 10942[gw35] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10943[gw18] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10944tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10945[gw29] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10946tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10947[gw29] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10948[gw22] [ 91%] PASSED tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10949tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10950[gw20] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10951tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10952[gw20] [ 91%] PASSED tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10953tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10954[gw16] [ 91%] PASSED tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10955[gw47] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 10956tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 10957[gw47] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 10958tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10959[gw43] [ 92%] PASSED tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10960[gw18] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10961tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10962[gw17] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10963tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10964[gw35] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10965[gw38] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10966tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10967[gw18] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10968[gw40] [ 92%] PASSED tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10969tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10970[gw17] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10971[gw20] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10972[gw31] [ 92%] PASSED tests/test_examples.py::test_desktop 10973[gw35] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10974[gw38] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10975[gw32] [ 92%] PASSED tests/test_examples.py::test_simple_echo 10976tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10977tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10978tests/test_examples.py::test_docs_examples[README.md:47-63] 10979tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10980tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10981tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10982[gw32] [ 92%] PASSED tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10983[gw38] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10984tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10985[gw32] [ 92%] PASSED tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10986tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10987tests/test_types.py::test_client_capabilities_with_sampling_tools 10988tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10989[gw36] [ 92%] PASSED tests/test_types.py::test_client_capabilities_with_sampling_tools 10990[gw3] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10991tests/test_types.py::test_sampling_message_with_user_role 10992[gw14] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10993[gw41] [ 92%] PASSED tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10994tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10995[gw13] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10996tests/test_types.py::test_create_message_request_params_with_tools 10997[gw31] [ 92%] PASSED tests/test_examples.py::test_docs_examples[README.md:47-63] 10998tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10999[gw2] [ 92%] PASSED tests/test_types.py::test_sampling_message_with_user_role 11000tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 11001tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 11002tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 11003tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 11004[gw41] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 11005[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 11006tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 11007[gw36] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 11008tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 11009[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 11010[gw42] [ 92%] PASSED tests/test_types.py::test_create_message_request_params_with_tools 11011tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 11012[gw39] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 11013[gw13] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 11014tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 11015[gw36] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 11016[gw14] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 11017tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 11018[gw14] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 11019tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 11020tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 11021[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 11022[gw39] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 11023tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 11024[gw42] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 11025[gw0] [ 92%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 11026tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 11027tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 11028[gw13] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 11029[gw39] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 11030tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 11031[gw4] [ 92%] PASSED tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 11032tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 11033tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 11034tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 11035tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 11036tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 11037tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 11038tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 11039tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 11040[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 11041tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 11042tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 11043[gw12] [ 92%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 11044tests/test_types.py::test_method_initialization 11045[gw23] [ 92%] PASSED tests/test_types.py::test_method_initialization 11046tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 11047[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 11048tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 11049tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 11050tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 11051[gw8] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 11052tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 11053[gw23] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 11054tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 11055[gw12] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 11056[gw5] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 11057[gw44] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 11058[gw9] [ 92%] PASSED tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 11059[gw26] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 11060[gw46] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 11061[gw7] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 11062[gw45] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 11063[gw25] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 11064tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 11065[gw8] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 11066[gw27] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 11067tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 11068tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 11069tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 11070[gw28] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 11071tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 11072tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 11073tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 11074tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 11075tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 11076[gw44] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 11077[gw21] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 11078tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 11079[gw21] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 11080[gw46] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 11081[gw19] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 11082tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 11083[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 11084[gw45] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 11085[gw28] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 11086[gw25] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 11087[gw27] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 11088[gw5] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 11089[gw26] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 11090[gw19] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 11091tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 11092tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11093[gw11] [ 93%] SKIPPED tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11094tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 11095tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 11096[gw15] [ 93%] PASSED tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 11097tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 11098tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 11099[gw24] [ 93%] PASSED tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 11100tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 11101[gw33] [ 93%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 11102tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 11103[gw15] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 11104tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 11105tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 11106[gw29] [ 93%] PASSED tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 11107tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 11108[gw34] [ 93%] PASSED tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 11109tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 11110[gw34] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 11111tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 11112tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 11113[gw24] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 11114[gw33] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 11115[gw11] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 11116tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 11117[gw30] [ 93%] PASSED tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 11118tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 11119[gw30] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 11120tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 11121[gw20] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 11122tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 11123tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 11124[gw18] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 11125tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 11126[gw29] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 11127tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 11128[gw17] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 11129tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11130[gw17] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11131[gw16] [ 93%] PASSED tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 11132tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11133[gw16] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11134tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 11135[gw43] [ 93%] PASSED tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 11136tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11137[gw43] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11138[gw40] [ 93%] PASSED tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 11139tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11140[gw40] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11141[gw20] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 11142tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 11143[gw22] [ 93%] PASSED tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 11144tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11145[gw22] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11146tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 11147[gw47] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 11148tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11149[gw47] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11150tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 11151[gw38] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 11152[gw18] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 11153tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 11154[gw35] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 11155tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 11156tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11157tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 11158[gw32] [ 93%] PASSED tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 11159tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11160[gw35] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 11161[gw38] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11162[gw32] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11163tests/test_examples.py::test_docs_examples[README.md:90-103] 11164tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 11165tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 11166tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 11167tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 11168tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 11169tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 11170tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 11171tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 11172tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 11173[gw41] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 11174[gw3] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 11175tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11176[gw2] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 11177[gw14] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 11178tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11179[gw14] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11180[gw0] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 11181tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11182tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 11183[gw42] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 11184tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11185[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11186[gw39] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 11187tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11188tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 11189[gw4] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 11190[gw36] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 11191tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 11192[gw36] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 11193[gw0] [ 94%] PASSED tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11194tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 11195[gw41] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 11196[gw13] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 11197tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11198[gw13] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11199[gw2] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 11200[gw39] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11201[gw31] [ 94%] PASSED tests/test_examples.py::test_docs_examples[README.md:90-103] 11202[gw42] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11203[gw37] [ 94%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11204tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11205tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11206tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 11207tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 11208tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 11209tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 11210[gw31] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11211[gw23] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 11212tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 11213tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 11214tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 11215tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 11216[gw8] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 11217[gw12] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 11218tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 11219tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 11220[gw9] [ 94%] PASSED tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 11221tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 11222[gw46] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 11223[gw44] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 11224[gw21] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 11225tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 11226[gw25] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 11227[gw7] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 11228[gw45] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 11229[gw27] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 11230tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 11231[gw28] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 11232tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 11233[gw26] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 11234tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11235[gw19] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 11236tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 11237tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 11238tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11239tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 11240[gw5] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 11241tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 11242tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 11243[gw15] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 11244[gw11] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 11245[gw33] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11246[gw34] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11247[gw30] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 11248[gw10] [ 94%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 11249tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11250tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 11251[gw24] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 11252tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11253[gw17] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11254tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11255[gw29] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 11256tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11257tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11258[gw16] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11259tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11260tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11261tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11262[gw43] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11263tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 11264tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11265[gw40] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11266tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 11267[gw22] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11268[gw20] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11269[gw47] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11270[gw38] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11271[gw35] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 11272tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11273[gw32] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11274[gw18] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 11275tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11276tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11277tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11278tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11279tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11280tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11281tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11282[gw14] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11283tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 11284[gw3] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11285tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11286tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11287[gw41] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11288[gw42] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11289[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11290[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11291[gw13] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11292tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11293tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11294[gw36] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11295[gw31] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11296tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11297[gw39] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 11298[gw2] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11299tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11300tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11301tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11302tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11303tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11304[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11305[gw23] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11306[gw44] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11307tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11308tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11309tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11310[gw12] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11311[gw21] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11312tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11313tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11314tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11315[gw46] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11316[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11317tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11318tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11319tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11320[gw27] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11321tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11322tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11323tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11324[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11325tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11326[gw30] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11327[gw33] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11328[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11329tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11330[gw19] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11331[gw28] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11332tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11333[gw24] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11334[gw25] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11335tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11336[gw40] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11337[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11338[gw11] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11339tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11340[gw16] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11341[gw45] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11342[gw29] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11343[gw34] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11344tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11345[gw43] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11346tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11347[gw38] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11348tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11349tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11350tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11351tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11352tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11353[gw32] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11354tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11355[gw17] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11356tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11357tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11358tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11359[gw37] [ 95%] PASSED tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11360tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11361[gw26] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11362[gw18] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11363tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11364tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11365tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11366[gw22] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11367[gw47] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11368tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11369tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11370[gw21] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11371[gw35] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11372tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11373[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11374[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11375tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11376[gw42] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11377tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11378[gw39] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11379tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11380[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11381[gw20] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11382[gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11383tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11384[gw44] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11385[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11386[gw31] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11387[gw36] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11388tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11389[gw41] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11390[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11391[gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11392tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11393tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11394tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11395tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11396tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11397tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11398tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11399tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11400tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11401tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11402tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11403tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11404tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11405tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11406[gw23] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11407[gw27] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11408[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11409[gw30] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11410[gw24] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11411[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11412tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11413[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11414[gw28] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11415[gw19] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11416[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11417tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11418[gw29] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11419tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11420[gw45] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11421[gw33] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11422[gw12] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11423tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11424[gw25] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11425[gw40] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11426[gw11] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11427tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11428[gw16] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11429[gw46] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11430tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11431tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11432tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11433tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11434tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11435[gw43] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11436tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11437tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11438tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11439tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11440[gw38] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11441tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11442tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11443[gw32] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11444tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11445tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11446[gw22] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11447[gw17] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11448tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11449[gw42] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11450[gw47] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11451[gw18] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11452[gw34] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11453tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11454[gw20] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11455tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11456[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11457tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11458[gw44] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11459tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11460[gw21] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11461tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11462[gw39] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11463tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11464[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11465tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11466[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11467[gw26] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11468[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11469[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11470[gw35] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11471tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11472tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11473tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11474tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11475tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11476tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11477tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11478tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11479tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11480tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11481tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11482[gw36] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11483tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11484[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11485[gw13] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11486[gw41] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11487tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11488tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11489[gw31] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11490[gw24] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11491[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11492[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11493[gw29] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11494[gw23] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11495tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11496[gw28] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11497[gw27] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11498[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11499[gw45] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11500tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11501[gw33] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11502tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11503tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11504tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11505tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11506tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11507[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11508tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11509[gw16] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11510[gw12] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11511tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11512[gw19] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11513[gw25] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11514[gw40] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11515tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11516[gw11] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11517[gw46] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11518[gw30] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11519tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11520tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11521tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11522tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11523tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11524tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11525tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11526tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11527tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11528tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11529[gw38] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11530tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11531[gw43] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11532[gw22] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11533[gw42] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11534[gw20] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11535[gw32] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11536tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11537[gw18] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11538[gw47] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11539[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11540[gw34] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11541[gw17] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11542[gw21] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11543tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11544tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11545tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11546tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11547tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11548tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11549tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11550tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11551[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11552[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11553[gw35] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11554[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11555tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11556[gw44] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11557[gw39] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11558tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11559[gw36] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11560tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11561[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11562[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11563[gw37] [ 97%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11564[gw26] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11565[gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11566[gw6] [ 97%] PASSED tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 11567tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11568[gw41] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11569tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 11570tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11571tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11572tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11573tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11574tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11575tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11576tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11577tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11578tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11579[gw31] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11580tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11581[gw24] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11582[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11583tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11584[gw27] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11585[gw29] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11586[gw23] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11587[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11588[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11589[gw45] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11590[gw28] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11591[gw33] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11592tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11593tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11594tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11595tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11596tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11597tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11598tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11599tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11600tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11601[gw12] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11602[gw25] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11603[gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11604tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11605tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11606[gw46] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11607[gw30] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11608tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11609[gw19] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11610[gw16] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11611[gw40] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11612[gw38] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11613tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11614[gw18] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11615tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11616[gw32] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11617tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11618tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11619[gw17] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11620tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11621[gw47] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11622[gw42] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11623tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11624[gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11625tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11626[gw34] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11627[gw20] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11628[gw22] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11629tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11630[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11631tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11632[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11633tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11634[gw35] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11635tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11636[gw44] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11637[gw11] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11638tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11639[gw39] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11640tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11641[gw36] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11642tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11643[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11644tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11645[gw21] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11646tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11647[gw43] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11648tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11649tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11650tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11651tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11652tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11653tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11654[gw10] [ 97%] PASSED tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11655tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11656tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11657tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11658[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11659[gw26] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11660[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11661[gw41] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11662[gw13] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11663[gw29] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11664tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11665[gw31] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11666[gw37] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11667[gw23] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11668[gw24] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11669tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11670tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11671tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11672tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11673tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11674tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11675tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11676tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11677tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11678[gw7] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11679[gw28] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11680tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11681tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11682[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11683tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11684tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11685[gw15] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11686tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11687tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11688[gw38] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11689[gw27] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11690[gw19] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11691[gw40] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11692tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11693[gw32] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11694[gw46] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11695tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11696[gw18] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11697[gw16] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11698[gw30] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11699tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11700[gw14] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11701tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11702[gw47] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11703tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11704[gw34] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11705[gw45] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11706[gw25] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11707[gw5] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11708tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11709[gw42] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11710[gw33] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11711tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11712tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11713tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11714tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11715tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11716[gw20] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11717[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11718[gw4] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11719[gw22] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11720tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11721tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11722[gw11] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11723tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11724tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11725tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11726[gw44] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11727[gw35] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11728tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11729[gw21] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11730tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11731[gw36] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11732tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11733[gw43] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11734tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11735[gw39] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11736tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11737[gw2] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11738tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11739tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11740tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11741tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11742tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11743[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11744[gw13] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11745tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11746[gw41] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11747[gw12] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11748tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11749[gw17] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11750[gw26] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11751[gw31] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11752[gw8] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11753[gw37] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11754tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11755tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11756tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11757tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11758tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11759tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11760tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11761tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11762[gw23] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11763tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11764[gw29] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11765tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11766tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11767[gw24] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11768tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11769tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11770tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11771[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11772tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11773tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11774tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11775[gw7] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11776[gw28] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11777[gw27] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11778tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11779[gw19] [ 98%] PASSED tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11780[gw30] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11781[gw32] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11782[gw47] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11783[gw38] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11784[gw16] [ 99%] PASSED tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11785[gw14] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11786[gw18] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11787[gw34] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11788[gw46] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11789tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11790[gw45] [ 99%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11791tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11792[gw33] [ 99%] PASSED tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11793tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11794[gw15] [ 99%] PASSED tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11795tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11796tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11797tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11798tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11799tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11800[gw5] [ 99%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11801tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11802tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11803tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11804[gw20] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11805tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11806[gw42] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11807tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11808[gw44] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11809tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11810[gw11] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11811[gw4] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11812[gw36] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11813[gw25] [ 99%] PASSED tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11814[gw35] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11815[gw40] [ 99%] PASSED tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11816tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11817tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11818[gw21] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11819[gw3] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11820tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11821[gw43] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11822tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11823[gw2] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11824tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11825[gw22] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11826[gw39] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11827tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11828tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11829[gw0] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11830tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11831[gw12] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11832[gw41] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11833tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11834tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11835[gw30] [ 99%] PASSED tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11836tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11837tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11838tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11839tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11840[gw23] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11841tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11842tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11843tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11844[gw37] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11845tests/types/test_version.py::test_supported_versions_are_known 11846tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11847tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11848[gw16] [ 99%] PASSED tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11849tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11850[gw8] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11851tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11852[gw13] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11853tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11854[gw27] [ 99%] PASSED tests/types/test_version.py::test_supported_versions_are_known 11855[gw14] [ 99%] PASSED tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11856[gw19] [ 99%] PASSED tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11857tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11858[gw29] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11859tests/types/test_version.py::test_known_versions_are_strictly_ordered 11860[gw28] [ 99%] PASSED tests/types/test_version.py::test_known_versions_are_strictly_ordered 11861[gw32] [ 99%] PASSED tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11862tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11863[gw7] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11864[gw31] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11865[gw17] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11866[gw9] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11867[gw26] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11868tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11869[gw18] [ 99%] PASSED tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11870tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11871[gw46] [ 99%] PASSED tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11872[gw24] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11873[gw15] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11874[gw10] [ 99%] PASSED tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11875tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11876[gw10] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11877[gw6] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 11878tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 11879[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 11880tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 11881[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 11882tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 11883[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 11884tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 11885[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 11886tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 11887[gw6] [ 99%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 11888[gw1] [ 99%] PASSED tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 11889tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11890[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11891tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11892[gw1] [100%] PASSED tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 1189311894================= 5904 passed, 8 skipped, 1 xfailed in 25.67s ==================11895Finished executing pytestCheckPhase