nixbot

builds

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

1mac02: building dfs5lpmyfaklk5hxgmhz8by7nj47qzlm-python3.14-mcp-2.3.0.drv2Sourcing python-remove-tests-dir-hook3Sourcing python-catch-conflicts-hook.sh4Sourcing python-remove-bin-bytecode-hook.sh5Sourcing pypa-build-hook6Using pypaBuildPhase7Sourcing python-runtime-deps-check-hook8Using pythonRuntimeDepsCheckHook9Sourcing pypa-install-hook10Using pypaInstallPhase11Sourcing python-imports-check-hook.sh12Using pythonImportsCheckPhase13Sourcing python-metadata-check-hook.sh14Using pythonMetadataCheckPhase15Sourcing python-namespaces-hook16Sourcing python-catch-conflicts-hook.sh17Sourcing pytest-check-hook18Using pytestCheckPhase
unpackPhase
19unpacking source archive /nix/store/prbkdf4kv543ij4r95gk96pykmcqy7xp-source20source root is source21setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "source/uv.lock"
configurePhase
22no configure script, doing nothing
buildPhase
23Executing pypaBuildPhase24Setting UV_DYNAMIC_VERSIONING_BYPASS to 2.3.025Creating a wheel...26pypa build flags: --no-isolation --outdir dist/ --wheel27* Getting build dependencies for wheel...28* Building wheel...29Successfully built mcp-2.3.0-py3-none-any.whl30Finished creating a wheel...31Finished executing pypaBuildPhase
pythonRuntimeDepsCheckHook
32Executing pythonRuntimeDepsCheck33Checking runtime dependencies for mcp-2.3.0-py3-none-any.whl34Finished executing pythonRuntimeDepsCheck
installPhase
35Executing pypaInstallPhase36Successfully installed mcp-2.3.0-py3-none-any.whl37Finished executing pypaInstallPhase
pythonOutputDistPhase
38Executing pythonOutputDistPhase39Finished executing pythonOutputDistPhase
fixupPhase
40checking for references to /nix/var/nix/builds/nix-81996-3907266890/ in /nix/store/bh6fv94mwcck2f6i265xfy1c5n0s39r7-python3.14-mcp-2.3.0-dist...41patching script interpreter paths in /nix/store/bh6fv94mwcck2f6i265xfy1c5n0s39r7-python3.14-mcp-2.3.0-dist42checking for references to /nix/var/nix/builds/nix-81996-3907266890/ in /nix/store/wpvr0i31aad8mfdda82n1cbv0ssfwx2i-python3.14-mcp-2.3.0...43patching script interpreter paths in /nix/store/wpvr0i31aad8mfdda82n1cbv0ssfwx2i-python3.14-mcp-2.3.044stripping (with command strip and flags -S) in /nix/store/wpvr0i31aad8mfdda82n1cbv0ssfwx2i-python3.14-mcp-2.3.0/lib /nix/store/wpvr0i31aad8mfdda82n1cbv0ssfwx2i-python3.14-mcp-2.3.0/bin45Rewriting #!/nix/store/3j0hvszcqcb2vwm5dz0xxfb06cx49k86-python3-3.14.10/bin/python3.14 to #!/nix/store/3j0hvszcqcb2vwm5dz0xxfb06cx49k86-python3-3.14.1046wrapping `/nix/store/wpvr0i31aad8mfdda82n1cbv0ssfwx2i-python3.14-mcp-2.3.0/bin/mcp'...47Executing pythonRemoveTestsDir48Finished executing pythonRemoveTestsDir
installCheckPhase
49no Makefile or custom installCheckPhase, doing nothing
pythonImportsCheckPhase
50Executing pythonImportsCheckPhase51Check whether the following modules can be imported: mcp
pythonMetadataCheckPhase
52Executing pythonMetadataCheckPhase
pytestCheckPhase
53Executing pytestCheckPhase54pytest 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=1055============================= test session starts ==============================56platform darwin -- Python 3.14.10, pytest-9.1.1, pluggy-1.7.057rootdir: /nix/var/nix/builds/nix-81996-3907266890/source58configfile: pyproject.toml59plugins: anyio-4.15.1, examples-0.0.18, inline-snapshot-0.34.2, logfire-4.41.0, asyncio-1.4.1, xdist-3.8.060asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function6110 workers [5913 items] 62scheduling tests via LoadScheduling6364tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 65tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 66tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 67tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 68tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 69tests/client/test_streamable_http.py::test_default_sse_limit_fails_one_large_tool_call_and_keeps_the_session_usable 70tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 71tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 72[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 73[gw4] [ 0%] PASSED tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 74[gw2] [ 0%] PASSED tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 75tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields 76[gw1] [ 0%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 77tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 78tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 79[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields 80tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name 81tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 82[gw3] [ 0%] PASSED tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name 83tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 84[gw2] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 85[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 86[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 87tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 88tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 89tests/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] 90[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 91tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 92[gw7] [ 0%] PASSED tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 93[gw1] [ 0%] 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] 94[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 95tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 96tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 97tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 98[gw2] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 99[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 100tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 101[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 102tests/client/test_extension.py::test_result_claim_is_frozen 103[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 104tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 105tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 106[gw3] [ 0%] PASSED tests/client/test_extension.py::test_result_claim_is_frozen 107tests/client/test_extension.py::test_notification_binding_constructs 108[gw3] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_constructs 109[gw6] [ 0%] PASSED tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 110[gw2] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 111tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 112[gw7] [ 0%] PASSED tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 113tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 114[gw3] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 115tests/client/test_extension.py::test_notification_binding_is_frozen 116tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 117tests/docs_src/test_first_steps.py::test_call_the_tool 118[gw3] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_is_frozen 119[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 120tests/client/test_extension.py::test_extension_defaults_advertise_nothing 121tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 122[gw3] [ 0%] PASSED tests/client/test_extension.py::test_extension_defaults_advertise_nothing 123[gw2] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 124[gw4] [ 0%] PASSED tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 125tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 126tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 127[gw7] [ 0%] PASSED tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 128tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 129tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 130[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 131tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 132[gw2] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 133[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 134[gw4] [ 0%] PASSED tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 135tests/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] 136[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 137tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 138tests/client/test_client.py::test_client_is_initialized 139tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 140[gw1] [ 0%] 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] 141tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 142[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 143[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 144tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 145tests/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] 146[gw4] [ 0%] PASSED tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 147tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 148[gw1] [ 0%] 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] 149tests/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] 150[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 151tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 152[gw1] [ 0%] 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] 153tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 154[gw7] [ 0%] PASSED tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 155tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 156[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 157[gw4] [ 0%] PASSED tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 158tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 159[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 160tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 161[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 162tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 163[gw4] [ 0%] PASSED tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 164[gw3] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 165tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 166tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 167tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 168tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 169[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 170tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 171[gw3] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 172[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 173[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 174tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 175[gw4] [ 0%] PASSED tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 176[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 177tests/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] 178tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 179tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 180[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 181tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 182[gw7] [ 0%] PASSED tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 183tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 184[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 185[gw9] [ 0%] PASSED tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 186tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 187[gw4] [ 0%] PASSED tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 188[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 189tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 190tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 191tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 192[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 193tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 194[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 195[gw1] [ 1%] 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] 196tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 197[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 198tests/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] 199[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 200tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 201tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 202[gw1] [ 1%] 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] 203tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 204[gw9] [ 1%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 205[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 206[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 207tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 208tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 209tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 210[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 211tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] 212[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 213[gw1] [ 1%] 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] 214tests/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] 215tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 216[gw9] [ 1%] PASSED tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 217[gw1] [ 1%] 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] 218tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 219tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 220[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 221tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 222[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 223tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 224tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 225[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 226[gw4] [ 1%] PASSED tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 227tests/client/test_session.py::test_era_neutral_properties_after_discover 228tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 229[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 230[gw9] [ 1%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 231tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 232tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 233[gw6] [ 1%] PASSED tests/docs_src/test_first_steps.py::test_call_the_tool 234[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 235[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 236tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 237tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 238tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 239[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 240[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 241tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 242tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 243[gw9] [ 1%] PASSED tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 244[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 245tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 246[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 247tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 248tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 249[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 250[gw6] [ 1%] PASSED tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 251tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 252[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 253tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 254tests/docs_src/test_first_steps.py::test_read_the_resource_template 255[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 256tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 257[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 258[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 259tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 260tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 261[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 262[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 263tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 264tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 265[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 266[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 267tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 268tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 269[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 270[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 271tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 272tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 273[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 274[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 275[gw6] [ 1%] PASSED tests/docs_src/test_first_steps.py::test_read_the_resource_template 276tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 277tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 278[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 279tests/docs_src/test_first_steps.py::test_get_the_prompt 280[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 281tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 282tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 283[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 284tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 285[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 286tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 287[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 288tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 289[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 290[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 291tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 292tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 293[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 294tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 295[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 296tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 297[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 298[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 299tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 300tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 301[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 302tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 303[gw3] [ 1%] PASSED tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 304[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 305tests/client/test_extension.py::test_advertise_serves_captured_settings 306[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 307tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 308tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 309[gw3] [ 2%] PASSED tests/client/test_extension.py::test_advertise_serves_captured_settings 310[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 311tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 312[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 313tests/cli/test_claude.py::test_generates_uv_run_command 314tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 315[gw2] [ 2%] PASSED tests/client/test_client.py::test_client_is_initialized 316tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 317tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 318[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_generates_uv_run_command 319tests/cli/test_claude.py::test_file_spec_without_object_suffix 320[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 321[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_file_spec_without_object_suffix 322[gw6] [ 2%] PASSED tests/docs_src/test_first_steps.py::test_get_the_prompt 323tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 324tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 325tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 326[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 327tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 328[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 329[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 330tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 331tests/cli/test_claude.py::test_with_editable_adds_flag 332[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 333tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 334[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_with_editable_adds_flag 335[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 336tests/cli/test_claude.py::test_env_vars_written 337tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 338[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 339tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 340[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_env_vars_written 341tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 342[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 343tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 344[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 345tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 346[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 347[gw4] [ 2%] PASSED tests/client/test_session.py::test_era_neutral_properties_after_discover 348tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 349[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 350tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 351[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 352[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 353tests/cli/test_claude.py::test_other_servers_preserved 354tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 355tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 356[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_other_servers_preserved 357tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 358[gw4] [ 2%] PASSED tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 359tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 360[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 361[gw6] [ 2%] PASSED tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 362[gw2] [ 2%] PASSED tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 363[gw4] [ 2%] PASSED tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 364tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 365tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 366tests/client/test_client.py::test_client_with_simple_server 367[gw6] [ 2%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 368[gw2] [ 2%] PASSED tests/client/test_client.py::test_client_with_simple_server 369[gw4] [ 2%] PASSED tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 370tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 371tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 372tests/client/test_client.py::test_client_send_ping 373[gw3] [ 2%] PASSED tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 374[gw4] [ 2%] PASSED tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 375tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 376tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 377[gw6] [ 2%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 378tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 379[gw3] [ 2%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 380[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 381tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 382tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 383[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 384[gw3] [ 2%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 385tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 386tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 387[gw4] [ 2%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 388[gw2] [ 2%] PASSED tests/client/test_client.py::test_client_send_ping 389[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 390[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 391tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 392tests/client/test_client.py::test_client_list_tools 393tests/cli/test_claude.py::test_raises_when_config_dir_missing 394tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 395[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_raises_when_config_dir_missing 396tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 397tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 398[gw3] [ 2%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 399[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 400tests/cli/test_claude.py::test_get_uv_path[None-uv] 401[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 402[gw5] [ 2%] PASSED tests/client/test_streamable_http.py::test_default_sse_limit_fails_one_large_tool_call_and_keeps_the_session_usable 403[gw4] [ 2%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 404tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 405[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_get_uv_path[None-uv] 406tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 407[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 408tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification 409tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 410tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 411tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 412[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 413[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 414[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 415tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 416tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 417tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 418[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 419tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 420[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 421[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 422[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 423tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 424tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 425[gw3] [ 2%] PASSED tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 426[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 427tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 428tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 429[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 430tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 431[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 432[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 433tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 434[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 435[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 436tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 437tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 438[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 439[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 440tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 441tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 442[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 443tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 444[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 445[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 446tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 447tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 448[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 449tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 450[gw2] [ 3%] PASSED tests/client/test_client.py::test_client_list_tools 451[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 452tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 453tests/client/test_client.py::test_client_call_tool 454[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 455[gw7] [ 3%] PASSED tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 456[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 457tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 458tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 459tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 460tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 461[gw7] [ 3%] PASSED tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 462tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 463[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 464[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 465[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 466tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 467[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 468tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 469tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 470[gw7] [ 3%] PASSED tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 471tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 472[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 473tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 474tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 475[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 476[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 477tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 478tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 479[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 480[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 481tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 482[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 483[gw7] [ 3%] PASSED tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 484tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 485tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 486tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 487[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 488tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 489[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 490tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 491[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 492tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 493[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 494tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 495[gw9] [ 3%] PASSED tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 496[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 497tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 498tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 499[gw7] [ 3%] PASSED tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 500[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 501tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 502[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 503tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 504tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 505[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 506tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 507[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 508tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 509[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 510tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 511[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 512[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 513tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 514[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 515[gw7] [ 3%] PASSED tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 516tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 517tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 518[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 519tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 520[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 521tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 522tests/client/test_input_required.py::test_default_max_rounds_constant 523[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 524tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 525[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_default_max_rounds_constant 526[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 527tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 528[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 529tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 530[gw9] [ 3%] PASSED tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 531tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 532[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 533tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 534[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 535[gw9] [ 3%] PASSED tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 536tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 537tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text 538tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 539[gw4] [ 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] 540tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 541[gw9] [ 3%] PASSED tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text 542tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources 543[gw4] [ 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] 544[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 545tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 546[gw3] [ 4%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 547tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 548tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 549[gw4] [ 4%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 550[gw9] [ 4%] PASSED tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources 551tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 552[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 553tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 554tests/cli/test_utils.py::test_parse_file_path_missing 555[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_parse_file_path_missing 556tests/cli/test_utils.py::test_parse_file_exit_on_dir 557[gw4] [ 4%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 558tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 559[gw5] [ 4%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification 560tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages 561[gw9] [ 4%] PASSED tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 562tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 563[gw4] [ 4%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 564[gw3] [ 4%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 565[gw9] [ 4%] PASSED tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 566tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 567tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 568tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 569[gw4] [ 4%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 570tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 571[gw9] [ 4%] PASSED tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 572tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 573[gw4] [ 4%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 574[gw6] [ 4%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 575tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 576tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 577[gw9] [ 4%] PASSED tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 578tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 579[gw4] [ 4%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 580[gw5] [ 4%] PASSED tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages 581tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] 582tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 583tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 584[gw6] [ 4%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 585[gw9] [ 4%] PASSED tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 586tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 587tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 588[gw4] [ 4%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] 589tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 590[gw9] [ 4%] PASSED tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 591[gw4] [ 4%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 592tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits 593[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 594tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 595[gw6] [ 4%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 596tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 597[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 598tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 599tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 600[gw9] [ 4%] PASSED tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 601tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 602[gw7] [ 4%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 603[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_parse_file_exit_on_dir 604tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 605tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 606[gw6] [ 4%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 607[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 608tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 609tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 610[gw9] [ 4%] PASSED tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 611tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 612[gw9] [ 4%] PASSED tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 613[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 614tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 615tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 616[gw9] [ 4%] PASSED tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 617[gw6] [ 4%] PASSED tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 618[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 619tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 620[gw7] [ 4%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 621tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 622tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 623[gw6] [ 4%] PASSED tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 624[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 625tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 626[gw7] [ 4%] PASSED tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 627tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 628tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 629[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 630[gw5] [ 4%] PASSED tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 631[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 632tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 633[gw2] [ 4%] PASSED tests/client/test_client.py::test_client_call_tool 634tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 635[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 636tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 637tests/client/test_client.py::test_read_resource 638[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 639tests/cli/test_utils.py::test_get_npx_unix_like 640tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 641[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_get_npx_unix_like 642[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 643[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 644tests/cli/test_utils.py::test_get_npx_windows 645tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 646tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 647[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_get_npx_windows 648[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 649[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 650tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 651tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 652[gw5] [ 4%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 653tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 654tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 655[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 656tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 657[gw0] [ 4%] PASSED tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 658[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 659[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 660tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 661tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 662tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 663[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 664[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 665[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 666tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 667tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 668tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 669[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 670tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 671[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 672[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 673tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 674tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 675[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 676tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 677[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 678[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 679[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 680tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 681[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 682tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 683[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 684tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add-add-False] 685tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 686[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 687[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 688[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add-add-False] 689tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 690tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 691tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 692[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 693[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 694tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[tool with spaces-tool with spaces-False] 695[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 696tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 697[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[tool with spaces-tool with spaces-False] 698tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[ add-=?base64?IGFkZA==?=-True] 699tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 700[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[ add-=?base64?IGFkZA==?=-True] 701tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add -=?base64?YWRkIA==?=-True] 702[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 703[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add -=?base64?YWRkIA==?=-True] 704tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[r\xe9sum\xe9-=?base64?csOpc3Vtw6k=?=-True] 705tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 706[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[r\xe9sum\xe9-=?base64?csOpc3Vtw6k=?=-True] 707tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[a\r\nb-=?base64?YQ0KYg==?=-True] 708[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 709[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[a\r\nb-=?base64?YQ0KYg==?=-True] 710[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 711tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[=?base64?Zm9v?=-=?base64?PT9iYXNlNjQ/Wm05dj89?=-True] 712tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 713tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 714[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[=?base64?Zm9v?=-=?base64?PT9iYXNlNjQ/Wm05dj89?=-True] 715tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 716[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 717tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 718[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 719tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 720[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 721tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 722[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 723tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 724[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 725[gw2] [ 5%] PASSED tests/client/test_client.py::test_read_resource 726[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 727tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 728tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 729tests/client/test_client.py::test_read_resource_error_propagates 730[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 731tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 732tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 733[gw2] [ 5%] PASSED tests/client/test_client.py::test_read_resource_error_propagates 734[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 735[gw6] [ 5%] PASSED tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 736[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 737tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 738tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 739tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 740[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 741tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 742tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 743[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 744[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 745tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 746[gw2] [ 5%] PASSED tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 747[gw3] [ 5%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 748tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 749[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 750tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 751tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 752tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 753[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 754tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 755[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 756tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 757[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 758tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 759[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 760tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 761[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 762tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 763[gw2] [ 5%] PASSED tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 764[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 765[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 766[gw6] [ 5%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 767tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 768tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 769tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 770[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 771tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 772tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 773[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 774tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 775[gw2] [ 5%] PASSED tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 776[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 777[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 778tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 779tests/client/test_client.py::test_get_prompt 780tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 781[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 782tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 783[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 784[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 785[gw1] [ 6%] PASSED tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 786tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 787[gw6] [ 6%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 788tests/client/test_auth.py::test_union_scopes[dedup] 789[gw7] [ 6%] PASSED tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 790tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 791[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 792[gw1] [ 6%] PASSED tests/client/test_auth.py::test_union_scopes[dedup] 793tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 794tests/client/test_auth.py::test_union_scopes[no-previous] 795tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial001] 796[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 797[gw1] [ 6%] PASSED tests/client/test_auth.py::test_union_scopes[no-previous] 798tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 799tests/client/test_auth.py::test_union_scopes[no-new] 800[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 801[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 802tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 803tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 804tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 805[gw3] [ 6%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 806[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 807tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 808tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 809[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 810[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 811tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 812tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 813[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 814tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 815[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 816tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 817[gw7] [ 6%] PASSED tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 818[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 819tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 820[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 821tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 822[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 823tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 824tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 825[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 826tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 827[gw7] [ 6%] PASSED tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 828[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 829tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 830[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 831tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 832tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 833[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 834tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 835[gw6] [ 6%] PASSED tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial001] 836[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 837[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 838tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 839tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial002] 840tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 841[gw7] [ 6%] PASSED tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 842[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 843tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 844tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 845[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 846tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 847tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 848[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 849[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 850tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 851tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 852[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 853tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 854[gw3] [ 6%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 855[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 856tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 857[gw7] [ 6%] PASSED tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 858[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 859[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 860tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 861tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 862tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 863[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 864tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 865tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 866[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 867[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 868tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 869[gw6] [ 6%] PASSED tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial002] 870tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 871tests/docs_src/test_header_parameters.py::test_a_call_whose_header_and_body_disagree_is_rejected 872[gw7] [ 6%] PASSED tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 873[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 874tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 875[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 876tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 877tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 878[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 879tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 880[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 881tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 882[gw9] [ 6%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 883[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 884[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 885tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 886[gw7] [ 6%] PASSED tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 887tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 888tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 889[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 890tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 891tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 892[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 893[gw3] [ 6%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 894tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 895[gw7] [ 6%] PASSED tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 896[gw6] [ 6%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_whose_header_and_body_disagree_is_rejected 897tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 898tests/docs_src/test_header_parameters.py::test_a_client_that_has_not_listed_the_tool_is_rejected_then_lists_and_resends_once 899tests/client/test_list_roots_callback.py::test_list_roots_callback 900[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 901[gw1] [ 7%] PASSED tests/client/test_auth.py::test_union_scopes[no-new] 902tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 903[gw7] [ 7%] PASSED tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 904tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 905tests/client/test_auth.py::test_union_scopes[both-empty] 906[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 907tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 908[gw7] [ 7%] PASSED tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 909tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 910[gw6] [ 7%] PASSED tests/docs_src/test_header_parameters.py::test_a_client_that_has_not_listed_the_tool_is_rejected_then_lists_and_resends_once 911tests/docs_src/test_header_parameters.py::test_a_legacy_http_connection_ignores_the_annotation 912[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 913tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 914[gw7] [ 7%] PASSED tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 915[gw1] [ 7%] PASSED tests/client/test_auth.py::test_union_scopes[both-empty] 916tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 917tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 918[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 919[gw3] [ 7%] PASSED tests/client/test_list_roots_callback.py::test_list_roots_callback 920[gw7] [ 7%] PASSED tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 921tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 922tests/client/test_logging_callback.py::test_logging_callback 923tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 924[gw1] [ 7%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 925tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 926[gw1] [ 7%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 927[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 928tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 929tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 930[gw1] [ 7%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 931tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 932[gw4] [ 7%] PASSED tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits 933[gw1] [ 7%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 934tests/client/test_session.py::test_call_tool_rejects_a_null_structured_content_the_output_schema_forbids 935[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 936[gw9] [ 7%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 937tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 938tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 939tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 940[gw1] [ 7%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 941tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 942[gw4] [ 7%] PASSED tests/client/test_session.py::test_call_tool_rejects_a_null_structured_content_the_output_schema_forbids 943[gw1] [ 7%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 944tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 945tests/client/test_session.py::test_call_tool_reports_an_absent_structured_content_as_missing_even_when_null_is_permitted 946[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 947tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 948[gw1] [ 7%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 949tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 950[gw4] [ 7%] PASSED tests/client/test_session.py::test_call_tool_reports_an_absent_structured_content_as_missing_even_when_null_is_permitted 951[gw1] [ 7%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 952tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 953tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 954[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 955[gw1] [ 7%] PASSED tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 956tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 957[gw9] [ 7%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 958tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 959tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 960[gw4] [ 7%] PASSED tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 961tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 962[gw1] [ 7%] PASSED tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 963tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 964[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 965tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 966[gw1] [ 7%] PASSED tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 967tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 968[gw4] [ 7%] PASSED tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 969[gw1] [ 7%] PASSED tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 970tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 971[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 972tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 973tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 974[gw9] [ 7%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 975tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 976[gw1] [ 7%] PASSED tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 977tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 978[gw4] [ 7%] PASSED tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 979tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 980[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 981tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] 982[gw9] [ 7%] PASSED tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 983[gw1] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 984[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 985tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 986tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 987tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 988[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 989tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 990[gw4] [ 7%] PASSED tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 991[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] 992[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 993tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] 994tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 995tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 996[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 997tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 998[gw1] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 999[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 1000tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 1001[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 1002tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 1003tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 1004[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 1005tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 1006[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] 1007tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 1008[gw4] [ 7%] PASSED tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 1009[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 1010[gw1] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 1011tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 1012[gw9] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 1013tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1014tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 1015[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 1016tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 1017[gw4] [ 7%] PASSED tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 1018[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1019tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 1020tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1021[gw9] [ 8%] PASSED tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 1022tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 1023[gw7] [ 8%] PASSED tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 1024[gw5] [ 8%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 1025tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 1026tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 1027[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1028tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1029[gw4] [ 8%] PASSED tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 1030tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 1031[gw7] [ 8%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 1032[gw4] [ 8%] PASSED tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 1033tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 1034[gw5] [ 8%] PASSED tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 1035[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1036tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 1037tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 1038[gw9] [ 8%] PASSED tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 1039tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1040[gw4] [ 8%] PASSED tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 1041tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 1042tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 1043[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1044[gw4] [ 8%] PASSED tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 1045[gw7] [ 8%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 1046tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1047tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 1048tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 1049[gw5] [ 8%] PASSED tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 1050tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 1051[gw1] [ 8%] PASSED tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1052tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1053[gw4] [ 8%] PASSED tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 1054[gw9] [ 8%] PASSED tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 1055tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 1056tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 1057[gw9] [ 8%] PASSED tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 1058tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 1059[gw4] [ 8%] PASSED tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 1060tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 1061[gw1] [ 8%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1062[gw7] [ 8%] PASSED tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 1063[gw5] [ 8%] PASSED tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 1064tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1065[gw4] [ 8%] PASSED tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 1066tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 1067tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 1068tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] 1069[gw9] [ 8%] PASSED tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 1070tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 1071tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 1072[gw1] [ 8%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1073tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1074[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 1075tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 1076[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 1077tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 1078[gw1] [ 8%] PASSED tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1079[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 1080tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 1081[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 1082tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 1083[gw6] [ 8%] PASSED tests/docs_src/test_header_parameters.py::test_a_legacy_http_connection_ignores_the_annotation 1084tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1085[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 1086tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 1087tests/docs_src/test_header_parameters.py::test_a_connection_that_is_not_http_ignores_the_annotation 1088[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 1089tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 1090[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 1091tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 1092[gw9] [ 8%] PASSED tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 1093[gw1] [ 8%] PASSED tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1094[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 1095tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1096tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 1097tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1098[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1099tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1100[gw1] [ 8%] PASSED tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1101[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1102tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1103tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1104[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1105tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1106[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1107tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1108[gw1] [ 8%] PASSED tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1109[gw6] [ 8%] PASSED tests/docs_src/test_header_parameters.py::test_a_connection_that_is_not_http_ignores_the_annotation 1110tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1111[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1112tests/docs_src/test_header_parameters.py::test_int_and_bool_arguments_can_be_marked 1113tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1114[gw4] [ 8%] PASSED tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 1115[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1116tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 1117[gw9] [ 8%] PASSED tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 1118[gw1] [ 8%] PASSED tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1119[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 1120tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 1121tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 1122tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1123[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 1124tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 1125[gw1] [ 8%] PASSED tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1126tests/docs_src/test_shape.py::test_private_mcp_import_detector 1127[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 1128tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1129tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1130[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1131tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1132[gw4] [ 8%] PASSED tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 1133[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1134[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_private_mcp_import_detector 1135[gw1] [ 9%] PASSED tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1136tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1137tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 1138tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1139[gw6] [ 9%] PASSED tests/docs_src/test_header_parameters.py::test_int_and_bool_arguments_can_be_marked 1140tests/docs_src/test_shape.py::test_retired_name_detector 1141[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1142tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1143tests/docs_src/test_header_parameters.py::test_any_other_type_is_refused_when_the_tool_is_registered 1144[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1145[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_retired_name_detector 1146[gw1] [ 9%] PASSED tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1147tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1148tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 1149tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1150[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 1151tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 1152[gw1] [ 9%] PASSED tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1153[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 1154tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 1155tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1156[gw6] [ 9%] PASSED tests/docs_src/test_header_parameters.py::test_any_other_type_is_refused_when_the_tool_is_registered 1157[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 1158tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1159tests/docs_src/test_header_parameters.py::test_a_plain_optional_argument_is_refused_and_the_spelled_out_schema_registers 1160[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 1161[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1162[gw1] [ 9%] PASSED tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1163tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1164tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1165[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1166tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1167[gw1] [ 9%] PASSED tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1168[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1169tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1170tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1171tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 1172[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1173tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1174[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1175tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1176[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1177tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1178[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1179tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1180[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1181[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1182tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1183[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1184tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1185tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1186[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1187tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1188[gw1] [ 9%] PASSED tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1189tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1190[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1191tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 1192[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1193[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 1194tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1195tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 1196[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 1197tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 1198[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 1199tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 1200[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 1201tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 1202[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 1203tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 1204[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 1205tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 1206[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 1207tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1208[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1209[gw6] [ 9%] PASSED tests/docs_src/test_header_parameters.py::test_a_plain_optional_argument_is_refused_and_the_spelled_out_schema_registers 1210[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 1211tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1212tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 1213tests/docs_src/test_header_parameters.py::test_the_low_level_server_serves_an_invalid_annotation_and_a_2026_client_leaves_the_tool_out 1214[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 1215tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 1216[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 1217[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1218[gw3] [ 9%] PASSED tests/client/test_logging_callback.py::test_logging_callback 1219tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 1220tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1221[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 1222tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 1223tests/client/test_notification_response.py::test_non_compliant_notification_response 1224[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 1225tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 1226[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1227[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 1228tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial003.py] 1229tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1230[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial003.py] 1231tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_anyio.py] 1232[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_anyio.py] 1233tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_asyncio.py] 1234[gw6] [ 9%] PASSED tests/docs_src/test_header_parameters.py::test_the_low_level_server_serves_an_invalid_annotation_and_a_2026_client_leaves_the_tool_out 1235[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_asyncio.py] 1236[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1237tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_trio.py] 1238tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial002] 1239[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_trio.py] 1240tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1241tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial005.py] 1242[gw3] [ 9%] PASSED tests/client/test_notification_response.py::test_non_compliant_notification_response 1243[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial005.py] 1244tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial006.py] 1245tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1246[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial006.py] 1247tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial007.py] 1248[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial007.py] 1249[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1250tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/testing/tutorial001.py] 1251tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1252[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/testing/tutorial001.py] 1253tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial001.py] 1254[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial001.py] 1255[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1256tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1257[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1258[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1259tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1260tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1261[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 1262[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1263tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1264[gw3] [ 10%] PASSED tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1265[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1266tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1267tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1268[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1269tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1270[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1271[gw6] [ 10%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial002] 1272tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial003] 1273tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] 1274[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] 1275tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] 1276tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1277[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1278tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1279[gw3] [ 10%] PASSED tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1280[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1281tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1282tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1283tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial002.py] 1284[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1285[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1286tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1287tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1288[gw3] [ 10%] PASSED tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1289[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial002.py] 1290[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1291tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1292tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial003.py] 1293tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1294[gw6] [ 10%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial003] 1295[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial003.py] 1296tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial004.py] 1297tests/docs_src/test_header_parameters.py::test_the_schema_the_lookup_returns_is_the_one_the_header_is_checked_against 1298[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1299[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial004.py] 1300tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial005.py] 1301tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1302[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial005.py] 1303tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial001.py] 1304[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1305[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1306tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1307tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1308[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1309[gw3] [ 10%] PASSED tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1310tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1311[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1312[gw5] [ 10%] PASSED tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 1313[gw7] [ 10%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] 1314tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[legacy] 1315tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1316tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 1317[gw6] [ 10%] PASSED tests/docs_src/test_header_parameters.py::test_the_schema_the_lookup_returns_is_the_one_the_header_is_checked_against 1318[gw5] [ 10%] PASSED tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 1319[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1320tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 1321tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 1322tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1323[gw3] [ 10%] PASSED tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1324tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1325[gw6] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 1326tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 1327[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1328tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1329[gw6] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 1330tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 1331[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1332[gw3] [ 10%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1333tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1334[gw6] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 1335tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1336tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 1337[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial001.py] 1338[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1339tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial002.py] 1340[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] 1341[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1342[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial002.py] 1343tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial003.py] 1344tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1345[gw6] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 1346tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 1347[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial003.py] 1348tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial004.py] 1349[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial004.py] 1350tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1351tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial005.py] 1352tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1353[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial005.py] 1354tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial006.py] 1355[gw6] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 1356[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial006.py] 1357tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial007.py] 1358tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 1359[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1360[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial007.py] 1361tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial008.py] 1362[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial008.py] 1363[gw3] [ 10%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1364tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1365tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial001.py] 1366[gw6] [ 10%] PASSED tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 1367[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial001.py] 1368tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected 1369tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial002.py] 1370[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1371tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1372tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1373[gw6] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected 1374[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1375[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1376[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1377tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1378tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1379tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected 1380tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1381[gw6] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected 1382[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1383tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected 1384tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 1385[gw1] [ 11%] PASSED tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1386tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1387[gw6] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected 1388tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile 1389[gw3] [ 11%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1390[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 1391[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1392tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1393tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 1394[gw6] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile 1395tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1396tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request 1397[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1398tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1399[gw3] [ 11%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1400[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial002.py] 1401tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1402[gw1] [ 11%] PASSED tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1403tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1404tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial003.py] 1405[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1406tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1407[gw3] [ 11%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1408[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 1409tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 1410tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1411[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1412[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial003.py] 1413tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial004.py] 1414tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1415[gw6] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request 1416[gw3] [ 11%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1417[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial004.py] 1418tests/docs_src/test_index.py::test_add_tool 1419tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1420tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial005.py] 1421[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial005.py] 1422[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1423tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/whats_new/tutorial001.py] 1424tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1425[gw6] [ 11%] PASSED tests/docs_src/test_index.py::test_add_tool 1426tests/docs_src/test_index.py::test_greeting_resource_template 1427[gw3] [ 11%] PASSED tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1428[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1429tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1430tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1431[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/whats_new/tutorial001.py] 1432[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1433tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1434[gw6] [ 11%] PASSED tests/docs_src/test_index.py::test_greeting_resource_template 1435tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1436tests/docs_src/test_shape.py::test_every_example_is_included_by_a_page 1437[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1438tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1439[gw1] [ 11%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1440[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1441tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1442tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1443[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1444tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1445[gw0] [ 11%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1446[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1447tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1448tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1449[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1450[gw1] [ 11%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1451tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1452tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1453[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1454tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1455[gw0] [ 11%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1456[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1457tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1458tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1459[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1460[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1461tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1462[gw2] [ 11%] PASSED tests/client/test_client.py::test_get_prompt 1463tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1464[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1465[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1466tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1467tests/client/test_client.py::test_client_session_property_before_enter 1468tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1469[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1470[gw1] [ 11%] PASSED tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1471tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 1472tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1473[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1474tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1475[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 1476tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1477[gw1] [ 11%] PASSED tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1478[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1479tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1480tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1481[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1482tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1483[gw2] [ 11%] PASSED tests/client/test_client.py::test_client_session_property_before_enter 1484[gw1] [ 11%] PASSED tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1485[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1486tests/client/test_client.py::test_client_reentry_raises_runtime_error 1487tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1488tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1489[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1490tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1491[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1492tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1493[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1494tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1495[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1496tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1497[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1498tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1499[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1500[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1501tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1502tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1503[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1504tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1505[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1506tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1507[gw1] [ 12%] PASSED tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1508[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1509tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1510tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1511[gw4] [ 12%] PASSED tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 1512[gw1] [ 12%] PASSED tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1513tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1514tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 1515[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1516tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1517[gw1] [ 12%] PASSED tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1518[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_every_example_is_included_by_a_page 1519tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1520tests/docs_src/test_shape.py::test_every_included_path_exists 1521[gw2] [ 12%] PASSED tests/client/test_client.py::test_client_reentry_raises_runtime_error 1522[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1523[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1524tests/client/test_client.py::test_client_send_progress_notification 1525tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1526tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1527[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1528[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1529tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1530[gw4] [ 12%] PASSED tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 1531tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1532tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 1533[gw1] [ 12%] PASSED tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1534tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1535[gw1] [ 12%] PASSED tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1536[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_every_included_path_exists 1537[gw7] [ 12%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[legacy] 1538tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1539tests/docs_src/test_cancellation.py::test_abandoning_the_call_over_streamable_http_runs_the_cleanup_too[2026-07-28] 1540[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1541[gw1] [ 12%] PASSED tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1542tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1543tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1544[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 1545[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1546tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1547tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1548[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1549[gw4] [ 12%] PASSED tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 1550[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1551tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1552[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1553tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 1554tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1555tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1556[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1557tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1558[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1559tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1560[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1561[gw2] [ 12%] PASSED tests/client/test_client.py::test_client_send_progress_notification 1562tests/client/test_client.py::test_client_subscribe_resource 1563tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1564[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1565[gw4] [ 12%] PASSED tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 1566tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1567tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 1568[gw4] [ 12%] PASSED tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 1569[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1570[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1571tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1572[gw2] [ 12%] PASSED tests/client/test_client.py::test_client_subscribe_resource 1573tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1574tests/client/test_client.py::test_client_unsubscribe_resource 1575tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1576[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1577[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1578[gw1] [ 12%] PASSED tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1579tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1580tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1581tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1582[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1583[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1584tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1585tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1586[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1587[gw2] [ 12%] PASSED tests/client/test_client.py::test_client_unsubscribe_resource 1588[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1589tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1590tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1591tests/client/test_client.py::test_client_set_logging_level 1592[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1593tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1594[gw4] [ 12%] PASSED tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1595[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1596tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client 1597tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1598[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1599[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1600tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1601tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 1602[gw2] [ 12%] PASSED tests/client/test_client.py::test_client_set_logging_level 1603[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 1604[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1605tests/client/test_client.py::test_client_list_resources_with_params 1606tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 1607tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1608[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1609[gw0] [ 13%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 1610tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1611tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 1612tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once 1613[gw3] [ 13%] PASSED tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1614tests/docs_src/test_structured_output.py::test_scalar_return_is_wrapped 1615[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1616[gw0] [ 13%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 1617[gw5] [ 13%] PASSED tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1618tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1619tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1620tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1621[gw0] [ 13%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1622tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1623tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1624[gw4] [ 13%] PASSED tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client 1625[gw0] [ 13%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1626tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1627tests/client/test_session_group.py::test_client_session_group_init 1628[gw0] [ 13%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1629[gw3] [ 13%] PASSED tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1630[gw4] [ 13%] PASSED tests/client/test_session_group.py::test_client_session_group_init 1631tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1632[gw5] [ 13%] PASSED tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1633tests/client/test_session_group.py::test_client_session_group_component_properties 1634tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1635[gw0] [ 13%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1636tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 1637[gw4] [ 13%] PASSED tests/client/test_session_group.py::test_client_session_group_component_properties 1638tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1639tests/client/test_session_group.py::test_client_session_group_call_tool 1640[gw3] [ 13%] PASSED tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 1641[gw6] [ 13%] PASSED tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once 1642tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 1643tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter 1644[gw0] [ 13%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1645tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1646[gw3] [ 13%] PASSED tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 1647tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 1648[gw4] [ 13%] PASSED tests/client/test_session_group.py::test_client_session_group_call_tool 1649[gw0] [ 13%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1650tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1651[gw3] [ 13%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 1652tests/client/test_session_group.py::test_client_session_group_call_tool_forwards_allow_input_required 1653tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 1654[gw4] [ 13%] PASSED tests/client/test_session_group.py::test_client_session_group_call_tool_forwards_allow_input_required 1655[gw3] [ 13%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 1656[gw0] [ 13%] PASSED tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1657[gw6] [ 13%] PASSED tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter 1658[gw1] [ 13%] PASSED tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1659tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 1660tests/client/test_session_group.py::test_client_session_group_connect_to_server 1661tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1662tests/docs_src/test_legacy_clients.py::test_a_legacy_session_is_minted_in_process_and_a_stray_session_id_is_a_404 1663tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1664[gw3] [ 13%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 1665tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 1666[gw0] [ 13%] PASSED tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1667tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1668[gw3] [ 13%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 1669[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1670tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 1671tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1672[gw6] [ 13%] PASSED tests/docs_src/test_legacy_clients.py::test_a_legacy_session_is_minted_in_process_and_a_stray_session_id_is_a_404 1673[gw3] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 1674tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default 1675tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize 1676[gw0] [ 13%] PASSED tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1677[gw1] [ 13%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1678tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1679tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1680[gw3] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize 1681[gw6] [ 13%] PASSED tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default 1682tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises 1683tests/docs_src/test_legacy_clients.py::test_stateless_http_never_mints_a_session 1684[gw0] [ 13%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1685tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1686[gw3] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises 1687[gw1] [ 13%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1688tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] 1689tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1690[gw0] [ 13%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1691tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 1692[gw3] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] 1693[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1694tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] 1695tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1696[gw0] [ 13%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 1697[gw5] [ 13%] PASSED tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1698tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 1699[gw3] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] 1700tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] 1701tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1702[gw0] [ 13%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 1703[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1704tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 1705[gw6] [ 13%] PASSED tests/docs_src/test_legacy_clients.py::test_stateless_http_never_mints_a_session 1706[gw3] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] 1707tests/docs_src/test_legacy_clients.py::test_stateless_http_kills_the_legacy_back_channel_and_only_the_legacy_one 1708tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop 1709[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1710[gw3] [ 13%] PASSED tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop 1711[gw5] [ 13%] PASSED tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1712tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1713tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts 1714tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1715[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1716[gw3] [ 13%] PASSED tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts 1717tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1718[gw2] [ 13%] PASSED tests/client/test_client.py::test_client_list_resources_with_params 1719tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] 1720[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1721[gw5] [ 13%] PASSED tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1722tests/client/test_client.py::test_client_list_resource_templates 1723tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1724tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1725[gw3] [ 13%] PASSED tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] 1726[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1727tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1728tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[no-data] 1729[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1730tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1731[gw3] [ 14%] PASSED tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[no-data] 1732[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1733[gw5] [ 14%] PASSED tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1734tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1735tests/client/test_probe.py::test_handshake_unsupported_reprobes_at_most_once 1736tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1737[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1738tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 1739[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 1740[gw3] [ 14%] PASSED tests/client/test_probe.py::test_handshake_unsupported_reprobes_at_most_once 1741tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] 1742tests/client/test_probe.py::test_any_other_handshake_error_propagates_unchanged 1743[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] 1744tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] 1745[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] 1746[gw3] [ 14%] PASSED tests/client/test_probe.py::test_any_other_handshake_error_propagates_unchanged 1747[gw5] [ 14%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1748tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[httpx2-connect-error] 1749[gw2] [ 14%] PASSED tests/client/test_client.py::test_client_list_resource_templates 1750tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1751tests/client/test_client.py::test_list_prompts 1752[gw3] [ 14%] PASSED tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[httpx2-connect-error] 1753tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[anyio-closed-resource] 1754[gw3] [ 14%] PASSED tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[anyio-closed-resource] 1755tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] 1756[gw5] [ 14%] PASSED tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1757tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data0-expected0] 1758tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 1759[gw3] [ 14%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data0-expected0] 1760[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] 1761tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data1-expected1] 1762tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] 1763[gw5] [ 14%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 1764[gw8] [ 14%] PASSED tests/docs_src/test_structured_output.py::test_scalar_return_is_wrapped 1765tests/docs_src/test_structured_output.py::test_basemodel_is_the_schema 1766[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] 1767tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] 1768tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 1769[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] 1770tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] 1771[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] 1772tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] 1773[gw2] [ 14%] PASSED tests/client/test_client.py::test_list_prompts 1774[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] 1775tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] 1776tests/client/test_client.py::test_complete_with_prompt_reference 1777[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] 1778tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 1779[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 1780tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1781[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 1782tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial001.py] 1783[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial001.py] 1784tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds 1785[gw3] [ 14%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data1-expected1] 1786tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[None-None] 1787tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial002.py] 1788[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial002.py] 1789tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial003.py] 1790[gw3] [ 14%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[None-None] 1791[gw8] [ 14%] PASSED tests/docs_src/test_structured_output.py::test_basemodel_is_the_schema 1792tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data3-None] 1793[gw2] [ 14%] PASSED tests/client/test_client.py::test_complete_with_prompt_reference 1794tests/docs_src/test_structured_output.py::test_typeddict_produces_the_same_schema 1795tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport 1796[gw3] [ 14%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data3-None] 1797tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[not a dict-None] 1798[gw2] [ 14%] PASSED tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport 1799[gw3] [ 14%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[not a dict-None] 1800tests/client/test_client.py::test_client_uses_transport_directly 1801[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds 1802[gw4] [ 14%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server 1803tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce 1804tests/client/test_session_group.py::test_client_session_group_connect_to_server_with_name_hook 1805[gw8] [ 14%] PASSED tests/docs_src/test_structured_output.py::test_typeddict_produces_the_same_schema 1806tests/docs_src/test_structured_output.py::test_dataclass_produces_the_same_schema 1807[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial003.py] 1808tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 1809[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1810[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 1811tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1812tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 1813[gw0] [ 14%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 1814[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 1815[gw8] [ 14%] PASSED tests/docs_src/test_structured_output.py::test_dataclass_produces_the_same_schema 1816[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1817tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 1818tests/docs_src/test_structured_output.py::test_list_return_is_wrapped 1819tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 1820[gw4] [ 14%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server_with_name_hook 1821[gw0] [ 14%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 1822tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1823tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 1824tests/client/test_session_group.py::test_client_session_group_disconnect_from_server 1825[gw0] [ 14%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 1826tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 1827[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 1828[gw0] [ 14%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 1829tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 1830tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 1831[gw1] [ 14%] PASSED tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1832[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 1833tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 1834[gw8] [ 14%] PASSED tests/docs_src/test_structured_output.py::test_list_return_is_wrapped 1835tests/client/test_caching.py::test_store_failures_warn_once_per_burst 1836tests/docs_src/test_structured_output.py::test_dict_str_return_is_not_wrapped 1837[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 1838tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 1839[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 1840[gw1] [ 14%] PASSED tests/client/test_caching.py::test_store_failures_warn_once_per_burst 1841[gw2] [ 14%] PASSED tests/client/test_client.py::test_client_uses_transport_directly 1842tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 1843[gw8] [ 15%] PASSED tests/docs_src/test_structured_output.py::test_dict_str_return_is_not_wrapped 1844tests/client/test_client.py::test_context_propagation 1845tests/docs_src/test_structured_output.py::test_return_value_is_validated_against_the_schema 1846[gw1] [ 15%] PASSED tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 1847tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 1848[gw1] [ 15%] PASSED tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 1849tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 1850[gw4] [ 15%] PASSED tests/client/test_session_group.py::test_client_session_group_disconnect_from_server 1851[gw2] [ 15%] PASSED tests/client/test_client.py::test_context_propagation 1852[gw8] [ 15%] PASSED tests/docs_src/test_structured_output.py::test_return_value_is_validated_against_the_schema 1853tests/client/test_client.py::test_client_auto_mode_probes_discover_then_adopts 1854[gw1] [ 15%] PASSED tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 1855tests/docs_src/test_structured_output.py::test_structured_output_false_opts_out 1856tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 1857tests/client/test_session_group.py::test_client_session_group_connect_to_server_duplicate_tool_raises_error 1858[gw0] [ 15%] PASSED tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 1859[gw1] [ 15%] PASSED tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 1860tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 1861tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 1862[gw8] [ 15%] PASSED tests/docs_src/test_structured_output.py::test_structured_output_false_opts_out 1863tests/docs_src/test_structured_output.py::test_content_blocks_and_media_are_opted_out_of_structured_output 1864[gw1] [ 15%] PASSED tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 1865[gw6] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_stateless_http_kills_the_legacy_back_channel_and_only_the_legacy_one 1866tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial005.py] 1867tests/docs_src/test_legacy_clients.py::test_the_legacy_notification_verb_reaches_a_legacy_client 1868[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_auto_mode_probes_discover_then_adopts 1869tests/client/test_client.py::test_client_auto_mode_negotiates_modern_over_a_stream_loop 1870[gw0] [ 15%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 1871[gw1] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial005.py] 1872tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial001.py] 1873tests/client/test_auth.py::test_validate_resource_custom_callback 1874[gw8] [ 15%] PASSED tests/docs_src/test_structured_output.py::test_content_blocks_and_media_are_opted_out_of_structured_output 1875tests/docs_src/test_structured_output.py::test_class_without_type_hints_is_silently_unstructured 1876[gw1] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial001.py] 1877tests/client/test_sampling_callback.py::test_sampling_callback 1878tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] 1879[gw0] [ 15%] PASSED tests/client/test_auth.py::test_validate_resource_custom_callback 1880tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 1881tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 1882[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_auto_mode_negotiates_modern_over_a_stream_loop 1883[gw6] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_the_legacy_notification_verb_reaches_a_legacy_client 1884[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 1885tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 1886tests/client/test_client.py::test_client_pinned_modern_mode_works_over_a_stream_loop 1887tests/docs_src/test_legacy_clients.py::test_calling_both_notification_verbs_is_safe_on_both_eras 1888[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 1889[gw0] [ 15%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 1890tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 1891[gw8] [ 15%] PASSED tests/docs_src/test_structured_output.py::test_class_without_type_hints_is_silently_unstructured 1892tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 1893[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 1894tests/docs_src/test_structured_output.py::test_structured_output_true_makes_the_silence_an_error 1895tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 1896[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 1897tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 1898[gw0] [ 15%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 1899[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 1900[gw8] [ 15%] PASSED tests/docs_src/test_structured_output.py::test_structured_output_true_makes_the_silence_an_error 1901tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 1902tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 1903[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 1904tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 1905[gw0] [ 15%] PASSED tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 1906tests/docs_src/test_subscriptions.py::test_publishes_reach_the_stream_filtered_and_tagged 1907[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 1908tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 1909tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 1910[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 1911tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1912[gw0] [ 15%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 1913[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_pinned_modern_mode_works_over_a_stream_loop 1914[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1915tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1916tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1917[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1918tests/client/test_client.py::test_client_legacy_mode_still_handshakes_over_a_stream_loop 1919tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1920[gw0] [ 15%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1921[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1922tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 1923tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1924[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1925tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1926[gw0] [ 15%] PASSED tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 1927[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1928tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1929tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 1930[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1931[gw3] [ 15%] PASSED tests/client/test_sampling_callback.py::test_sampling_callback 1932tests/client/test_sampling_callback.py::test_create_message_backwards_compat_single_content 1933tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1934[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1935[gw0] [ 15%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 1936[gw6] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_calling_both_notification_verbs_is_safe_on_both_eras 1937tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 1938[gw4] [ 15%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server_duplicate_tool_raises_error 1939[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_legacy_mode_still_handshakes_over_a_stream_loop 1940tests/client/test_session_group.py::test_client_session_group_disconnect_non_existent_server 1941[gw0] [ 15%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 1942tests/client/test_client.py::test_client_auto_mode_recovers_from_a_timed_out_probe_over_a_stream_loop 1943tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 1944tests/docs_src/test_lifespan.py::test_lifespan_object_reaches_the_tool 1945[gw4] [ 15%] PASSED tests/client/test_session_group.py::test_client_session_group_disconnect_non_existent_server 1946[gw0] [ 15%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 1947tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 1948tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance0-stdio-mcp.client.session_group.mcp.stdio_client] 1949[gw1] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] 1950[gw0] [ 15%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 1951tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] 1952tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 1953[gw3] [ 15%] PASSED tests/client/test_sampling_callback.py::test_create_message_backwards_compat_single_content 1954[gw1] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] 1955tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] 1956[gw0] [ 15%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 1957tests/client/test_sampling_callback.py::test_create_message_result_with_tools_type 1958[gw1] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] 1959tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] 1960tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 1961[gw3] [ 15%] PASSED tests/client/test_sampling_callback.py::test_create_message_result_with_tools_type 1962tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1963[gw0] [ 15%] PASSED tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 1964[gw8] [ 16%] PASSED tests/docs_src/test_subscriptions.py::test_publishes_reach_the_stream_filtered_and_tagged 1965[gw6] [ 16%] PASSED tests/docs_src/test_lifespan.py::test_lifespan_object_reaches_the_tool 1966tests/client/test_scope_bug_1630.py::test_401_uses_www_auth_scope_not_resource_metadata_url 1967tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 1968tests/docs_src/test_lifespan.py::test_context_parameter_never_reaches_the_input_schema 1969tests/docs_src/test_subscriptions.py::test_publish_with_no_subscribers_is_a_no_op 1970[gw0] [ 16%] PASSED tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 1971[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1972tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 1973tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 1974[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 1975[gw4] [ 16%] PASSED tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance0-stdio-mcp.client.session_group.mcp.stdio_client] 1976tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial002.py] 1977[gw3] [ 16%] PASSED tests/client/test_scope_bug_1630.py::test_401_uses_www_auth_scope_not_resource_metadata_url 1978[gw7] [ 16%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_over_streamable_http_runs_the_cleanup_too[2026-07-28] 1979[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial002.py] 1980tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 1981tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance1-sse-mcp.client.session_group.sse_client] 1982tests/docs_src/test_cancellation.py::test_abandoning_the_call_over_streamable_http_runs_the_cleanup_too[legacy] 1983[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 1984tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 1985[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 1986tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] 1987[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] 1988tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] 1989[gw1] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] 1990[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] 1991[gw4] [ 16%] PASSED tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance1-sse-mcp.client.session_group.sse_client] 1992tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] 1993tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial003.py] 1994[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] 1995tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance2-streamablehttp-mcp.client.session_group.streamable_http_client] 1996tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial001.py] 1997[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial001.py] 1998tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 1999[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 2000tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] 8894[gw6] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 8895[gw8] [ 74%] PASSED tests/server/test_connection.py::test_connection_send_request_with_spec_type_infers_result_type 8896tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 8897tests/server/test_connection.py::test_connection_send_request_validates_result_alias_only 8898[gw1] [ 74%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-wildcard-match] 8899[gw2] [ 74%] PASSED tests/server/test_runner.py::test_dual_era_loop_bare_discover_opens_legacy_and_keeps_the_handshake_available 8900tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-no-match] 8901[gw8] [ 74%] PASSED tests/server/test_connection.py::test_connection_send_request_validates_result_alias_only 8902tests/server/test_connection.py::test_connection_send_request_with_result_type_kwarg_validates_custom_type 8903tests/server/test_runner.py::test_dual_era_loop_an_envelopeless_first_request_opens_a_legacy_connection 8904[gw1] [ 74%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-no-match] 8905[gw6] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 8906tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-base-mismatch] 8907[gw8] [ 74%] PASSED tests/server/test_connection.py::test_connection_send_request_with_result_type_kwarg_validates_custom_type 8908tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 8909tests/server/test_connection.py::test_connection_send_request_nonconforming_result_raises_validation_error 8910[gw5] [ 74%] PASSED tests/docs_src/test_asgi.py::test_the_server_behind_the_app_is_unchanged 8911[gw1] [ 74%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-base-mismatch] 8912[gw8] [ 74%] PASSED tests/server/test_connection.py::test_connection_send_request_nonconforming_result_raises_validation_error 8913tests/docs_src/test_asgi.py::test_a_request_before_the_session_manager_runs_is_rejected 8914tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-exact] 8915tests/server/test_connection.py::test_send_request_validates_the_client_result_against_the_surface_schema 8916[gw6] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 8917tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 8918[gw1] [ 74%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-exact] 8919[gw8] [ 74%] PASSED tests/server/test_connection.py::test_send_request_validates_the_client_result_against_the_surface_schema 8920tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-match] 8921tests/server/test_connection.py::test_send_request_passes_a_spec_valid_client_result 8922[gw9] [ 74%] PASSED tests/shared/test_dispatcher.py::test_direct_request_parked_waiting_for_peer_run_is_woken_by_peer_close 8923tests/shared/test_dispatcher.py::test_direct_send_raw_request_after_local_close_raises_and_notify_is_dropped 8924[gw1] [ 74%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-match] 8925[gw8] [ 74%] PASSED tests/server/test_connection.py::test_send_request_passes_a_spec_valid_client_result 8926[gw6] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 8927tests/server/test_connection.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 8928tests/server/test_transport_security.py::test_validate_request_skips_host_and_origin_when_protection_is_disabled 8929[gw5] [ 74%] PASSED tests/docs_src/test_asgi.py::test_a_request_before_the_session_manager_runs_is_rejected 8930tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 8931[gw1] [ 74%] PASSED tests/server/test_transport_security.py::test_validate_request_skips_host_and_origin_when_protection_is_disabled 8932[gw8] [ 74%] PASSED tests/server/test_connection.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 8933tests/server/test_transport_security.py::test_validate_request_defaults_to_protection_disabled 8934tests/server/test_connection.py::test_send_request_with_a_custom_method_skips_the_surface_gate 8935[gw9] [ 74%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_after_local_close_raises_and_notify_is_dropped 8936[gw0] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 8937[gw6] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 8938[gw1] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_defaults_to_protection_disabled 8939[gw8] [ 75%] PASSED tests/server/test_connection.py::test_send_request_with_a_custom_method_skips_the_surface_gate 8940tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json] 8941tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 8942tests/server/test_connection.py::test_connection_ping_sends_ping_on_standalone 8943tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 8944tests/shared/test_dispatcher.py::test_direct_inbound_after_peer_close_refuses_requests_and_drops_notifications 8945tests/docs_src/test_asgi.py::test_mounting_at_the_root_keeps_the_default_path 8946[gw8] [ 75%] PASSED tests/server/test_connection.py::test_connection_ping_sends_ping_on_standalone 8947[gw1] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json] 8948tests/server/test_connection.py::test_connection_log_sends_logging_message_notification 8949tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json-with-charset] 8950[gw6] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 8951tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 8952[gw8] [ 75%] PASSED tests/server/test_connection.py::test_connection_log_sends_logging_message_notification 8953[gw1] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json-with-charset] 8954tests/server/test_connection.py::test_connection_log_sends_nothing_on_a_modern_connection 8955[gw6] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 8956tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[case-insensitive] 8957tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 8958[gw9] [ 75%] PASSED tests/shared/test_dispatcher.py::test_direct_inbound_after_peer_close_refuses_requests_and_drops_notifications 8959[gw8] [ 75%] PASSED tests/server/test_connection.py::test_connection_log_sends_nothing_on_a_modern_connection 8960[gw5] [ 75%] PASSED tests/docs_src/test_asgi.py::test_mounting_at_the_root_keeps_the_default_path 8961[gw6] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 8962tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 8963[gw1] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[case-insensitive] 8964tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[wrong-type] 8965tests/server/test_connection.py::test_connection_log_with_meta_includes_meta_in_params 8966tests/shared/test_dispatcher.py::test_direct_inbound_to_closed_never_run_peer_fails_with_connection_closed 8967[gw2] [ 75%] PASSED tests/server/test_runner.py::test_dual_era_loop_an_envelopeless_first_request_opens_a_legacy_connection 8968tests/docs_src/test_asgi.py::test_a_root_mount_swallows_routes_listed_after_it 8969tests/server/test_runner.py::test_dual_era_loop_modern_request_without_envelope_rejects 8970[gw6] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 8971tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 8972[gw8] [ 75%] PASSED tests/server/test_connection.py::test_connection_log_with_meta_includes_meta_in_params 8973[gw1] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[wrong-type] 8974tests/server/test_connection.py::test_connection_list_changed_notifications_send_correct_methods 8975[gw5] [ 75%] PASSED tests/docs_src/test_asgi.py::test_a_root_mount_swallows_routes_listed_after_it 8976[gw9] [ 75%] PASSED tests/shared/test_dispatcher.py::test_direct_inbound_to_closed_never_run_peer_fails_with_connection_closed 8977tests/docs_src/test_asgi.py::test_the_host_lifespan_enters_the_session_manager 8978tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[missing] 8979tests/shared/test_dispatcher.py::test_direct_send_raw_request_and_notify_raise_runtimeerror_when_no_peer_connected 8980[gw8] [ 75%] PASSED tests/server/test_connection.py::test_connection_list_changed_notifications_send_correct_methods 8981[gw6] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 8982tests/server/test_connection.py::test_connection_send_tool_list_changed_with_meta_includes_meta_only_params 8983tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 8984[gw1] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[missing] 8985tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 8986[gw9] [ 75%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_and_notify_raise_runtimeerror_when_no_peer_connected 8987tests/server/test_transport_security.py::test_validate_request_ignores_content_type_on_get 8988tests/shared/test_dispatcher.py::test_direct_close_makes_run_return 8989[gw8] [ 75%] PASSED tests/server/test_connection.py::test_connection_send_tool_list_changed_with_meta_includes_meta_only_params 8990tests/server/test_connection.py::test_connection_check_capability_false_when_no_capabilities_recorded 8991[gw1] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_ignores_content_type_on_get 8992[gw5] [ 75%] PASSED tests/docs_src/test_asgi.py::test_the_host_lifespan_enters_the_session_manager 8993[gw8] [ 75%] PASSED tests/server/test_connection.py::test_connection_check_capability_false_when_no_capabilities_recorded 8994tests/server/test_transport_security.py::test_client_disconnect_while_streaming_request_body_is_replayed 8995[gw6] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 8996tests/server/test_connection.py::test_from_envelope_records_capabilities_without_client_info 8997tests/docs_src/test_asgi.py::test_two_servers_get_two_mounts 8998[gw9] [ 75%] PASSED tests/shared/test_dispatcher.py::test_direct_close_makes_run_return 8999tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9000[gw1] [ 75%] PASSED tests/server/test_transport_security.py::test_client_disconnect_while_streaming_request_body_is_replayed 9001[gw8] [ 75%] PASSED tests/server/test_connection.py::test_from_envelope_records_capabilities_without_client_info 9002tests/server/test_connection.py::test_client_params_assignment_keeps_capabilities_in_lockstep 9003[gw5] [ 75%] PASSED tests/docs_src/test_asgi.py::test_two_servers_get_two_mounts 9004tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[direct] 9005tests/server/test_transport_security.py::test_client_disconnect_before_request_body_is_replayed 9006tests/docs_src/test_asgi.py::test_one_lifespan_starts_both_session_managers 9007[gw8] [ 75%] PASSED tests/server/test_connection.py::test_client_params_assignment_keeps_capabilities_in_lockstep 9008tests/server/test_connection.py::test_check_capability_per_field_branches[have0-want0-False] 9009[gw6] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9010[gw2] [ 75%] PASSED tests/server/test_runner.py::test_dual_era_loop_modern_request_without_envelope_rejects 9011tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9012[gw1] [ 75%] PASSED tests/server/test_transport_security.py::test_client_disconnect_before_request_body_is_replayed 9013[gw8] [ 75%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have0-want0-False] 9014tests/server/test_connection.py::test_check_capability_per_field_branches[have1-want1-False] 9015tests/server/test_transport_security.py::test_request_body_chunks_are_replayed_as_one_message 9016[gw8] [ 75%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have1-want1-False] 9017tests/server/test_connection.py::test_check_capability_per_field_branches[have2-want2-False] 9018tests/server/test_runner.py::test_dual_era_loop_serves_subscriptions_listen_over_the_stream_pair 9019[gw8] [ 75%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have2-want2-False] 9020tests/server/test_connection.py::test_check_capability_per_field_branches[have3-want3-False] 9021[gw1] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_chunks_are_replayed_as_one_message 9022[gw9] [ 75%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[direct] 9023[gw6] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9024tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[jsonrpc] 9025tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[GET] 9026[gw8] [ 75%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have3-want3-False] 9027tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9028tests/server/test_connection.py::test_check_capability_per_field_branches[have4-want4-False] 9029[gw8] [ 75%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have4-want4-False] 9030tests/server/test_connection.py::test_check_capability_per_field_branches[have5-want5-True] 9031[gw8] [ 75%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have5-want5-True] 9032[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9033tests/server/test_connection.py::test_check_capability_per_field_branches[have6-want6-True] 9034tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9035[gw1] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[GET] 9036[gw6] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9037[gw8] [ 75%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have6-want6-True] 9038[gw9] [ 75%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[jsonrpc] 9039tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9040tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[PUT] 9041[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9042tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9043tests/server/test_connection.py::test_check_capability_per_field_branches[have7-want7-False] 9044[gw8] [ 75%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have7-want7-False] 9045[gw5] [ 75%] PASSED tests/docs_src/test_asgi.py::test_one_lifespan_starts_both_session_managers 9046[gw2] [ 75%] PASSED tests/server/test_runner.py::test_dual_era_loop_serves_subscriptions_listen_over_the_stream_pair 9047tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[direct] 9048tests/server/test_connection.py::test_check_capability_per_field_branches[have8-want8-False] 9049[gw6] [ 75%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9050tests/server/test_runner.py::test_dual_era_loop_malformed_envelope_content_is_a_modern_era_error 9051[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9052tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9053[gw8] [ 75%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have8-want8-False] 9054tests/server/test_connection.py::test_check_capability_per_field_branches[have9-want9-False] 9055tests/interaction/lowlevel/test_roots.py::test_roots_list_changed_reaches_server_handler[streamable-http-stateless-2025-11-25] 9056[gw1] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[PUT] 9057tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9058[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9059tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9060[gw8] [ 76%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have9-want9-False] 9061tests/server/test_connection.py::test_check_capability_per_field_branches[have10-want10-True] 9062tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[OPTIONS] 9063[gw9] [ 76%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[direct] 9064tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[jsonrpc] 9065[gw6] [ 76%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9066[gw8] [ 76%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have10-want10-True] 9067[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9068tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9069tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9070tests/server/test_connection.py::test_connection_check_capability_true_when_client_declares_it 9071[gw8] [ 76%] PASSED tests/server/test_connection.py::test_connection_check_capability_true_when_client_declares_it 9072[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9073[gw1] [ 76%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[OPTIONS] 9074tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9075[gw2] [ 76%] PASSED tests/server/test_runner.py::test_dual_era_loop_malformed_envelope_content_is_a_modern_era_error 9076tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9077tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[HEAD] 9078tests/server/test_runner.py::test_dual_era_loop_pair_only_envelope_serves_modern_and_locks 9079[gw6] [ 76%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9080[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9081tests/shared/test_path_security.py::test_safe_join_base_equals_target 9082tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9083[gw9] [ 76%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[jsonrpc] 9084[gw6] [ 76%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9085[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_base_equals_target 9086tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[direct] 9087tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9088[gw1] [ 76%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[HEAD] 9089tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9090[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9091tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[DELETE] 9092[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_envelope_rung_accepts_pair_only_envelope_without_client_info 9093tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[params-none] 9094[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[params-none] 9095[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9096tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-none] 9097[gw9] [ 76%] PASSED tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[direct] 9098tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9099[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-none] 9100tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-non-mapping] 9101tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[jsonrpc] 9102[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-non-mapping] 9103tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[int] 9104[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9105[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[int] 9106tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[null] 9107tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9108[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[null] 9109tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[list] 9110[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[list] 9111tests/shared/test_inbound.py::test_non_string_protocol_version_over_http_still_rejects_at_the_header_rung 9112[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_non_string_protocol_version_over_http_still_rejects_at_the_header_rung 9113tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[int] 9114tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9115[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[int] 9116tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[null] 9117[gw9] [ 76%] PASSED tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[jsonrpc] 9118[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[null] 9119tests/shared/test_inbound.py::test_version_rung_rejects_unsupported_with_data_shape 9120tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[direct] 9121[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9122[gw7] [ 76%] PASSED tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9123tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9124tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9125[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_version_rung_rejects_unsupported_with_data_shape 9126[gw9] [ 76%] PASSED tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[direct] 9127tests/shared/test_inbound.py::test_version_rung_data_reflects_supplied_supported_list 9128tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[jsonrpc] 9129[gw7] [ 76%] PASSED tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9130[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9131tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9132tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9133[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_version_rung_data_reflects_supplied_supported_list 9134tests/shared/test_inbound.py::test_unsupported_protocol_version_rejection_is_the_version_rung_standalone 9135[gw7] [ 76%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9136[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_unsupported_protocol_version_rejection_is_the_version_rung_standalone 9137tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9138[gw9] [ 76%] PASSED tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[jsonrpc] 9139tests/shared/test_inbound.py::test_header_rung_does_not_reject_when_headers_arg_is_none 9140tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[direct] 9141tests/server/test_extensions_capability.py::test_get_capabilities_omits_extensions_when_none_registered 9142[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9143[gw7] [ 76%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9144tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9145[gw9] [ 76%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[direct] 9146tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9147[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_reject_when_headers_arg_is_none 9148tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[jsonrpc] 9149tests/shared/test_inbound.py::test_header_rung_passes_when_header_matches_envelope 9150[gw7] [ 76%] PASSED tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9151[gw9] [ 76%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[jsonrpc] 9152tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9153[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9154tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9155tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[direct] 9156[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_passes_when_header_matches_envelope 9157[gw2] [ 76%] PASSED tests/server/test_runner.py::test_dual_era_loop_pair_only_envelope_serves_modern_and_locks 9158tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[mismatch] 9159[gw7] [ 76%] PASSED tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9160[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[mismatch] 9161[gw8] [ 76%] PASSED tests/server/test_extensions_capability.py::test_get_capabilities_omits_extensions_when_none_registered 9162tests/server/test_runner.py::test_dual_era_loop_version_without_capabilities_rejects_naming_the_key 9163[gw9] [ 76%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[direct] 9164tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] 9165tests/server/test_extensions_capability.py::test_get_capabilities_advertises_populated_self_extensions 9166tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9167[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] 9168tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[jsonrpc] 9169tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] 9170[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9171[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] 9172tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] 9173tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 9174[gw7] [ 76%] PASSED tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9175[gw4] [ 76%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] 9176tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9177tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header 9178[gw8] [ 76%] PASSED tests/server/test_extensions_capability.py::test_get_capabilities_advertises_populated_self_extensions 9179tests/server/test_extensions_capability.py::test_modern_connection_carries_the_advertised_extensions_map 9180[gw4] [ 77%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header 9181[gw9] [ 77%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[jsonrpc] 9182[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9183tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9184tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[direct] 9185[gw9] [ 77%] PASSED tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[direct] 9186tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[jsonrpc] 9187[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 9188tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9189[gw2] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_version_without_capabilities_rejects_naming_the_key 9190[gw8] [ 77%] PASSED tests/server/test_extensions_capability.py::test_modern_connection_carries_the_advertised_extensions_map 9191tests/server/test_extensions_capability.py::test_legacy_handshake_drops_the_extensions_map 9192[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9193tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9194[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9195tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9196tests/server/test_runner.py::test_dual_era_loop_failed_modern_request_leaves_the_connection_modern 9197[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9198tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9199[gw8] [ 77%] PASSED tests/server/test_extensions_capability.py::test_legacy_handshake_drops_the_extensions_map 9200tests/server/test_extensions_capability.py::test_server_accepts_capability_for_client_advertised_extension 9201[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9202tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9203[gw9] [ 77%] PASSED tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[jsonrpc] 9204tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9205[gw8] [ 77%] PASSED tests/server/test_extensions_capability.py::test_server_accepts_capability_for_client_advertised_extension 9206[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9207tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_single_elicitation 9208tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9209[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_roots.py::test_roots_list_changed_reaches_server_handler[streamable-http-stateless-2025-11-25] 9210tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9211[gw2] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_failed_modern_request_leaves_the_connection_modern 9212[gw9] [ 77%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_single_elicitation 9213tests/server/test_runner.py::test_dual_era_loop_initialize_with_envelope_takes_the_handshake_path 9214tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations 9215[gw8] [ 77%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9216tests/interaction/lowlevel/test_sampling.py::test_create_message_round_trip[in-memory-2025-11-25] 9217tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9218[gw9] [ 77%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations 9219[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9220tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 9221tests/shared/test_exceptions.py::test_url_elicitation_required_error_custom_message 9222[gw8] [ 77%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9223tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9224[gw9] [ 77%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_custom_message 9225tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data 9226[gw9] [ 77%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data 9227[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 9228tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data_wrong_code 9229[gw2] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_initialize_with_envelope_takes_the_handshake_path 9230tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9231[gw9] [ 77%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data_wrong_code 9232tests/shared/test_exceptions.py::test_url_elicitation_required_error_serialization_roundtrip 9233tests/server/test_runner.py::test_dual_era_loop_modern_notification_dispatches_at_the_served_version 9234[gw9] [ 77%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_serialization_roundtrip 9235tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations 9236[gw9] [ 77%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations 9237tests/shared/test_exceptions.py::test_url_elicitation_required_error_inherits_from_mcp_error 9238[gw9] [ 77%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_inherits_from_mcp_error 9239[gw8] [ 77%] PASSED tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9240[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9241[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_round_trip[in-memory-2025-11-25] 9242tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 9243tests/interaction/lowlevel/test_sampling.py::test_create_message_round_trip[sse-2025-11-25] 9244tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9245[gw2] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_modern_notification_dispatches_at_the_served_version 9246[gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 9247tests/server/test_runner.py::test_dual_era_loop_legacy_notifications_reach_the_loop_runner 9248tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 9249[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9250tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9251[gw2] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_legacy_notifications_reach_the_loop_runner 9252tests/server/test_runner.py::test_dual_era_loop_a_notifications_meta_never_opens_the_log_gate 9253[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9254[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9255tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9256tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9257[gw2] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_a_notifications_meta_never_opens_the_log_gate 9258tests/server/test_runner.py::test_dual_era_loop_modern_server_notifications_ride_the_pipe 9259[gw3] [ 77%] PASSED tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9260tests/shared/test_otel.py::test_client_and_server_spans 9261[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9262[gw2] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_modern_server_notifications_ride_the_pipe 9263[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_round_trip[sse-2025-11-25] 9264tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9265tests/server/test_runner.py::test_dual_era_loop_modern_refuses_server_initiated_requests 9266tests/interaction/lowlevel/test_sampling.py::test_create_message_round_trip[streamable-http-2025-11-25] 9267[gw2] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_modern_refuses_server_initiated_requests 9268tests/server/test_runner.py::test_dual_era_loop_initialize_during_an_in_flight_modern_request_is_refused 9269[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9270tests/shared/test_streamable_http.py::test_content_type_validation 9271[gw1] [ 77%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[DELETE] 9272[gw2] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_initialize_during_an_in_flight_modern_request_is_refused 9273[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9274tests/server/test_runner.py::test_dual_era_loop_maps_unmapped_handler_exceptions_like_the_modern_http_entry 9275tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9276[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_content_type_validation 9277tests/shared/test_streamable_http.py::test_json_validation 9278tests/server/test_transport_security.py::test_request_body_limit_leaves_non_http_scopes_alone 9279[gw2] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_maps_unmapped_handler_exceptions_like_the_modern_http_entry 9280tests/server/test_runner.py::test_dual_era_loop_raise_exceptions_reraises_unmapped_modern_handler_exceptions 9281[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_validation 9282[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_round_trip[streamable-http-2025-11-25] 9283tests/shared/test_streamable_http.py::test_json_parsing 9284tests/interaction/lowlevel/test_sampling.py::test_create_message_params_reach_callback[in-memory-2025-11-25] 9285[gw2] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_raise_exceptions_reraises_unmapped_modern_handler_exceptions 9286[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_parsing 9287tests/server/test_runner.py::test_dual_era_loop_custom_method_with_mis_shaped_envelope_values_still_routes 9288tests/shared/test_streamable_http.py::test_method_not_allowed 9289[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_params_reach_callback[in-memory-2025-11-25] 9290[gw2] [ 77%] PASSED tests/server/test_runner.py::test_dual_era_loop_custom_method_with_mis_shaped_envelope_values_still_routes 9291tests/interaction/lowlevel/test_sampling.py::test_create_message_params_reach_callback[sse-2025-11-25] 9292tests/server/test_runner.py::test_has_modern_envelope_keys_on_the_protocol_version_key 9293[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_method_not_allowed 9294[gw2] [ 77%] PASSED tests/server/test_runner.py::test_has_modern_envelope_keys_on_the_protocol_version_key 9295tests/server/test_runner.py::test_initialize_after_modern_data_arms 9296tests/shared/test_streamable_http.py::test_session_validation 9297[gw2] [ 78%] PASSED tests/server/test_runner.py::test_initialize_after_modern_data_arms 9298tests/server/test_runner.py::test_no_server_requests_dispatch_context_denies_requests_and_delegates_the_rest 9299[gw4] [ 78%] PASSED tests/shared/test_streamable_http.py::test_session_validation 9300tests/shared/test_streamable_http.py::test_session_id_pattern 9301[gw4] [ 78%] PASSED tests/shared/test_streamable_http.py::test_session_id_pattern 9302tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9303[gw1] [ 78%] PASSED tests/server/test_transport_security.py::test_request_body_limit_leaves_non_http_scopes_alone 9304[gw7] [ 78%] PASSED tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9305tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9306tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_caps_none 9307tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9308[gw1] [ 78%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_caps_none 9309tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_sampling_none 9310[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9311tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 9312[gw1] [ 78%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_sampling_none 9313tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_tools_none 9314[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 9315[gw1] [ 78%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_tools_none 9316[gw7] [ 78%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9317tests/server/test_validation.py::test_check_sampling_tools_capability_returns_true_when_tools_present 9318tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 9319tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9320[gw1] [ 78%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_true_when_tools_present 9321tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_tools_none 9322[gw6] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9323[gw1] [ 78%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_tools_none 9324[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 9325tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tools_provided_but_no_capability 9326tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9327[gw1] [ 78%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tools_provided_but_no_capability 9328tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tool_choice_provided_but_no_capability 9329tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 9330[gw1] [ 78%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tool_choice_provided_but_no_capability 9331[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 9332tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_capability_present 9333tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 9334[gw1] [ 78%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_capability_present 9335tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_empty_messages 9336[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 9337[gw1] [ 78%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_empty_messages 9338tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 9339[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 9340tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 9341tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_simple_text_messages 9342[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 9343tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 9344[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 9345tests/shared/test_path_security.py::test_is_absolute_path[-False] 9346[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[-False] 9347tests/shared/test_path_security.py::test_is_absolute_path[.-False] 9348[gw1] [ 78%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_simple_text_messages 9349tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_mixed_with_other_content 9350[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[.-False] 9351tests/shared/test_path_security.py::test_is_absolute_path[..-False] 9352[gw1] [ 78%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_mixed_with_other_content 9353tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_without_previous_tool_use 9354[gw6] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9355[gw1] [ 78%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_without_previous_tool_use 9356tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_previous_message_has_no_tool_use 9357[gw1] [ 78%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_previous_message_has_no_tool_use 9358[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[..-False] 9359tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9360tests/shared/test_path_security.py::test_is_absolute_path[/-True] 9361tests/shared/test_sse.py::test_sse_client_exception_handling 9362[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/-True] 9363tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 9364[gw1] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9365[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 9366tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9367tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 9368[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 9369tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 9370[gw1] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9371tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9372[gw1] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9373tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9374[gw1] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9375tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9376[gw4] [ 78%] PASSED tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9377[gw1] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9378tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9379tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9380[gw1] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9381tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9382[gw6] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_exception_handling 9383[gw1] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9384[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_params_reach_callback[sse-2025-11-25] 9385tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9386tests/interaction/lowlevel/test_sampling.py::test_create_message_params_reach_callback[streamable-http-2025-11-25] 9387[gw3] [ 78%] PASSED tests/shared/test_otel.py::test_client_and_server_spans 9388[gw4] [ 78%] PASSED tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9389tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9390[gw1] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9391tests/shared/test_streamable_http.py::test_session_termination 9392tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 9393tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9394[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 9395tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 9396[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 9397tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 9398[gw1] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9399[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 9400tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9401tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9402[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9403[gw1] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9404tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9405[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9406tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9407[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9408tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9409[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9410tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9411[gw4] [ 78%] PASSED tests/shared/test_streamable_http.py::test_session_termination 9412[gw6] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9413[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9414[gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 9415tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9416tests/shared/test_sse.py::test_request_context_propagation 9417tests/shared/test_streamable_http.py::test_response 9418[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9419tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 9420tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9421[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9422tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9423[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9424tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9425[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9426tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9427[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9428tests/shared/test_path_security.py::test_safe_join_simple 9429[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_simple 9430tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9431[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9432tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9433[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9434tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9435[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_response 9436[gw9] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9437tests/shared/test_streamable_http.py::test_json_response 9438[gw6] [ 79%] PASSED tests/shared/test_sse.py::test_request_context_propagation 9439[gw5] [ 79%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_params_reach_callback[streamable-http-2025-11-25] 9440tests/shared/test_sse.py::test_request_context_isolation 9441tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_image_content_reaches_callback[in-memory-2025-11-25] 9442[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_json_response 9443tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9444tests/shared/test_uri_template.py::test_parse_literal_only 9445[gw7] [ 79%] PASSED tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9446tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9447[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9448[gw5] [ 79%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_image_content_reaches_callback[in-memory-2025-11-25] 9449[gw7] [ 79%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9450[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_literal_only 9451tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9452tests/shared/test_sse.py::test_raw_sse_connection 9453tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9454tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_image_content_reaches_callback[sse-2025-11-25] 9455[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9456tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9457[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9458tests/shared/test_uri_template.py::test_is_template[-False] 9459[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[-False] 9460tests/shared/test_uri_template.py::test_is_template[{a}-True] 9461[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9462[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[{a}-True] 9463[gw7] [ 79%] PASSED tests/shared/test_sse.py::test_raw_sse_connection 9464tests/shared/test_uri_template.py::test_is_template[{-False] 9465tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9466tests/shared/test_sse.py::test_sse_client_basic_connection 9467[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9468tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9469[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[{-False] 9470tests/shared/test_uri_template.py::test_is_template[}-False] 9471[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9472[gw7] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection 9473[gw5] [ 79%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_image_content_reaches_callback[sse-2025-11-25] 9474tests/shared/test_sse.py::test_sse_client_on_session_created 9475tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_image_content_reaches_callback[streamable-http-2025-11-25] 9476tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9477[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9478[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[}-False] 9479tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9480tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9481[gw6] [ 79%] PASSED tests/shared/test_sse.py::test_request_context_isolation 9482[gw7] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created 9483tests/shared/test_sse.py::test_sse_message_id_coercion 9484tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9485[gw6] [ 79%] PASSED tests/shared/test_sse.py::test_sse_message_id_coercion 9486tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9487[gw7] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9488[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9489tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9490[gw6] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9491tests/shared/test_uri_template.py::test_is_template[}{-False] 9492tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9493[gw7] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9494tests/shared/test_streamable_http.py::test_get_sse_stream 9495[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[}{-False] 9496[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9497tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9498tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9499[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9500tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9501[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9502tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9503tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9504[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9505tests/shared/test_uri_template.py::test_parse_simple_variable 9506[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9507tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9508[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_simple_variable 9509[gw5] [ 79%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_image_content_reaches_callback[streamable-http-2025-11-25] 9510tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9511[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9512tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9513[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9514tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_image_content_returns_to_handler[in-memory-2025-11-25] 9515tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9516[gw6] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9517[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9518[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9519tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9520tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9521[gw3] [ 79%] PASSED tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 9522[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9523tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9524tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9525[gw6] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9526[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_get_sse_stream 9527tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9528[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9529tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9530tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9531[gw6] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9532tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9533[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9534tests/shared/test_streamable_http.py::test_get_validation 9535tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9536[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9537[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9538tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9539[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9540tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9541[gw5] [ 80%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_image_content_returns_to_handler[in-memory-2025-11-25] 9542[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9543[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9544tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9545[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9546tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9547tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9548tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9549tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_image_content_returns_to_handler[sse-2025-11-25] 9550[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9551tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9552[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9553tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9554[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9555tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9556[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9557[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9558tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9559tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9560[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9561[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9562tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9563[gw2] [ 80%] PASSED tests/server/test_runner.py::test_no_server_requests_dispatch_context_denies_requests_and_delegates_the_rest 9564tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9565[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9566[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9567tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9568tests/server/test_runner.py::test_no_server_requests_dispatch_context_passes_an_already_denying_transport_through 9569[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9570tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9571[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9572tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9573tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9574[gw2] [ 80%] PASSED tests/server/test_runner.py::test_no_server_requests_dispatch_context_passes_an_already_denying_transport_through 9575[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9576tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9577tests/server/test_runner.py::test_notify_only_outbound_forwards_notifications_and_refuses_requests 9578[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9579[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9580[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9581tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9582tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9583[gw2] [ 80%] PASSED tests/server/test_runner.py::test_notify_only_outbound_forwards_notifications_and_refuses_requests 9584[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9585tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9586tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/tools/list_changed] 9587[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9588[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9589[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9590tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9591tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9592[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9593[gw2] [ 80%] PASSED tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/tools/list_changed] 9594tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9595tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/prompts/list_changed] 9596[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9597tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9598[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9599tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9600tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9601[gw2] [ 80%] PASSED tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/prompts/list_changed] 9602[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9603tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9604tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9605tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/resources/list_changed] 9606[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9607tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9608[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9609[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9610tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9611[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9612[gw2] [ 80%] PASSED tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/resources/list_changed] 9613[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9614tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9615tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/resources/updated] 9616[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9617tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9618[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9619[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9620tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9621tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9622[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9623[gw2] [ 80%] PASSED tests/server/test_runner.py::test_notify_only_outbound_drops_change_notifications[notifications/resources/updated] 9624tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9625tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9626tests/server/test_runner.py::test_dual_era_loop_carries_the_sender_context_through_the_replay 9627[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9628tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9629[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9630tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9631tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9632[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9633tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9634[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9635[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9636tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9637[gw2] [ 80%] PASSED tests/server/test_runner.py::test_dual_era_loop_carries_the_sender_context_through_the_replay 9638[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9639tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9640tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9641[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9642tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9643tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9644[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9645tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9646[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9647[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9648tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9649[gw3] [ 80%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9650[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9651tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9652tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9653[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9654[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9655tests/shared/test_uri_template.py::test_equality_based_on_template_string 9656tests/shared/test_uri_template.py::test_parse_multiple_expressions 9657[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_equality_based_on_template_string 9658[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_expressions 9659tests/shared/test_uri_template.py::test_frozen 9660tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9661[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9662[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_frozen 9663[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9664[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9665tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9666tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9667tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9668[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9669[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9670[gw0] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 9671tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9672tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9673tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9674tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 9675[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9676[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9677tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9678tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9679[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9680[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9681tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9682tests/shared/test_uri_template.py::test_parse_explode_modifier 9683[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_explode_modifier 9684[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9685tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9686tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9687[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9688[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9689tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9690tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9691[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9692[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9693tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9694tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9695[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9696[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9697tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9698[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9699[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9700[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9701tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9702tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9703tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9704[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9705[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9706tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9707tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9708tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9709[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9710[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9711[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9712tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 9713tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9714tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9715[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 9716[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9717tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 9718tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9719[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9720[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9721tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9722[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 9723tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9724[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9725tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9726tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 9727tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9728[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9729[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9730tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9731tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9732[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9733tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9734[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9735tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9736[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 9737tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 9738[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 9739tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 9740[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9741[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9742[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9743tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9744tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9745tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9746[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 9747tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 9748[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9749[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9750tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9751[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 9752tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 9753tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9754[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9755[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9756tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9757tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9758[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 9759[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9760tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9761tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 9762[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9763tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9764[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9765[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9766[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9767tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9768tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9769[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 9770[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9771tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9772tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 9773tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9774[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9775tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9776[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 9777tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 9778[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9779[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9780tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9781tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9782[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9783tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9784[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9785tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9786[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9787tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9788[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9789tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9790[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9791[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9792tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9793[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9794tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9795[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9796tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9797tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9798[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9799tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 9800[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9801tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9802[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 9803tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9804[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9805tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9806[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9807tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 9808[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9809tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9810[gw6] [ 82%] PASSED tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9811[gw4] [ 82%] PASSED tests/shared/test_streamable_http.py::test_get_validation 9812tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9813[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9814tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9815tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9816[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9817[gw6] [ 82%] PASSED tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9818tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 9819tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9820[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 9821tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 9822[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 9823[gw6] [ 82%] PASSED tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9824[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9825tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9826tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9827[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 9828[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9829tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9830tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 9831[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 9832[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 9833[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9834tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 9835[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 9836tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 9837tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9838tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 9839tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9840[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 9841tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 9842[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9843tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9844[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 9845tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 9846[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9847[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 9848tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 9849tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 9850[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 9851[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9852[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 9853tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9854tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9855[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 9856[gw5] [ 82%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_image_content_returns_to_handler[sse-2025-11-25] 9857tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 9858[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 9859tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 9860tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_image_content_returns_to_handler[streamable-http-2025-11-25] 9861[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9862tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 9863[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9864tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9865[gw6] [ 82%] PASSED tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9866[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 9867[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 9868tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 9869tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 9870[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9871tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9872[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 9873[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 9874tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9875[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9876tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 9877tests/shared/test_streamable_http.py::test_accept_header_validation 9878tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9879[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9880[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 9881tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 9882tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 9883[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9884tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9885tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9886[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9887[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 9888[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9889tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9890[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9891tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 9892[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 9893[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9894tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 9895tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9896tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9897[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9898[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9899tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9900tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9901[gw6] [ 83%] PASSED tests/shared/test_streamable_http.py::test_accept_header_validation 9902[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 9903tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 9904[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 9905[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9906tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9907[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 9908[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9909tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9910tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 9911tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9912[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9913[gw4] [ 83%] PASSED tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9914[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 9915tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 9916tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9917[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9918tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9919[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9920[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9921tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 9922tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9923tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9924tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9925[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 9926tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 9927[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 9928tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 9929[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9930[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9931tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9932tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9933[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 9934[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9935tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 9936tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9937[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 9938tests/shared/test_uri_template.py::test_match_default_uri_length_limit 9939[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9940[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 9941tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9942tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 9943[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9944tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9945[gw6] [ 83%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9946[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 9947tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 9948[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9949[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 9950tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 9951tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9952[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 9953tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 9954[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 9955tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 9956[gw6] [ 83%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9957[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9958[gw4] [ 83%] PASSED tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9959tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9960[gw5] [ 83%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_image_content_returns_to_handler[streamable-http-2025-11-25] 9961tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9962tests/interaction/lowlevel/test_sampling.py::test_create_message_callback_error[in-memory-2025-11-25] 9963tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9964tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 9965tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9966[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 9967[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9968[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9969tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 9970[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 9971tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 9972[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 9973[gw6] [ 83%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9974tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 9975[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 9976tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 9977tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9978tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9979[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 9980[gw5] [ 83%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_callback_error[in-memory-2025-11-25] 9981tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 9982tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 9983tests/interaction/lowlevel/test_sampling.py::test_create_message_callback_error[sse-2025-11-25] 9984[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 9985[gw4] [ 83%] PASSED tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9986[gw6] [ 83%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9987tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9988[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 9989tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 9990[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9991[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9992[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 9993[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 9994tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 9995tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 9996[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_default_uri_length_limit 9997tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 9998tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 9999[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10000[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 10001tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10002tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 10003[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10004[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 10005tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 10006tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 10007[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10008tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10009[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 10010tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10011tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 10012[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 10013[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10014[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 10015tests/shared/test_uri_template.py::test_match_escapes_template_literals 10016tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 10017tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10018[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_escapes_template_literals 10019[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 10020tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10021tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 10022[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10023[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 10024tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 10025tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10026[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 10027[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10028tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10029[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 10030[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10031tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10032tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 10033[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10034[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10035tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10036tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10037[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10038tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 10039tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10040[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10041tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10042[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 10043tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 10044tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 10045[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10046tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10047[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 10048[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10049[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10050tests/shared/test_uri_template.py::test_match_no_match[static-different] 10051tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 10052tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10053[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10054[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 10055tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 10056tests/shared/test_streamable_http.py::test_client_crash_handled 10057[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 10058tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 10059[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 10060tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 10061[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 10062tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 10063[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[static-different] 10064tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10065[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10066tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 10067tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10068[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 10069[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10070tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10071[gw5] [ 84%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_callback_error[sse-2025-11-25] 10072[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10073[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 10074tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 10075tests/interaction/lowlevel/test_sampling.py::test_create_message_callback_error[streamable-http-2025-11-25] 10076[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10077[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 10078tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10079tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 10080tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10081[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 10082[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10083tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10084tests/test_examples.py::test_docs_examples[README.md:90-103] 10085[gw6] [ 84%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 10086tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 10087tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 10088[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 10089tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 10090[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 10091[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10092[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 10093tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10094tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 10095[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10096tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10097[gw5] [ 84%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_callback_error[streamable-http-2025-11-25] 10098[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 10099tests/interaction/lowlevel/test_sampling.py::test_create_message_without_callback_is_error[in-memory-2025-11-25] 10100tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 10101tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10102[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10103[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10104[gw5] [ 84%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_without_callback_is_error[in-memory-2025-11-25] 10105tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10106tests/interaction/lowlevel/test_sampling.py::test_create_message_without_callback_is_error[sse-2025-11-25] 10107[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10108tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10109[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10110tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10111tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10112[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 10113[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10114tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 10115tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10116[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 10117tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 10118[gw7] [ 84%] PASSED tests/test_examples.py::test_docs_examples[README.md:90-103] 10119[gw2] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10120tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10121tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10122[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10123[gw5] [ 84%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_without_callback_is_error[sse-2025-11-25] 10124tests/interaction/lowlevel/test_sampling.py::test_create_message_without_callback_is_error[streamable-http-2025-11-25] 10125[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 10126[gw4] [ 85%] PASSED tests/shared/test_streamable_http.py::test_client_crash_handled 10127tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 10128tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10129tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 10130[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10131[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 10132tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10133[gw4] [ 85%] PASSED tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 10134tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 10135[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 10136tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 10137[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10138tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 10139tests/shared/test_uri_template.py::test_match_never_raises 10140[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 10141[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 10142tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 10143[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 10144tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 10145[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10146tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10147[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10148tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10149[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10150tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10151tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 10152[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 10153tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 10154[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 10155tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 10156[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 10157[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 10158[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10159tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 10160tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10161[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10162tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10163[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 10164[gw9] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10165tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 10166tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10167[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 10168tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 10169[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 10170tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 10171tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 10172[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 10173tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 10174[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 10175tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 10176[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10177[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10178[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10179tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10180tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10181[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 10182tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10183tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 10184[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 10185tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 10186[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 10187tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 10188[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 10189tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 10190[gw9] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10191[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 10192tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 10193[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 10194tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 10195tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10196[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 10197tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 10198[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 10199tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 10200[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 10201tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 10202[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 10203tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 10204[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10205[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 10206[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_never_raises 10207tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10208tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 10209tests/test_examples.py::test_simple_echo 10210[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10211[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 10212[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10213tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 10214tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10215tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10216[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 10217[gw9] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10218[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 10219tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 10220tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 10221[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 10222tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10223tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 10224[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 10225tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 10226[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 10227[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 10228tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 10229tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 10230[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 10231[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 10232tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 10233[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 10234tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 10235tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 10236[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 10237[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10238[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 10239[gw0] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 10240[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10241tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 10242tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10243[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10244tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10245tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 10246tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10247[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 10248tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 10249[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 10250tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10251tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 10252[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_without_callback_is_error[streamable-http-2025-11-25] 10253tests/interaction/lowlevel/test_sampling.py::test_create_message_with_tools_is_rejected_for_unsupporting_client[in-memory-2025-11-25] 10254[gw3] [ 86%] PASSED tests/test_examples.py::test_simple_echo 10255tests/test_examples.py::test_complex_inputs 10256[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10257[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10258[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10259tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10260[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10261tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10262[gw3] [ 86%] PASSED tests/test_examples.py::test_complex_inputs 10263tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10264[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_tools_is_rejected_for_unsupporting_client[in-memory-2025-11-25] 10265tests/test_examples.py::test_direct_call_tool_result_return 10266tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10267tests/interaction/lowlevel/test_sampling.py::test_create_message_with_tools_is_rejected_for_unsupporting_client[sse-2025-11-25] 10268[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10269tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10270[gw8] [ 86%] PASSED tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 10271[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 10272tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 10273tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 10274[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 10275[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_tools_is_rejected_for_unsupporting_client[sse-2025-11-25] 10276tests/interaction/lowlevel/test_sampling.py::test_create_message_with_tools_is_rejected_for_unsupporting_client[streamable-http-2025-11-25] 10277[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10278[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10279tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10280tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10281tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 10282[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10283tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10284[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 10285[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_tools_is_rejected_for_unsupporting_client[streamable-http-2025-11-25] 10286tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mixed_tool_result_content_is_rejected[in-memory-2025-11-25] 10287tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 10288[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 10289tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 10290[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 10291tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 10292[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10293[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10294[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 10295tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 10296[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10297tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10298[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10299[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 10300[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10301tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10302tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10303tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10304tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10305tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 10306[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 10307tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 10308[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 10309tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 10310[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 10311tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 10312[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10313[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10314[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10315[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10316tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10317tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10318tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10319tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10320[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 10321[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10322tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 10323tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10324[gw0] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 10325[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10326tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 10327[gw3] [ 86%] PASSED tests/test_examples.py::test_direct_call_tool_result_return 10328[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10329[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10330tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10331tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10332tests/test_examples.py::test_desktop 10333tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10334[gw0] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 10335[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 10336tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 10337[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10338tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 10339[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 10340tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10341[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mixed_tool_result_content_is_rejected[in-memory-2025-11-25] 10342[gw0] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 10343tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mixed_tool_result_content_is_rejected[sse-2025-11-25] 10344[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10345tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 10346tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10347[gw0] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 10348tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 10349[gw0] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 10350[gw3] [ 86%] PASSED tests/test_examples.py::test_desktop 10351tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 10352tests/test_examples.py::test_docs_examples[README.md:47-63] 10353[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10354[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10355tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10356[gw0] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 10357tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10358tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10359[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10360[gw0] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10361tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10362tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10363[gw5] [ 87%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mixed_tool_result_content_is_rejected[sse-2025-11-25] 10364tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10365[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10366tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mixed_tool_result_content_is_rejected[streamable-http-2025-11-25] 10367[gw0] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10368tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10369tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10370[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10371tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10372[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10373[gw0] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10374tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 10375tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10376[gw0] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 10377tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 10378[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[README.md:47-63] 10379[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10380[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10381tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10382tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10383tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10384[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10385[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10386tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10387tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10388[gw5] [ 87%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mixed_tool_result_content_is_rejected[streamable-http-2025-11-25] 10389tests/interaction/lowlevel/test_sampling.py::test_a_client_with_a_sampling_callback_declares_the_sampling_capability[in-memory-2025-11-25] 10390[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10391[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10392tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10393tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10394[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10395[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10396[gw5] [ 87%] PASSED tests/interaction/lowlevel/test_sampling.py::test_a_client_with_a_sampling_callback_declares_the_sampling_capability[in-memory-2025-11-25] 10397tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10398tests/interaction/lowlevel/test_sampling.py::test_a_client_with_a_sampling_callback_declares_the_sampling_capability[sse-2025-11-25] 10399tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10400[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10401tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10402[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10403tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10404[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10405[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10406tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10407[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10408tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10409tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10410[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10411tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10412[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10413tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10414[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10415[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10416tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10417tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10418[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10419tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10420[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10421[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10422tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10423tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10424[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10425[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10426tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10427[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10428tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10429tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10430[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10431[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10432tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10433tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10434[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10435[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10436tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10437tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10438[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10439[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10440tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10441tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10442[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10443tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10444[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10445tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10446[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10447[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10448[gw0] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 10449tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10450tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 10451tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10452[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10453tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10454[gw0] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 10455tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 10456[gw0] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 10457tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 10458[gw0] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 10459tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10460[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10461[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10462[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10463[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10464[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10465tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10466tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10467tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10468tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10469tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10470[gw5] [ 87%] PASSED tests/interaction/lowlevel/test_sampling.py::test_a_client_with_a_sampling_callback_declares_the_sampling_capability[sse-2025-11-25] 10471tests/interaction/lowlevel/test_sampling.py::test_a_client_with_a_sampling_callback_declares_the_sampling_capability[streamable-http-2025-11-25] 10472[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10473[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10474[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10475tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10476tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10477tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10478[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10479tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10480[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10481[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10482tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10483tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10484[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10485tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10486[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10487[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10488[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10489tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10490tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10491tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10492[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10493tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10494[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10495tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10496[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10497[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10498tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10499[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10500[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10501tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10502[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10503[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10504tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10505tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10506tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10507tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10508[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10509[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_sampling.py::test_a_client_with_a_sampling_callback_declares_the_sampling_capability[streamable-http-2025-11-25] 10510tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10511tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_audio_content_reaches_callback[in-memory-2025-11-25] 10512[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10513tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10514[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10515[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10516tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10517tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10518[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10519[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10520tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10521[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10522tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10523tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10524[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_audio_content_reaches_callback[in-memory-2025-11-25] 10525tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_audio_content_reaches_callback[sse-2025-11-25] 10526[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10527tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10528[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10529[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10530tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10531tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10532[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10533[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10534tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10535tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10536[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10537[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10538tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10539[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10540tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10541tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10542[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10543[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10544[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10545tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10546tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10547tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10548[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10549tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10550[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10551tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10552[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10553[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10554[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10555tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10556tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10557[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10558[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10559tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10560tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10561[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10562tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10563tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10564[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10565tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10566[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10567tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10568[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10569[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10570[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10571tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10572[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10573tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10574tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10575[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10576tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10577tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10578[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10579[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10580tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10581[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10582tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10583[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_audio_content_reaches_callback[sse-2025-11-25] 10584tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10585[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10586tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_audio_content_reaches_callback[streamable-http-2025-11-25] 10587[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10588tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10589tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10590[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10591[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10592tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10593tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10594[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10595tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10596[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10597[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10598[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10599tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10600tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10601tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10602[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10603tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10604[gw5] [ 89%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_request_with_audio_content_reaches_callback[streamable-http-2025-11-25] 10605tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_audio_content_returns_to_handler[in-memory-2025-11-25] 10606[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10607tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10608[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10609[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10610tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10611[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10612tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10613[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10614[gw5] [ 89%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_audio_content_returns_to_handler[in-memory-2025-11-25] 10615tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10616tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_audio_content_returns_to_handler[sse-2025-11-25] 10617[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10618tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10619tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10620[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10621tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10622[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10623[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10624[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10625tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10626tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10627[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10628tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10629tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10630[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10631[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10632tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10633tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10634[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10635[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10636[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10637tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10638tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10639[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10640tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10641[gw5] [ 89%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_audio_content_returns_to_handler[sse-2025-11-25] 10642[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10643tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_audio_content_returns_to_handler[streamable-http-2025-11-25] 10644[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10645tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10646tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10647tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10648[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10649[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10650tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10651tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10652[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10653[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10654tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10655[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10656tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10657tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10658[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10659[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10660tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10661tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10662[gw5] [ 89%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_result_with_audio_content_returns_to_handler[streamable-http-2025-11-25] 10663tests/interaction/lowlevel/test_sampling.py::test_create_message_with_list_valued_message_content_reaches_callback[in-memory-2025-11-25] 10664[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10665tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10666[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10667[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10668tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10669[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10670tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10671tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10672[gw5] [ 89%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_list_valued_message_content_reaches_callback[in-memory-2025-11-25] 10673tests/interaction/lowlevel/test_sampling.py::test_create_message_with_list_valued_message_content_reaches_callback[sse-2025-11-25] 10674[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10675tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10676[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10677[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10678[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10679tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10680tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10681[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10682tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10683tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10684[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10685tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10686[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10687tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10688[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10689[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10690tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10691[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10692[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10693[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10694tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10695tests/test_types.py::test_tool_choice 10696tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10697tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10698[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10699tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10700[gw3] [ 89%] PASSED tests/test_types.py::test_tool_choice 10701tests/test_types.py::test_sampling_message_with_user_role 10702[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10703tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10704[gw3] [ 89%] PASSED tests/test_types.py::test_sampling_message_with_user_role 10705tests/test_types.py::test_sampling_message_with_assistant_role 10706[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10707tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10708[gw3] [ 89%] PASSED tests/test_types.py::test_sampling_message_with_assistant_role 10709tests/test_types.py::test_sampling_message_backward_compatibility 10710[gw3] [ 89%] PASSED tests/test_types.py::test_sampling_message_backward_compatibility 10711[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10712tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10713[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10714tests/test_types.py::test_create_message_request_params_with_tools 10715tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10716[gw3] [ 90%] PASSED tests/test_types.py::test_create_message_request_params_with_tools 10717tests/test_types.py::test_create_message_result_with_tool_use 10718[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10719[gw3] [ 90%] PASSED tests/test_types.py::test_create_message_result_with_tool_use 10720tests/test_types.py::test_create_message_result_basic 10721tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10722[gw3] [ 90%] PASSED tests/test_types.py::test_create_message_result_basic 10723tests/test_types.py::test_client_capabilities_with_sampling_tools 10724[gw3] [ 90%] PASSED tests/test_types.py::test_client_capabilities_with_sampling_tools 10725[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10726tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10727[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10728[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10729[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10730tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10731[gw3] [ 90%] PASSED tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10732tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10733tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10734tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10735tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10736[gw3] [ 90%] PASSED tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10737tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10738[gw3] [ 90%] PASSED tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10739[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10740tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10741[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10742[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10743tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10744tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10745[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10746tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10747[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10748tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10749[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10750tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10751[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10752tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10753[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10754[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10755tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10756[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10757tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10758tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10759[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10760[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10761tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10762tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10763[gw1] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10764tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10765[gw1] [ 90%] PASSED tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10766tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10767[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10768tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10769[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10770[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10771[gw1] [ 90%] PASSED tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10772tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10773[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10774tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10775tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10776tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10777[gw5] [ 90%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_list_valued_message_content_reaches_callback[sse-2025-11-25] 10778tests/interaction/lowlevel/test_sampling.py::test_create_message_with_list_valued_message_content_reaches_callback[streamable-http-2025-11-25] 10779[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10780tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10781tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10782[gw3] [ 90%] PASSED tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10783[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10784tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10785[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10786tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10787tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10788[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10789[gw1] [ 90%] PASSED tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10790tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10791tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10792[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10793[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10794tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10795[gw3] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10796tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10797[gw5] [ 90%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_list_valued_message_content_reaches_callback[streamable-http-2025-11-25] 10798[gw1] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10799tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mismatched_tool_use_and_result_ids_is_rejected[in-memory-2025-11-25] 10800[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10801tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10802[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10803[gw1] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10804tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10805tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 10806tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10807tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10808[gw5] [ 90%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mismatched_tool_use_and_result_ids_is_rejected[in-memory-2025-11-25] 10809[gw1] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10810tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mismatched_tool_use_and_result_ids_is_rejected[sse-2025-11-25] 10811tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 10812[gw3] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10813[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10814tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10815[gw3] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10816tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10817[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10818tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10819tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10820[gw7] [ 90%] PASSED tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10821tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10822[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10823[gw5] [ 90%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mismatched_tool_use_and_result_ids_is_rejected[sse-2025-11-25] 10824tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10825tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mismatched_tool_use_and_result_ids_is_rejected[streamable-http-2025-11-25] 10826[gw7] [ 90%] PASSED tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10827tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10828[gw7] [ 90%] PASSED tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10829[gw3] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10830tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10831tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10832[gw7] [ 90%] PASSED tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10833tests/types/test_methods.py::test_built_in_maps_are_immutable 10834[gw5] [ 91%] PASSED tests/interaction/lowlevel/test_sampling.py::test_create_message_with_mismatched_tool_use_and_result_ids_is_rejected[streamable-http-2025-11-25] 10835[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10836tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10837tests/interaction/lowlevel/test_sampling.py::test_array_content_result_for_a_tool_free_request_surfaces_as_a_validation_error[in-memory-2025-11-25] 10838[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10839[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10840tests/test_types.py::test_jsonrpc_request 10841[gw5] [ 91%] PASSED tests/interaction/lowlevel/test_sampling.py::test_array_content_result_for_a_tool_free_request_surfaces_as_a_validation_error[in-memory-2025-11-25] 10842tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10843tests/interaction/lowlevel/test_sampling.py::test_array_content_result_for_a_tool_free_request_surfaces_as_a_validation_error[sse-2025-11-25] 10844[gw0] [ 91%] PASSED tests/test_types.py::test_jsonrpc_request 10845tests/test_types.py::test_method_initialization 10846[gw0] [ 91%] PASSED tests/test_types.py::test_method_initialization 10847[gw9] [ 91%] PASSED tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10848tests/test_types.py::test_tool_use_content 10849tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10850[gw0] [ 91%] PASSED tests/test_types.py::test_tool_use_content 10851tests/test_types.py::test_tool_result_content 10852[gw2] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10853[gw0] [ 91%] PASSED tests/test_types.py::test_tool_result_content 10854tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10855tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10856[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10857[gw2] [ 91%] PASSED tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10858tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 10859tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10860[gw4] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10861[gw5] [ 91%] PASSED tests/interaction/lowlevel/test_sampling.py::test_array_content_result_for_a_tool_free_request_surfaces_as_a_validation_error[sse-2025-11-25] 10862[gw2] [ 91%] PASSED tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10863tests/interaction/lowlevel/test_sampling.py::test_array_content_result_for_a_tool_free_request_surfaces_as_a_validation_error[streamable-http-2025-11-25] 10864tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10865tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10866[gw2] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10867[gw7] [ 91%] PASSED tests/types/test_methods.py::test_built_in_maps_are_immutable 10868tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10869[gw2] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10870[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10871tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10872[gw2] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10873tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10874tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10875[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10876tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10877[gw7] [ 91%] PASSED tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10878tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10879[gw7] [ 91%] PASSED tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10880tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10881[gw7] [ 91%] PASSED tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10882[gw5] [ 91%] PASSED tests/interaction/lowlevel/test_sampling.py::test_array_content_result_for_a_tool_free_request_surfaces_as_a_validation_error[streamable-http-2025-11-25] 10883tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10884tests/interaction/lowlevel/test_subscriptions.py::test_a_graceful_server_close_ends_iteration_after_buffered_events[in-memory-2026-07-28] 10885[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10886[gw7] [ 91%] PASSED tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10887tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10888tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10889[gw5] [ 91%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_a_graceful_server_close_ends_iteration_after_buffered_events[in-memory-2026-07-28] 10890[gw7] [ 91%] PASSED tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10891tests/interaction/lowlevel/test_subscriptions.py::test_a_graceful_server_close_ends_iteration_after_buffered_events[streamable-http-2026-07-28] 10892tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10893[gw4] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10894[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10895tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10896tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10897[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10898tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 10899[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 10900tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 10901[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 10902tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 10903[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 10904tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 10905[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 10906tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 10907[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 10908tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 10909tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10910[gw2] [ 91%] PASSED tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10911tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10912[gw7] [ 91%] PASSED tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10913tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10914[gw2] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10915tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10916[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 10917tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10918[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10919tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10920[gw2] [ 91%] PASSED tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10921tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10922[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10923tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 10924[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 10925tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 10926[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 10927tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 10928[gw2] [ 91%] PASSED tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10929tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10930[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 10931[gw7] [ 91%] PASSED tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10932tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 10933[gw2] [ 91%] PASSED tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10934tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10935[gw6] [ 91%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 10936[gw2] [ 91%] PASSED tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10937tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10938tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10939[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 10940[gw2] [ 91%] PASSED tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10941[gw4] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10942[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10943tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 10944tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10945[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10946tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10947tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10948tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 10949[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10950tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10951[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 10952[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10953tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10954[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10955tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 10956tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10957[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 10958tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 10959tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 10960[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 10961tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10962[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 10963[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10964tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 10965tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 10966[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 10967tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 10968[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 10969tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 10970[gw4] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10971[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 10972tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 10973[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 10974[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 10975tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 10976tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 10977tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10978[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 10979tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 10980[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 10981[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10982[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10983tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10984tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10985[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 10986[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 10987tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 10988tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 10989tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 10990[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 10991tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 10992[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 10993tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 10994[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10995[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 10996tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10997[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 10998tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 10999[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 11000tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11001tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 11002[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 11003tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11004[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 11005tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 11006[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11007tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 11008[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11009tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11010[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11011[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 11012tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 11013[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 11014tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 11015[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 11016[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 11017tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 11018tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 11019[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 11020[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 11021tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11022tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 11023[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 11024tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11025[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11026tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11027tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 11028[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 11029[gw9] [ 92%] PASSED tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 11030[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11031tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 11032[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11033tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11034tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11035[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 11036[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11037tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11038tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 11039tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11040[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 11041[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 11042tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 11043[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11044tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11045[gw9] [ 92%] PASSED tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 11046[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11047tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 11048[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11049[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11050tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11051tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11052tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11053[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11054[gw9] [ 92%] PASSED tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 11055[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11056tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 11057tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 11058[gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 11059[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 11060tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 11061tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11062[gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 11063tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 11064tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 11065[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 11066[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 11067[gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 11068tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 11069tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 11070tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 11071[gw4] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 11072[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11073tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 11074tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11075[gw0] [ 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] 11076tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 11077[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 11078[gw6] [ 93%] PASSED tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11079[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 11080[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11081tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11082tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11083[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11084tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11085tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11086tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11087[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11088tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11089[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11090tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11091[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11092[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11093tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11094tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11095[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_a_graceful_server_close_ends_iteration_after_buffered_events[streamable-http-2026-07-28] 11096tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 11097tests/interaction/lowlevel/test_subscriptions.py::test_a_stream_dropped_after_the_ack_raises_subscription_lost[in-memory-2026-07-28] 11098[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11099[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11100[gw4] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 11101tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 11102tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11103tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 11104[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 11105[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11106[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_a_stream_dropped_after_the_ack_raises_subscription_lost[in-memory-2026-07-28] 11107tests/interaction/lowlevel/test_subscriptions.py::test_a_stream_dropped_after_the_ack_raises_subscription_lost[streamable-http-2026-07-28] 11108[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11109tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11110[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11111tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11112tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11113[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11114tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 11115[gw9] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 11116[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11117[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_a_stream_dropped_after_the_ack_raises_subscription_lost[streamable-http-2026-07-28] 11118[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 11119tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 11120tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 11121tests/interaction/lowlevel/test_subscriptions.py::test_the_subscription_id_is_the_listen_request_id_the_server_saw[in-memory-2026-07-28] 11122tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11123[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 11124[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11125[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11126tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11127tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11128[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_the_subscription_id_is_the_listen_request_id_the_server_saw[in-memory-2026-07-28] 11129[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11130tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11131tests/interaction/lowlevel/test_subscriptions.py::test_the_subscription_id_is_the_listen_request_id_the_server_saw[streamable-http-2026-07-28] 11132tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11133[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11134[gw9] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 11135tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 11136tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11137[gw4] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 11138tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11139[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11140tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11141[gw4] [ 93%] PASSED tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11142[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_the_subscription_id_is_the_listen_request_id_the_server_saw[streamable-http-2026-07-28] 11143[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11144tests/interaction/lowlevel/test_subscriptions.py::test_concurrent_listen_streams_each_receive_their_own_ack[in-memory-2026-07-28] 11145tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11146tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11147[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11148tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11149[gw4] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11150[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11151tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11152[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_concurrent_listen_streams_each_receive_their_own_ack[in-memory-2026-07-28] 11153tests/interaction/lowlevel/test_subscriptions.py::test_concurrent_listen_streams_each_receive_their_own_ack[streamable-http-2026-07-28] 11154[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11155tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11156[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11157tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11158tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11159[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11160[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11161[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11162tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11163tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11164tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11165[gw4] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11166[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11167[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11168[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_subscriptions.py::test_concurrent_listen_streams_each_receive_their_own_ack[streamable-http-2026-07-28] 11169tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11170[gw9] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 11171tests/interaction/lowlevel/test_timeouts.py::test_request_timeout_fails_the_pending_call 11172[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11173tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11174tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 11175tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11176[gw9] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 11177tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11178[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11179[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_timeouts.py::test_request_timeout_fails_the_pending_call 11180tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11181[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11182tests/interaction/lowlevel/test_timeouts.py::test_server_request_timeout_sends_cancellation_to_the_client 11183[gw4] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11184[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11185tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11186tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11187[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11188tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11189tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11190[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11191tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11192[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11193[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11194tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11195tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11196[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11197[gw5] [ 94%] PASSED tests/interaction/lowlevel/test_timeouts.py::test_server_request_timeout_sends_cancellation_to_the_client 11198[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11199tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11200tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11201tests/interaction/lowlevel/test_timeouts.py::test_session_serves_requests_after_timeout 11202[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11203[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11204tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11205tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11206[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11207[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11208tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11209[gw5] [ 94%] PASSED tests/interaction/lowlevel/test_timeouts.py::test_session_serves_requests_after_timeout 11210[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11211tests/interaction/lowlevel/test_timeouts.py::test_session_level_timeout_applies_to_every_request[trio-mockclock] 11212tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11213tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11214[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11215tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11216[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11217tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11218tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11219[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11220tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11221[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11222tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11223[gw6] [ 94%] PASSED tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11224[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11225[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11226tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11227[gw5] [ 94%] PASSED tests/interaction/lowlevel/test_timeouts.py::test_session_level_timeout_applies_to_every_request[trio-mockclock] 11228tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11229[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11230tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[in-memory-2025-11-25] 11231[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11232tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11233tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11234[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11235[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11236[gw6] [ 94%] SKIPPED tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11237tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11238tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11239[gw6] [ 94%] SKIPPED tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11240tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11241[gw6] [ 94%] SKIPPED tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11242tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 11243[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11244tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11245tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11246[gw6] [ 94%] SKIPPED tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 11247tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 11248[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11249tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11250[gw6] [ 94%] PASSED tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 11251[gw5] [ 94%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[in-memory-2025-11-25] 11252[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11253[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11254tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11255tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[sse-2025-11-25] 11256tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 11257[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11258tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11259tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11260tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11261[gw6] [ 94%] PASSED tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 11262tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 11263[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11264tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11265[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11266[gw6] [ 94%] PASSED tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 11267tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11268[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11269tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 11270tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11271[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11272[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11273tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11274[gw6] [ 94%] PASSED tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 11275tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 11276tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11277[gw6] [ 94%] PASSED tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 11278[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11279[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11280tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11281tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11282[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11283tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11284tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11285tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11286[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11287tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11288[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11289[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11290tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11291tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11292[gw5] [ 94%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[sse-2025-11-25] 11293[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11294[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11295tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11296tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[streamable-http-2025-11-25] 11297[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11298tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11299tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11300[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11301[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11302[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11303tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11304tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11305tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11306[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11307[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11308tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11309tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11310[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11311[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11312tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11313[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11314tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11315[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11316tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11317tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11318[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11319[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11320tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11321tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11322[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11323[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11324tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11325[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11326[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11327tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11328tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11329[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11330tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11331[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11332tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11333tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11334[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11335[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11336[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11337tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11338tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11339tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11340[gw5] [ 95%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[streamable-http-2025-11-25] 11341[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11342[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11343tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[streamable-http-stateless-2025-11-25] 11344[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11345tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11346tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11347tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11348[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11349tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11350[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11351[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11352tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11353[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11354tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11355tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11356[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11357[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11358[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11359tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11360tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11361[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11362[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11363tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11364tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11365tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11366[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11367tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11368[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11369[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11370[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11371tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11372[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11373[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11374[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11375tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11376tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11377tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11378[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11379[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11380tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11381tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11382[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11383tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11384[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11385tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11386[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11387tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11388[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11389[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11390tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11391[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11392tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11393[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11394tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11395[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11396tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11397tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11398[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11399[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11400tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11401[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11402tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11403[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11404tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11405tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11406[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11407[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11408[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11409tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11410[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11411tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11412[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11413tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11414[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11415tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11416tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11417[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11418tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11419tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11420[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11421tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11422tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11423[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11424[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11425[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11426tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11427[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11428tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11429[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11430[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11431tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11432tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11433tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11434tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11435[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11436[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11437[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11438[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11439tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11440tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11441tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11442tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11443[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11444tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11445[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11446[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11447tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11448[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11449[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11450tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11451tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11452[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11453[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11454tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11455[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11456tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11457[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11458tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11459[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11460[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11461[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11462tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11463tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11464[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11465[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11466tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11467[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11468tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11469[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11470tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11471[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11472tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11473[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11474tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11475tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11476[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11477tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11478[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11479tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11480tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11481[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11482[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11483tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11484[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11485tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11486tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11487tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11488[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11489tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11490[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11491[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11492[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11493[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11494tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11495tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11496tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11497[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11498tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11499[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11500tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11501tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11502[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11503[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11504tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11505tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11506tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11507[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11508[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11509tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11510[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11511[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11512tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11513[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11514[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11515tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11516tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11517[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11518tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11519tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11520tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11521[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11522[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11523tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11524[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11525[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11526tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11527tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11528[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11529tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11530[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11531[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11532tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11533tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11534tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11535[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11536[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11537tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11538[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11539[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11540tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11541tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11542tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11543[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11544[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11545[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11546tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11547tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11548[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11549[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11550tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11551tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11552tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11553tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11554[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11555[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11556tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11557[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11558tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11559tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11560[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11561tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11562[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11563[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11564tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11565tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11566[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11567[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11568[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11569tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11570tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11571[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11572[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11573tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11574tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11575[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11576tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11577tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11578[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11579[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11580[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11581tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11582[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11583tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11584[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11585tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11586tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11587[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11588tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11589[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11590[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11591[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11592[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11593tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11594[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11595tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11596tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11597[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11598[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11599tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11600[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11601[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11602tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11603tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11604[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11605[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11606tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11607[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11608tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11609tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11610[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11611[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11612[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11613tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11614tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11615tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11616tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11617[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11618[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11619tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11620tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11621[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11622[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11623tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11624[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11625tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11626tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11627tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11628[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11629[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11630[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11631tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11632tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11633[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11634[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11635[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11636tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11637[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11638tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11639[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11640tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11641tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11642[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11643[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11644tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11645tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11646tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11647[gw2] [ 97%] PASSED tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11648tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11649[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11650tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11651[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11652[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11653tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11654tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11655tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11656tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11657[gw3] [ 97%] PASSED tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11658[gw2] [ 97%] PASSED tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11659[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11660tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11661[gw7] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11662[gw4] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11663[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11664tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11665tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11666[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[streamable-http-stateless-2025-11-25] 11667tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11668tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11669tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[in-memory-2026-07-28] 11670[gw6] [ 98%] PASSED tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11671[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11672[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11673[gw4] [ 98%] PASSED tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11674tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11675tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11676[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[in-memory-2026-07-28] 11677[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11678tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11679tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[streamable-http-2026-07-28] 11680[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11681tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11682[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11683tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11684tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11685[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11686[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11687tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11688tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11689[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11690[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11691[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11692tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11693tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11694tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11695[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11696[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11697tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11698tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11699[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11700[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11701[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11702tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11703tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11704[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11705tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11706tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11707tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11708[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11709[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11710[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11711[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11712tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11713tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11714tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11715tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11716[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11717tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11718[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_returns_text_content[streamable-http-2026-07-28] 11719tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11720tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[in-memory-2025-11-25] 11721[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11722[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11723[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11724tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11725[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11726[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11727tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11728tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11729tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11730tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11731[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11732[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11733[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11734tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11735tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11736[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11737[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11738[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11739tests/types/test_version.py::test_supported_versions_are_known 11740[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11741tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11742[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11743tests/types/test_version.py::test_known_versions_are_strictly_ordered 11744tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11745[gw0] [ 98%] PASSED tests/types/test_version.py::test_supported_versions_are_known 11746tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11747[gw3] [ 98%] PASSED tests/types/test_version.py::test_known_versions_are_strictly_ordered 11748tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11749[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11750[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11751tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11752[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[in-memory-2025-11-25] 11753tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11754[gw9] [ 98%] PASSED tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11755[gw7] [ 98%] PASSED tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11756tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[sse-2025-11-25] 11757[gw4] [ 98%] PASSED tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11758tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11759[gw0] [ 98%] PASSED tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11760tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11761tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11762tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11763[gw6] [ 98%] PASSED tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11764[gw3] [ 98%] PASSED tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11765[gw2] [ 98%] PASSED tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11766[gw7] [ 98%] PASSED tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11767[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[sse-2025-11-25] 11768tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[streamable-http-2025-11-25] 11769[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[streamable-http-2025-11-25] 11770tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[streamable-http-stateless-2025-11-25] 11771[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[streamable-http-stateless-2025-11-25] 11772tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[in-memory-2026-07-28] 11773[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[in-memory-2026-07-28] 11774tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[streamable-http-2026-07-28] 11775[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_execution_error_is_returned_as_result[streamable-http-2026-07-28] 11776tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[in-memory-2025-11-25] 11777[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[in-memory-2025-11-25] 11778tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[sse-2025-11-25] 11779[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[sse-2025-11-25] 11780tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[streamable-http-2025-11-25] 11781[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[streamable-http-2025-11-25] 11782tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[streamable-http-stateless-2025-11-25] 11783[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[streamable-http-stateless-2025-11-25] 11784tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[in-memory-2026-07-28] 11785[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[in-memory-2026-07-28] 11786tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[streamable-http-2026-07-28] 11787[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_unknown_tool_is_protocol_error[streamable-http-2026-07-28] 11788tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[in-memory-2025-11-25] 11789[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[in-memory-2025-11-25] 11790tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[sse-2025-11-25] 11791[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[sse-2025-11-25] 11792tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[streamable-http-2025-11-25] 11793[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[streamable-http-2025-11-25] 11794tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[streamable-http-stateless-2025-11-25] 11795[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_uncaught_exception_becomes_error_response[streamable-http-stateless-2025-11-25] 11796tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[in-memory-2025-11-25] 11797[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[in-memory-2025-11-25] 11798tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[sse-2025-11-25] 11799[gw8] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 11800tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11801[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[sse-2025-11-25] 11802tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-2025-11-25] 11803[gw8] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11804tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11805[gw8] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11806tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11807[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11808tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11809[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11810tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11811[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11812tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11813[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11814tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11815[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11816tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 11817[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 11818tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 11819[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 11820tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 11821[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 11822tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 11823[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 11824tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 11825[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 11826tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 11827[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 11828tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 11829[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 11830tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 11831[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 11832tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 11833[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 11834tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 11835[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 11836tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 11837[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 11838tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 11839[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 11840tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 11841[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 11842tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 11843[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 11844tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 11845[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 11846tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 11847[gw8] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 11848[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-2025-11-25] 11849tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-stateless-2025-11-25] 11850[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-stateless-2025-11-25] 11851tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[in-memory-2026-07-28] 11852[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[in-memory-2026-07-28] 11853tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-2026-07-28] 11854[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-2026-07-28] 11855tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[in-memory-2025-11-25] 11856[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[in-memory-2025-11-25] 11857tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[sse-2025-11-25] 11858[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[sse-2025-11-25] 11859[gw1] [ 99%] PASSED tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 11860tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11861[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11862tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11863[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11864tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11865[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11866tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11867[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11868tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11869[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11870tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 11871[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 11872tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 11873[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 11874tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 11875[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 11876tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 11877[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 11878tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 11879[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 11880tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 11881[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 11882tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 11883[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 11884tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 11885[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 11886tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 11887[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 11888tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 11889[gw1] [100%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 1189011891================= 5903 passed, 9 skipped, 1 xfailed in 34.69s ==================11892Finished executing pytestCheckPhase11893pytestCheckPhase completed in 39 seconds