nixbot

builds

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

1mac02: building qhpvbvaqhgf6v221r4h4r2b93xjlyb21-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-20691-1803007783/ in /nix/store/kkrq1g49965430mijg8dyssyl988d6b2-python3.14-mcp-2.3.0-dist...41patching script interpreter paths in /nix/store/kkrq1g49965430mijg8dyssyl988d6b2-python3.14-mcp-2.3.0-dist42checking for references to /nix/var/nix/builds/nix-20691-1803007783/ in /nix/store/rwwpwlvr50wfmnmlfksagirc4kn3np2m-python3.14-mcp-2.3.0...43patching script interpreter paths in /nix/store/rwwpwlvr50wfmnmlfksagirc4kn3np2m-python3.14-mcp-2.3.044stripping (with command strip and flags -S) in /nix/store/rwwpwlvr50wfmnmlfksagirc4kn3np2m-python3.14-mcp-2.3.0/lib /nix/store/rwwpwlvr50wfmnmlfksagirc4kn3np2m-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/rwwpwlvr50wfmnmlfksagirc4kn3np2m-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-20691-1803007783/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/cli/test_claude.py::test_mcp_requirement_pins_release_versions 65tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 66tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 67tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 68tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 69tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 70tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 71tests/client/test_streamable_http.py::test_default_sse_limit_fails_one_large_tool_call_and_keeps_the_session_usable 72[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 73[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 74tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields 75tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 76[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 77[gw2] [ 0%] PASSED tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 78[gw7] [ 0%] PASSED tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 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_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 82[gw4] [ 0%] PASSED tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 83tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 84[gw1] [ 0%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 85tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 86tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 87[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 88tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 89[gw3] [ 0%] PASSED tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name 90tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 91tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 92[gw2] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 93tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 94[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 95[gw7] [ 0%] PASSED tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 96tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 97[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 98[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 99tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 100tests/cli/test_claude.py::test_generates_uv_run_command 101[gw7] [ 0%] PASSED tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 102[gw2] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 103tests/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] 104tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 105tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 106[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_generates_uv_run_command 107[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] 108[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 109tests/cli/test_claude.py::test_file_spec_without_object_suffix 110tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 111[gw2] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 112tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 113tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 114[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 115[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 116[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_file_spec_without_object_suffix 117tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 118tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 119[gw7] [ 0%] PASSED tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 120[gw4] [ 0%] PASSED tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 121tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 122[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 123tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 124[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 125tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 126tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 127[gw2] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 128tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 129[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 130[gw4] [ 0%] PASSED tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 131tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 132[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 133tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 134tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 135tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 136[gw2] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 137[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 138[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 139tests/client/test_client.py::test_client_is_initialized 140tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 141[gw4] [ 0%] PASSED tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 142tests/cli/test_claude.py::test_with_editable_adds_flag 143tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 144[gw7] [ 0%] PASSED tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 145[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 146[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 147tests/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] 148tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 149tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 150[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_with_editable_adds_flag 151[gw4] [ 0%] PASSED tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 152tests/cli/test_claude.py::test_env_vars_written 153[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 154tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 155tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 156[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 157[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] 158tests/client/test_extension.py::test_result_claim_is_frozen 159[gw3] [ 0%] PASSED tests/client/test_extension.py::test_result_claim_is_frozen 160tests/client/test_extension.py::test_notification_binding_constructs 161[gw3] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_constructs 162[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_env_vars_written 163tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 164[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 165[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 166tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 167[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 168tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 169[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 170tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 171[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 172tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 173tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 174[gw2] [ 0%] PASSED tests/client/test_client.py::test_client_is_initialized 175tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 176[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 177tests/cli/test_claude.py::test_other_servers_preserved 178tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 179[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 180tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 181tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 182[gw4] [ 0%] PASSED tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 183tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 184[gw4] [ 0%] PASSED tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 185tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 186[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 187tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 188[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_other_servers_preserved 189tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 190[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 191[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 192tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 193[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 194tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 195tests/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] 196[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 197tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 198[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 199[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 200tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 201tests/cli/test_claude.py::test_raises_when_config_dir_missing 202[gw1] [ 1%] 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] 203[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_raises_when_config_dir_missing 204[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 205tests/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] 206[gw3] [ 1%] PASSED tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 207tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 208[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 209tests/client/test_extension.py::test_notification_binding_is_frozen 210[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 211tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 212tests/cli/test_claude.py::test_get_uv_path[None-uv] 213[gw1] [ 1%] 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] 214tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 215[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_get_uv_path[None-uv] 216[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 217[gw3] [ 1%] PASSED tests/client/test_extension.py::test_notification_binding_is_frozen 218[gw2] [ 1%] PASSED tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 219tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 220[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 221tests/client/test_client.py::test_client_with_simple_server 222tests/client/test_extension.py::test_extension_defaults_advertise_nothing 223tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 224tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 225tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 226[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 227[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 228[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 229tests/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] 230tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 231[gw2] [ 1%] PASSED tests/client/test_client.py::test_client_with_simple_server 232tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 233[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] 234tests/client/test_client.py::test_client_send_ping 235tests/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] 236[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 237tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 238[gw3] [ 1%] PASSED tests/client/test_extension.py::test_extension_defaults_advertise_nothing 239[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] 240tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 241[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 242tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 243[gw4] [ 1%] PASSED tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 244[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 245tests/client/test_session.py::test_era_neutral_properties_after_discover 246[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 247tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 248tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 249tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 250[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 251[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 252tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] 253tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 254[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] 255[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 256tests/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] 257tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 258[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 259[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 260[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 261tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 262tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 263tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 264[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 265[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 266[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] 267tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 268tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 269[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 270tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 271tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 272[gw0] [ 1%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 273[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 274[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 275tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 276tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 277[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 278[gw2] [ 1%] PASSED tests/client/test_client.py::test_client_send_ping 279[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 280tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 281tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 282tests/client/test_client.py::test_client_list_tools 283[gw4] [ 1%] PASSED tests/client/test_session.py::test_era_neutral_properties_after_discover 284[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 285tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 286tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 287tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 288[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] 289[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 290tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 291[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 292tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 293tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 294[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 295[gw4] [ 1%] PASSED tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 296tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 297[gw0] [ 1%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 298[gw7] [ 1%] PASSED tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 299[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 300tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 301tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 302tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 303tests/cli/test_utils.py::test_parse_file_path_missing 304[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 305[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 306[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 307[gw7] [ 2%] PASSED tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 308tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 309tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 310tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 311[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 312[gw4] [ 2%] PASSED tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 313tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 314tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 315[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_parse_file_path_missing 316[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 317tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 318[gw7] [ 2%] PASSED tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 319tests/cli/test_utils.py::test_parse_file_exit_on_dir 320tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 321tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 322[gw2] [ 2%] PASSED tests/client/test_client.py::test_client_list_tools 323tests/client/test_client.py::test_client_call_tool 324[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 325tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 326[gw7] [ 2%] PASSED tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 327[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 328[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_parse_file_exit_on_dir 329tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 330tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 331tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 332[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 333[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 334tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 335tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 336[gw7] [ 2%] PASSED tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 337[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 338[gw4] [ 2%] PASSED tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 339[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 340tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 341[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 342tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 343tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 344[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 345tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 346[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 347tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 348tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 349tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 350[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 351[gw7] [ 2%] PASSED tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 352[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 353[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 354tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 355tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 356tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 357[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 358tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 359[gw4] [ 2%] PASSED tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 360tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 361[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 362tests/cli/test_utils.py::test_get_npx_unix_like 363tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 364[gw5] [ 2%] PASSED tests/client/test_streamable_http.py::test_default_sse_limit_fails_one_large_tool_call_and_keeps_the_session_usable 365[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 366[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_get_npx_unix_like 367tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification 368[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 369tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 370[gw4] [ 2%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 371[gw7] [ 2%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 372[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 373tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 374tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 375tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 376tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 377[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 378[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 379tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 380[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 381tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 382[gw4] [ 2%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 383[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 384tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 385tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 386tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 387[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 388tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 389[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 390[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 391tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 392[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] 393[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 394tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 395tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 396[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 397tests/cli/test_utils.py::test_get_npx_windows 398tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 399[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_get_npx_windows 400tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 401[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 402[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 403[gw7] [ 2%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 404[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 405[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 406tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 407tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 408tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 409tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 410[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 411tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 412[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 413[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 414tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 415tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 416tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 417[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 418[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 419[gw7] [ 2%] PASSED tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 420[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 421tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 422tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 423tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 424tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 425[gw3] [ 3%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 426[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 427[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] 428tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 429tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 430tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 431[gw3] [ 3%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 432tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 433tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 434tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 435[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 436[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] 437[gw3] [ 3%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 438tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 439tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 440tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 441[gw7] [ 3%] PASSED tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 442[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 443[gw3] [ 3%] PASSED tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 444tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 445tests/client/test_extension.py::test_advertise_serves_captured_settings 446tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 447[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 448[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 449tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 450[gw8] [ 3%] PASSED tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 451[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] 452tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 453tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 454tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 455[gw7] [ 3%] PASSED tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 456[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 457tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 458tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 459[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] 460tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 461[gw7] [ 3%] PASSED tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 462[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 463tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 464tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 465[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] 466tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 467[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 468tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 469[gw7] [ 3%] PASSED tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 470tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 471[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] 472[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 473tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 474tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 475[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] 476[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 477tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 478tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 479[gw7] [ 3%] PASSED tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 480tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 481[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 482[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] 483tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 484tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 485[gw7] [ 3%] PASSED tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 486[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 487tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 488[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] 489tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 490tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 491[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 492tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 493[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 494[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] 495[gw7] [ 3%] PASSED tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 496tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 497tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 498tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 499tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 500[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 501[gw3] [ 3%] PASSED tests/client/test_extension.py::test_advertise_serves_captured_settings 502tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 503[gw7] [ 3%] PASSED tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 504tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 505tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 506[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 507[gw3] [ 3%] PASSED tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 508[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 509tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 510tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 511tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 512[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 513[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 514[gw7] [ 3%] PASSED tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 515[gw8] [ 3%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 516tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 517tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 518tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 519[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 520[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 521tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 522tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 523tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 524[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 525[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 526tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 527[gw8] [ 3%] PASSED tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 528tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 529[gw7] [ 3%] PASSED tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 530tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 531tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 532[gw6] [ 3%] PASSED tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 533[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 534[gw7] [ 3%] PASSED tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 535tests/docs_src/test_first_steps.py::test_call_the_tool 536tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 537tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 538[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 539tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 540[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 541[gw8] [ 3%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 542tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] 543[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 544tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 545[gw7] [ 4%] PASSED tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 546tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 547tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 548[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 549tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 550[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 551[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 552tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 553[gw8] [ 4%] PASSED tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 554tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 555[gw7] [ 4%] PASSED tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 556[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] 557tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 558[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 559tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 560tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 561tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 562[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 563[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 564tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 565[gw7] [ 4%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 566tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 567tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 568[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] 569[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 570tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 571tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits 572[gw7] [ 4%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 573[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 574tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 575tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 576[gw1] [ 4%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 577tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 578[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 579tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 580[gw7] [ 4%] PASSED tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 581[gw3] [ 4%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 582[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 583tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] 584tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 585tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 586[gw1] [ 4%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 587tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 588[gw5] [ 4%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification 589[gw3] [ 4%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 590[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 591tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 592[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 593tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 594tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages 595tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 596[gw3] [ 4%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 597[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 598tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 599tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 600[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 601[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 602tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 603tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 604[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 605tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 606[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 607[gw3] [ 4%] PASSED tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 608tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 609[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 610tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 611tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 612[gw5] [ 4%] PASSED tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages 613[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 614tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 615[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 616tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 617[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 618tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 619[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 620tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 621[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 622tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 623[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 624tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 625[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 626[gw2] [ 4%] PASSED tests/client/test_client.py::test_client_call_tool 627tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 628tests/client/test_client.py::test_read_resource 629tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 630[gw3] [ 4%] PASSED tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 631[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 632tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 633tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 634[gw3] [ 4%] PASSED tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 635tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 636[gw3] [ 4%] PASSED tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 637[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 638[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 639tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 640tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 641tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 642[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 643tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 644[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 645[gw3] [ 4%] PASSED tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 646[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 647tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 648tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 649tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 650[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 651tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 652[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 653[gw2] [ 4%] PASSED tests/client/test_client.py::test_read_resource 654tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 655tests/client/test_client.py::test_read_resource_error_propagates 656[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 657[gw3] [ 4%] PASSED tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 658[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 659tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 660tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 661[gw2] [ 4%] PASSED tests/client/test_client.py::test_read_resource_error_propagates 662[gw3] [ 5%] PASSED tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 663tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 664tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 665[gw1] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 666tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 667[gw6] [ 5%] PASSED tests/docs_src/test_first_steps.py::test_call_the_tool 668[gw3] [ 5%] PASSED tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 669[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 670tests/client/test_input_required.py::test_default_max_rounds_constant 671tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 672tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 673[gw2] [ 5%] PASSED tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 674[gw3] [ 5%] PASSED tests/client/test_input_required.py::test_default_max_rounds_constant 675tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 676tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 677[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 678[gw6] [ 5%] PASSED tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 679tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 680tests/docs_src/test_first_steps.py::test_read_the_resource_template 681[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 682[gw2] [ 5%] PASSED tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 683tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 684tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 685tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 686[gw2] [ 5%] PASSED tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 687[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 688tests/client/test_client.py::test_get_prompt 689tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 690[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 691tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 692[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 693[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 694tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 695tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 696[gw6] [ 5%] PASSED tests/docs_src/test_first_steps.py::test_read_the_resource_template 697[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 698tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 699tests/docs_src/test_first_steps.py::test_get_the_prompt 700[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 701[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 702tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 703tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 704[gw6] [ 5%] PASSED tests/docs_src/test_first_steps.py::test_get_the_prompt 705tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 706[gw8] [ 5%] PASSED tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 707tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 708[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 709tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add-add-False] 710[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 711tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 712[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 713tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 714[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 715tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 716[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] 717[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 718tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 719[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 720tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 721tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 722[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 723[gw6] [ 5%] PASSED tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 724[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 725tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 726[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 727tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 728[gw8] [ 5%] PASSED tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 729tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 730[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 731tests/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] 732[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 733tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 734[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 735tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 736[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] 737tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[ add-=?base64?IGFkZA==?=-True] 738tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 739tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 740[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 741[gw3] [ 5%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 742tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 743[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] 744[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 745tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 746[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 747tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 748tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 749tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add -=?base64?YWRkIA==?=-True] 750[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 751[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] 752tests/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] 753tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 754[gw8] [ 5%] PASSED tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 755[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] 756[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 757tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 758tests/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] 759tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text 760[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 761[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 762[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] 763tests/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] 764tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 765tests/client/test_auth.py::test_union_scopes[dedup] 766[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[dedup] 767[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] 768tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 769tests/client/test_auth.py::test_union_scopes[no-previous] 770[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[no-previous] 771tests/client/test_auth.py::test_union_scopes[no-new] 772[gw8] [ 5%] PASSED tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text 773[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[no-new] 774tests/client/test_auth.py::test_union_scopes[both-empty] 775tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources 776[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[both-empty] 777[gw3] [ 5%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 778[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 779tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 780tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 781tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 782[gw8] [ 6%] PASSED tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources 783tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 784[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 785tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 786[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 787tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 788[gw8] [ 6%] PASSED tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 789[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 790tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 791[gw0] [ 6%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 792tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 793tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 794[gw8] [ 6%] PASSED tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 795[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 796tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 797tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 798[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 799tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 800[gw0] [ 6%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 801tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 802[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 803tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 804[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 805[gw2] [ 6%] PASSED tests/client/test_client.py::test_get_prompt 806[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 807tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 808tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 809tests/client/test_client.py::test_client_session_property_before_enter 810[gw0] [ 6%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 811[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 812[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 813tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 814tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 815tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 816[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 817tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 818[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 819tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 820[gw0] [ 6%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 821tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 822[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 823tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 824[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 825tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 826[gw4] [ 6%] PASSED tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits 827[gw6] [ 6%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 828[gw0] [ 6%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 829tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 830[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 831tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 832tests/client/test_session.py::test_call_tool_rejects_a_null_structured_content_the_output_schema_forbids 833tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 834[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 835tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 836[gw0] [ 6%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 837[gw4] [ 6%] PASSED tests/client/test_session.py::test_call_tool_rejects_a_null_structured_content_the_output_schema_forbids 838[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 839[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 840tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 841tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 842tests/client/test_session.py::test_call_tool_reports_an_absent_structured_content_as_missing_even_when_null_is_permitted 843[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 844tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 845[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 846[gw7] [ 6%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] 847[gw2] [ 6%] PASSED tests/client/test_client.py::test_client_session_property_before_enter 848[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 849tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 850tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 851tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[legacy] 852tests/client/test_client.py::test_client_reentry_raises_runtime_error 853[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 854tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 855[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 856tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 857[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 858[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 859tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 860tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 861[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 862tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 863[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 864tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 865tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 866[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 867tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 868[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 869tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 870[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 871tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 872[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 873[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 874tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 875tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 876[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 877tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 878[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 879tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 880[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 881tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 882[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 883[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 884tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 885tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 886[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 887[gw4] [ 6%] PASSED tests/client/test_session.py::test_call_tool_reports_an_absent_structured_content_as_missing_even_when_null_is_permitted 888tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 889[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 890tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 891tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 892[gw2] [ 6%] PASSED tests/client/test_client.py::test_client_reentry_raises_runtime_error 893[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 894[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 895tests/client/test_client.py::test_client_send_progress_notification 896tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 897[gw6] [ 6%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 898tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 899[gw4] [ 7%] PASSED tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 900[gw2] [ 7%] PASSED tests/client/test_client.py::test_client_send_progress_notification 901tests/client/test_client.py::test_client_subscribe_resource 902tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 903[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 904[gw6] [ 7%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 905tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 906tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] 907[gw3] [ 7%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 908tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 909[gw2] [ 7%] PASSED tests/client/test_client.py::test_client_subscribe_resource 910tests/client/test_client.py::test_client_unsubscribe_resource 911[gw4] [ 7%] PASSED tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 912[gw6] [ 7%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 913tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 914[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] 915tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 916tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] 917[gw2] [ 7%] PASSED tests/client/test_client.py::test_client_unsubscribe_resource 918tests/client/test_client.py::test_client_set_logging_level 919[gw6] [ 7%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 920tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 921[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] 922[gw3] [ 7%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 923tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 924[gw2] [ 7%] PASSED tests/client/test_client.py::test_client_set_logging_level 925tests/client/test_client.py::test_client_list_resources_with_params 926[gw6] [ 7%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 927tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 928tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 929tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 930[gw8] [ 7%] PASSED tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 931[gw4] [ 7%] PASSED tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 932tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 933tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 934[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 935tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 936[gw0] [ 7%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 937[gw6] [ 7%] PASSED tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 938[gw4] [ 7%] PASSED tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 939tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 940[gw8] [ 7%] PASSED tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 941tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 942tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 943[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 944tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 945tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 946[gw6] [ 7%] PASSED tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 947tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 948[gw1] [ 7%] PASSED tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 949[gw8] [ 7%] PASSED tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 950[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 951[gw4] [ 7%] PASSED tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 952tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 953tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 954tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 955tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 956[gw8] [ 7%] PASSED tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 957[gw6] [ 7%] PASSED tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 958[gw0] [ 7%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 959tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 960tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 961[gw4] [ 7%] PASSED tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 962[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 963tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 964tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 965tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 966[gw1] [ 7%] PASSED tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 967[gw6] [ 7%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 968tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 969tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 970[gw8] [ 7%] PASSED tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 971[gw4] [ 7%] PASSED tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 972tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 973[gw0] [ 7%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 974tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 975[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 976[gw1] [ 7%] PASSED tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 977[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 978[gw6] [ 7%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 979tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 980tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 981tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 982[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 983tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial001] 984[gw4] [ 7%] PASSED tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 985tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 986[gw1] [ 7%] PASSED tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 987tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 988tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 989tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 990[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 991[gw8] [ 7%] PASSED tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 992tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 993[gw4] [ 7%] PASSED tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 994tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 995tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 996[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 997tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 998[gw4] [ 7%] PASSED tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 999[gw1] [ 7%] PASSED tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 1000[gw8] [ 7%] PASSED tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 1001tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 1002tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 1003[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 1004tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 1005tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 1006[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 1007tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 1008[gw8] [ 7%] PASSED tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 1009[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 1010[gw4] [ 7%] PASSED tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 1011tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 1012tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 1013tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 1014[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 1015tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 1016[gw4] [ 7%] PASSED tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 1017[gw1] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 1018tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 1019[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 1020tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 1021tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 1022[gw4] [ 8%] PASSED tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 1023[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 1024[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1025tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 1026tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 1027[gw6] [ 8%] PASSED tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial001] 1028[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 1029tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 1030[gw4] [ 8%] PASSED tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 1031tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 1032tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial002] 1033tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1034[gw4] [ 8%] PASSED tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 1035[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 1036tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 1037[gw1] [ 8%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 1038tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 1039tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 1040[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 1041tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 1042[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 1043tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 1044[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1045[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 1046tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 1047[gw1] [ 8%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 1048tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1049[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 1050tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 1051tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1052[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 1053tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 1054[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 1055tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 1056[gw6] [ 8%] PASSED tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial002] 1057[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 1058[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1059[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1060tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 1061tests/docs_src/test_header_parameters.py::test_a_call_whose_header_and_body_disagree_is_rejected 1062tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1063[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 1064tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 1065tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1066[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1067[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1068tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1069tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1070[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1071[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1072tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1073tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1074[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1075tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1076[gw6] [ 8%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_whose_header_and_body_disagree_is_rejected 1077[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1078tests/docs_src/test_header_parameters.py::test_a_client_that_has_not_listed_the_tool_is_rejected_then_lists_and_resends_once 1079tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1080[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1081[gw3] [ 8%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 1082[gw1] [ 8%] PASSED tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1083tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1084tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 1085tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1086[gw2] [ 8%] PASSED tests/client/test_client.py::test_client_list_resources_with_params 1087tests/client/test_client.py::test_client_list_resource_templates 1088[gw3] [ 8%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 1089[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 1090tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 1091tests/client/test_list_roots_callback.py::test_list_roots_callback 1092[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 1093tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 1094[gw8] [ 8%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 1095[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 1096tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 1097[gw2] [ 8%] PASSED tests/client/test_client.py::test_client_list_resource_templates 1098tests/client/test_client.py::test_list_prompts 1099[gw0] [ 8%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1100tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1101tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 1102[gw0] [ 8%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1103[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 1104tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 1105tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1106[gw8] [ 8%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 1107tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 1108[gw3] [ 8%] PASSED tests/client/test_list_roots_callback.py::test_list_roots_callback 1109[gw1] [ 8%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1110tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1111tests/client/test_logging_callback.py::test_logging_callback 1112[gw0] [ 8%] PASSED tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1113tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1114[gw4] [ 8%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 1115tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1116[gw0] [ 8%] PASSED tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1117[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] 1118tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1119tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1120[gw2] [ 8%] PASSED tests/client/test_client.py::test_list_prompts 1121tests/client/test_client.py::test_complete_with_prompt_reference 1122[gw0] [ 8%] PASSED tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1123tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1124[gw8] [ 8%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 1125tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 1126[gw1] [ 8%] PASSED tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1127[gw4] [ 8%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1128[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 1129[gw0] [ 8%] PASSED tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1130tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1131tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 1132[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 1133tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1134tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 1135[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 1136tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 1137tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1138[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 1139[gw4] [ 9%] PASSED tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1140tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 1141[gw2] [ 9%] PASSED tests/client/test_client.py::test_complete_with_prompt_reference 1142tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1143[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 1144tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 1145[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1146[gw8] [ 9%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 1147[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 1148tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 1149tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport 1150tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 1151[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 1152tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 1153tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1154[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1155[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1156[gw4] [ 9%] PASSED tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1157tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1158tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1159tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1160[gw1] [ 9%] PASSED tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1161[gw8] [ 9%] PASSED tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 1162[gw4] [ 9%] PASSED tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1163tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1164tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1165[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1166[gw1] [ 9%] PASSED tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1167tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 1168tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1169tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1170[gw4] [ 9%] PASSED tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1171tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1172[gw1] [ 9%] PASSED tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1173tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1174[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1175[gw1] [ 9%] PASSED tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1176tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1177[gw4] [ 9%] PASSED tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1178tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1179tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1180[gw1] [ 9%] PASSED tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1181tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1182[gw4] [ 9%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1183[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1184tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1185tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1186[gw1] [ 9%] PASSED tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1187[gw8] [ 9%] PASSED tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 1188tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1189[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1190tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 1191tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1192[gw4] [ 9%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1193[gw1] [ 9%] PASSED tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1194tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1195tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1196[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1197tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1198[gw1] [ 9%] PASSED tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1199[gw5] [ 9%] PASSED tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 1200tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1201[gw1] [ 9%] PASSED tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1202tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 1203[gw4] [ 9%] PASSED tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1204tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1205[gw8] [ 9%] PASSED tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 1206tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1207[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1208tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 1209tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1210[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1211tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1212[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1213[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1214tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1215tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1216[gw4] [ 9%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1217[gw5] [ 9%] PASSED tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 1218[gw1] [ 9%] PASSED tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1219tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1220tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1221[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1222tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1223tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 1224[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1225tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1226[gw4] [ 9%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1227[gw7] [ 9%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[legacy] 1228tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 1229tests/docs_src/test_cancellation.py::test_abandoning_the_call_over_streamable_http_runs_the_cleanup_too[2026-07-28] 1230[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1231tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 1232[gw8] [ 9%] PASSED tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 1233tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 1234[gw2] [ 9%] PASSED tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport 1235[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 1236[gw4] [ 9%] PASSED tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 1237tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 1238tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 1239tests/client/test_client.py::test_client_uses_transport_directly 1240[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 1241tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 1242[gw4] [ 9%] PASSED tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 1243tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 1244[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 1245[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 1246tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1247tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1248[gw8] [ 9%] PASSED tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 1249tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 1250[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1251[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1252tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1253[gw8] [ 9%] PASSED tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 1254tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 1255[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1256tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1257tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1258[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1259tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1260[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1261[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1262tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1263tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1264[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1265tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1266[gw0] [ 10%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1267tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1268[gw0] [ 10%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1269tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1270[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1271tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1272[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1273tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 1274[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 1275tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 1276[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 1277tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 1278[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 1279[gw2] [ 10%] PASSED tests/client/test_client.py::test_client_uses_transport_directly 1280[gw0] [ 10%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1281tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1282tests/client/test_client.py::test_context_propagation 1283[gw0] [ 10%] PASSED tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1284tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1285tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1286[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1287tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1288[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1289tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1290[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1291tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1292[gw2] [ 10%] PASSED tests/client/test_client.py::test_context_propagation 1293[gw6] [ 10%] PASSED tests/docs_src/test_header_parameters.py::test_a_client_that_has_not_listed_the_tool_is_rejected_then_lists_and_resends_once 1294tests/client/test_client.py::test_client_auto_mode_probes_discover_then_adopts 1295tests/docs_src/test_header_parameters.py::test_a_legacy_http_connection_ignores_the_annotation 1296[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1297tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1298[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1299tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1300[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1301[gw2] [ 10%] PASSED tests/client/test_client.py::test_client_auto_mode_probes_discover_then_adopts 1302[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1303tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 1304tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1305tests/client/test_client.py::test_client_auto_mode_negotiates_modern_over_a_stream_loop 1306[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 1307tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 1308[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1309tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1310[gw1] [ 10%] PASSED tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1311tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1312[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1313tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1314[gw2] [ 10%] PASSED tests/client/test_client.py::test_client_auto_mode_negotiates_modern_over_a_stream_loop 1315[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1316tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1317tests/client/test_client.py::test_client_pinned_modern_mode_works_over_a_stream_loop 1318[gw1] [ 10%] PASSED tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1319[gw6] [ 10%] PASSED tests/docs_src/test_header_parameters.py::test_a_legacy_http_connection_ignores_the_annotation 1320tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1321tests/docs_src/test_header_parameters.py::test_a_connection_that_is_not_http_ignores_the_annotation 1322[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1323tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1324[gw2] [ 10%] PASSED tests/client/test_client.py::test_client_pinned_modern_mode_works_over_a_stream_loop 1325tests/client/test_client.py::test_client_legacy_mode_still_handshakes_over_a_stream_loop 1326[gw6] [ 10%] PASSED tests/docs_src/test_header_parameters.py::test_a_connection_that_is_not_http_ignores_the_annotation 1327tests/docs_src/test_header_parameters.py::test_int_and_bool_arguments_can_be_marked 1328[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 1329tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 1330[gw3] [ 10%] PASSED tests/client/test_logging_callback.py::test_logging_callback 1331[gw2] [ 10%] PASSED tests/client/test_client.py::test_client_legacy_mode_still_handshakes_over_a_stream_loop 1332[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 1333tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 1334tests/client/test_client.py::test_client_auto_mode_recovers_from_a_timed_out_probe_over_a_stream_loop 1335[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 1336tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 1337tests/client/test_notification_response.py::test_non_compliant_notification_response 1338[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 1339tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 1340[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 1341tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 1342[gw6] [ 10%] PASSED tests/docs_src/test_header_parameters.py::test_int_and_bool_arguments_can_be_marked 1343[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 1344tests/docs_src/test_header_parameters.py::test_any_other_type_is_refused_when_the_tool_is_registered 1345tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 1346[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 1347tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 1348[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 1349tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 1350[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 1351[gw6] [ 10%] PASSED tests/docs_src/test_header_parameters.py::test_any_other_type_is_refused_when_the_tool_is_registered 1352tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 1353[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 1354[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 1355tests/docs_src/test_header_parameters.py::test_a_plain_optional_argument_is_refused_and_the_spelled_out_schema_registers 1356[gw3] [ 10%] PASSED tests/client/test_notification_response.py::test_non_compliant_notification_response 1357tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 1358tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 1359tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1360[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 1361tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial003.py] 1362[gw4] [ 10%] PASSED tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 1363[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial003.py] 1364tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_anyio.py] 1365tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 1366[gw8] [ 10%] PASSED tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 1367[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_anyio.py] 1368tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_asyncio.py] 1369tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 1370[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_asyncio.py] 1371tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_trio.py] 1372[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial004_trio.py] 1373tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial005.py] 1374[gw3] [ 11%] PASSED tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1375[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 1376[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial005.py] 1377tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial006.py] 1378tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 1379tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1380[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial006.py] 1381tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial007.py] 1382[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial007.py] 1383tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/testing/tutorial001.py] 1384[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/testing/tutorial001.py] 1385tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial001.py] 1386[gw5] [ 11%] PASSED tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 1387[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial001.py] 1388tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial002.py] 1389tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1390[gw8] [ 11%] PASSED tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 1391[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial002.py] 1392[gw3] [ 11%] PASSED tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1393tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial003.py] 1394tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 1395[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1396tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1397[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 1398[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial003.py] 1399tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1400tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial004.py] 1401tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 1402[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial004.py] 1403tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial005.py] 1404[gw4] [ 11%] PASSED tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 1405[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/tools/tutorial005.py] 1406tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial001.py] 1407tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1408[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial001.py] 1409tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial002.py] 1410[gw3] [ 11%] PASSED tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1411[gw8] [ 11%] PASSED tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 1412tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1413[gw5] [ 11%] PASSED tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1414tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1415tests/docs_src/test_shape.py::test_private_mcp_import_detector 1416[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_private_mcp_import_detector 1417tests/docs_src/test_shape.py::test_retired_name_detector 1418[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_retired_name_detector 1419tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 1420[gw4] [ 11%] PASSED tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1421[gw3] [ 11%] PASSED tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1422[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 1423tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client 1424tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1425tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 1426[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 1427tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 1428[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 1429tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1430[gw1] [ 11%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1431[gw3] [ 11%] PASSED tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1432tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1433tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1434[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1435tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1436[gw1] [ 11%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1437[gw3] [ 11%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1438tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1439[gw4] [ 11%] PASSED tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client 1440tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1441tests/client/test_session_group.py::test_client_session_group_init 1442[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1443[gw4] [ 11%] PASSED tests/client/test_session_group.py::test_client_session_group_init 1444tests/client/test_session_group.py::test_client_session_group_component_properties 1445tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1446[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1447[gw4] [ 11%] PASSED tests/client/test_session_group.py::test_client_session_group_component_properties 1448[gw2] [ 11%] PASSED tests/client/test_client.py::test_client_auto_mode_recovers_from_a_timed_out_probe_over_a_stream_loop 1449[gw3] [ 11%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1450tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1451tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32601] 1452tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1453[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1454tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 1455[gw1] [ 11%] PASSED tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1456[gw5] [ 11%] PASSED tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1457tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1458[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 1459tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1460[gw2] [ 11%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32601] 1461tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 1462tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32001] 1463[gw1] [ 11%] PASSED tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1464tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1465[gw0] [ 11%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 1466[gw3] [ 11%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1467tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1468[gw1] [ 11%] PASSED tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1469tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1470[gw2] [ 11%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32001] 1471[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1472tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32603] 1473[gw3] [ 11%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1474tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1475tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1476[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1477tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1478tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 1479[gw0] [ 11%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 1480tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 1481[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1482[gw5] [ 11%] PASSED tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1483[gw2] [ 11%] PASSED tests/client/test_client.py::test_client_auto_mode_falls_back_to_initialize_on_legacy_signal[-32603] 1484tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1485tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1486tests/client/test_client.py::test_modern_list_tools_drops_tools_with_invalid_x_mcp_header_but_legacy_does_not 1487[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial002.py] 1488[gw6] [ 11%] PASSED tests/docs_src/test_header_parameters.py::test_a_plain_optional_argument_is_refused_and_the_spelled_out_schema_registers 1489tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial003.py] 1490tests/docs_src/test_header_parameters.py::test_the_low_level_server_serves_an_invalid_annotation_and_a_2026_client_leaves_the_tool_out 1491[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1492tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1493[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1494[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1495tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1496[gw0] [ 12%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 1497tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 1498[gw2] [ 12%] PASSED tests/client/test_client.py::test_modern_list_tools_drops_tools_with_invalid_x_mcp_header_but_legacy_does_not 1499[gw0] [ 12%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 1500tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 1501tests/client/test_client.py::test_a_complete_listing_prunes_per_tool_state_for_tools_it_no_longer_contains 1502[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial003.py] 1503[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1504tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial004.py] 1505[gw6] [ 12%] 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 1506[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial004.py] 1507tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial002] 1508tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial005.py] 1509[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial005.py] 1510tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial006.py] 1511[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial006.py] 1512tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial007.py] 1513[gw2] [ 12%] PASSED tests/client/test_client.py::test_a_complete_listing_prunes_per_tool_state_for_tools_it_no_longer_contains 1514tests/client/test_client.py::test_a_complete_listing_prunes_output_schemas_on_a_legacy_session_too 1515tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1516[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1517tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1518tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1519[gw6] [ 12%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial002] 1520tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial003] 1521[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1522[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1523[gw2] [ 12%] PASSED tests/client/test_client.py::test_a_complete_listing_prunes_output_schemas_on_a_legacy_session_too 1524tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1525[gw1] [ 12%] PASSED tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1526tests/client/test_client.py::test_a_listing_with_a_next_cursor_prunes_no_per_tool_state 1527[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1528tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1529tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1530[gw2] [ 12%] PASSED tests/client/test_client.py::test_a_listing_with_a_next_cursor_prunes_no_per_tool_state 1531tests/client/test_client.py::test_a_cursor_page_fetch_prunes_no_per_tool_state 1532[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1533tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1534[gw6] [ 12%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial003] 1535tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1536tests/docs_src/test_header_parameters.py::test_the_schema_the_lookup_returns_is_the_one_the_header_is_checked_against 1537[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1538[gw2] [ 12%] PASSED tests/client/test_client.py::test_a_cursor_page_fetch_prunes_no_per_tool_state 1539[gw1] [ 12%] PASSED tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1540tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1541[gw7] [ 12%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_over_streamable_http_runs_the_cleanup_too[2026-07-28] 1542tests/client/test_client.py::test_client_rejects_handshake_era_mode_at_construction 1543tests/docs_src/test_cancellation.py::test_abandoning_the_call_over_streamable_http_runs_the_cleanup_too[legacy] 1544[gw2] [ 12%] PASSED tests/client/test_client.py::test_client_rejects_handshake_era_mode_at_construction 1545tests/client/test_client.py::test_call_tool_auto_loop_dispatches_elicitation_then_returns_final_result 1546[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1547tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1548tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1549[gw6] [ 12%] PASSED tests/docs_src/test_header_parameters.py::test_the_schema_the_lookup_returns_is_the_one_the_header_is_checked_against 1550[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1551[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1552tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1553[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1554tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 1555tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1556[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1557tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1558tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 1559[gw6] [ 12%] PASSED tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 1560[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1561tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1562[gw2] [ 12%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_dispatches_elicitation_then_returns_final_result 1563tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 1564[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1565tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1566tests/client/test_client.py::test_call_tool_auto_loop_dispatches_sampling_then_returns_final_result 1567[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1568[gw6] [ 12%] PASSED tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 1569tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 1570[gw6] [ 12%] PASSED tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 1571tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 1572[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 1573[gw6] [ 12%] PASSED tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 1574tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 1575tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 1576[gw1] [ 12%] PASSED tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1577[gw2] [ 12%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_dispatches_sampling_then_returns_final_result 1578[gw6] [ 12%] PASSED tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 1579tests/client/test_client.py::test_call_tool_auto_loop_dispatches_list_roots_then_returns_final_result 1580tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 1581tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1582[gw6] [ 12%] PASSED tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 1583tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected 1584[gw5] [ 12%] PASSED tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 1585[gw6] [ 12%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected 1586tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds 1587tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected 1588[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1589[gw6] [ 12%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected 1590[gw2] [ 12%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_dispatches_list_roots_then_returns_final_result 1591tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1592tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected 1593tests/client/test_client.py::test_call_tool_auto_loop_round_trips_evolving_request_state_across_three_rounds 1594[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1595tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1596[gw6] [ 12%] PASSED tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected 1597tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile 1598[gw1] [ 12%] PASSED tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1599tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1600[gw6] [ 12%] PASSED tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile 1601[gw5] [ 12%] PASSED tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds 1602[gw1] [ 12%] PASSED tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1603tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request 1604tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1605tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce 1606[gw0] [ 12%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 1607[gw1] [ 13%] PASSED tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1608[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial007.py] 1609tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 1610tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1611[gw2] [ 13%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_round_trips_evolving_request_state_across_three_rounds 1612tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial008.py] 1613tests/client/test_client.py::test_call_tool_auto_loop_raises_mcp_error_when_no_callback_registered 1614[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1615[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/troubleshooting/tutorial008.py] 1616tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1617tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial001.py] 1618[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial001.py] 1619tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial002.py] 1620[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1621[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial002.py] 1622tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial003.py] 1623tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1624[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial003.py] 1625tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial004.py] 1626[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1627[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial004.py] 1628[gw2] [ 13%] PASSED tests/client/test_client.py::test_call_tool_auto_loop_raises_mcp_error_when_no_callback_registered 1629[gw0] [ 13%] PASSED tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 1630tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 1631tests/client/test_client.py::test_get_prompt_auto_loop_resolves_input_required_via_callbacks 1632tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial005.py] 1633[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/uri_templates/tutorial005.py] 1634tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/whats_new/tutorial001.py] 1635[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/whats_new/tutorial001.py] 1636tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1637tests/docs_src/test_shape.py::test_every_example_is_included_by_a_page 1638[gw0] [ 13%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 1639tests/client/test_auth.py::test_validate_resource_custom_callback 1640[gw2] [ 13%] PASSED tests/client/test_client.py::test_get_prompt_auto_loop_resolves_input_required_via_callbacks 1641[gw6] [ 13%] PASSED tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request 1642[gw0] [ 13%] PASSED tests/client/test_auth.py::test_validate_resource_custom_callback 1643tests/client/test_client.py::test_read_resource_auto_loop_resolves_input_required_via_callbacks 1644tests/client/test_session_group.py::test_client_session_group_call_tool 1645tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 1646tests/docs_src/test_index.py::test_add_tool 1647tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1648[gw0] [ 13%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 1649[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1650tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 1651tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] 1652[gw2] [ 13%] PASSED tests/client/test_client.py::test_read_resource_auto_loop_resolves_input_required_via_callbacks 1653[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] 1654tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] 1655[gw0] [ 13%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 1656[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] 1657tests/client/test_client_caching.py::test_an_explicit_target_id_overrides_both_url_and_in_process_identity 1658tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1659tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 1660[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1661[gw6] [ 13%] PASSED tests/docs_src/test_index.py::test_add_tool 1662tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1663tests/docs_src/test_index.py::test_greeting_resource_template 1664[gw1] [ 13%] PASSED tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1665[gw0] [ 13%] PASSED tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 1666[gw2] [ 13%] PASSED tests/client/test_client_caching.py::test_an_explicit_target_id_overrides_both_url_and_in_process_identity 1667tests/client/test_client_caching.py::test_userinfo_variants_of_a_server_url_share_one_cache_identity 1668tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 1669tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1670[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_every_example_is_included_by_a_page 1671[gw2] [ 13%] PASSED tests/client/test_client_caching.py::test_userinfo_variants_of_a_server_url_share_one_cache_identity 1672tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[scheme-case] 1673tests/docs_src/test_shape.py::test_every_included_path_exists 1674[gw4] [ 13%] PASSED tests/client/test_session_group.py::test_client_session_group_call_tool 1675[gw0] [ 13%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 1676[gw2] [ 13%] PASSED tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[scheme-case] 1677tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[empty-query] 1678tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1679[gw2] [ 13%] PASSED tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[empty-query] 1680tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[empty-fragment] 1681[gw6] [ 13%] PASSED tests/docs_src/test_index.py::test_greeting_resource_template 1682tests/client/test_session_group.py::test_client_session_group_call_tool_forwards_allow_input_required 1683[gw0] [ 13%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1684tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once 1685tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 1686[gw0] [ 13%] PASSED tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 1687tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 1688[gw4] [ 13%] PASSED tests/client/test_session_group.py::test_client_session_group_call_tool_forwards_allow_input_required 1689tests/client/test_session_group.py::test_client_session_group_connect_to_server 1690[gw0] [ 13%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 1691tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 1692[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_every_included_path_exists 1693[gw0] [ 13%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 1694[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1695tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 1696tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1697[gw0] [ 13%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 1698tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 1699[gw0] [ 13%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 1700tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 1701[gw3] [ 13%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1702tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1703[gw0] [ 13%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 1704tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 1705[gw0] [ 13%] PASSED tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 1706tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 1707[gw0] [ 13%] PASSED tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 1708tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 1709[gw3] [ 13%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1710tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1711[gw0] [ 13%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 1712tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 1713[gw0] [ 13%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 1714tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 1715[gw0] [ 13%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 1716tests/client/test_auth.py::test_registration_request_sends_application_type 1717[gw0] [ 13%] PASSED tests/client/test_auth.py::test_registration_request_sends_application_type 1718tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 1719[gw3] [ 13%] PASSED tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1720tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1721[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1722tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1723[gw4] [ 13%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server 1724[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1725tests/client/test_session_group.py::test_client_session_group_connect_to_server_with_name_hook 1726tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1727[gw3] [ 14%] PASSED tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1728[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1729tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1730tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1731[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1732tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1733[gw3] [ 14%] PASSED tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1734[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1735tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1736tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 1737[gw3] [ 14%] PASSED tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 1738tests/docs_src/test_structured_output.py::test_scalar_return_is_wrapped 1739tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 1740[gw3] [ 14%] PASSED tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 1741tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 1742[gw4] [ 14%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server_with_name_hook 1743[gw3] [ 14%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 1744tests/client/test_session_group.py::test_client_session_group_disconnect_from_server 1745tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 1746[gw3] [ 14%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 1747tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 1748[gw3] [ 14%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 1749tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 1750[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1751[gw3] [ 14%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 1752[gw1] [ 14%] PASSED tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1753tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 1754tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1755tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1756[gw4] [ 14%] PASSED tests/client/test_session_group.py::test_client_session_group_disconnect_from_server 1757[gw3] [ 14%] PASSED tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 1758[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1759tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1760[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1761tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize 1762[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1763tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1764tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1765[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1766[gw3] [ 14%] PASSED tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize 1767tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1768tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises 1769[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1770tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1771[gw1] [ 14%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1772[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1773tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1774tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1775[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1776tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1777[gw3] [ 14%] PASSED tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises 1778[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1779tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1780tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] 1781tests/client/test_session_group.py::test_client_session_group_connect_to_server_duplicate_tool_raises_error 1782[gw1] [ 14%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1783[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1784tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1785tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1786[gw3] [ 14%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] 1787[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1788tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 1789tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] 1790[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1791[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 1792tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1793tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1794[gw3] [ 14%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] 1795[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1796tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1797tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] 1798[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1799tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1800[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1801[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1802tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1803tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1804[gw3] [ 14%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] 1805[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1806tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1807tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop 1808[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1809[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1810tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1811tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1812[gw3] [ 14%] PASSED tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop 1813tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts 1814[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1815[gw3] [ 14%] PASSED tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts 1816tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] 1817tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1818[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce 1819[gw4] [ 14%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server_duplicate_tool_raises_error 1820tests/client/test_subscriptions.py::test_graceful_server_close_ends_the_loop_cleanly 1821[gw3] [ 14%] PASSED tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] 1822tests/client/test_session_group.py::test_client_session_group_disconnect_non_existent_server 1823[gw1] [ 14%] PASSED tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1824tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[no-data] 1825tests/client/test_caching.py::test_store_failures_warn_once_per_burst 1826[gw3] [ 14%] PASSED tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[no-data] 1827tests/client/test_probe.py::test_handshake_unsupported_reprobes_at_most_once 1828[gw4] [ 14%] PASSED tests/client/test_session_group.py::test_client_session_group_disconnect_non_existent_server 1829[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_graceful_server_close_ends_the_loop_cleanly 1830tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance0-stdio-mcp.client.session_group.mcp.stdio_client] 1831[gw1] [ 14%] PASSED tests/client/test_caching.py::test_store_failures_warn_once_per_burst 1832tests/client/test_subscriptions.py::test_abrupt_stream_end_raises_subscription_lost 1833[gw3] [ 14%] PASSED tests/client/test_probe.py::test_handshake_unsupported_reprobes_at_most_once 1834tests/client/test_probe.py::test_any_other_handshake_error_propagates_unchanged 1835tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 1836[gw3] [ 14%] PASSED tests/client/test_probe.py::test_any_other_handshake_error_propagates_unchanged 1837tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[httpx2-connect-error] 1838[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_abrupt_stream_end_raises_subscription_lost 1839[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 1840tests/client/test_subscriptions.py::test_listen_on_a_legacy_connection_raises_the_typed_steer 1841[gw3] [ 14%] PASSED tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[httpx2-connect-error] 1842tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 1843tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[anyio-closed-resource] 1844[gw1] [ 14%] PASSED tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 1845[gw3] [ 15%] PASSED tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[anyio-closed-resource] 1846tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 1847tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data0-expected0] 1848[gw1] [ 15%] PASSED tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 1849[gw3] [ 15%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data0-expected0] 1850[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_listen_on_a_legacy_connection_raises_the_typed_steer 1851tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 1852tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data1-expected1] 1853tests/client/test_subscriptions.py::test_server_rejection_raises_from_enter_not_from_iteration 1854[gw1] [ 15%] PASSED tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 1855tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 1856[gw0] [ 15%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 1857[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_server_rejection_raises_from_enter_not_from_iteration 1858tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 1859tests/client/test_subscriptions.py::test_immediate_result_without_ack_opens_already_closed 1860[gw1] [ 15%] PASSED tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 1861tests/docs_src/test_whats_new.py::test_the_advertised_schema_is_the_literal_dict 1862[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_immediate_result_without_ack_opens_already_closed 1863tests/client/test_subscriptions.py::test_server_sent_cancelled_for_the_listen_id_raises_subscription_lost 1864[gw2] [ 15%] PASSED tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[empty-fragment] 1865[gw0] [ 15%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 1866tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[tab-in-userinfo] 1867[gw1] [ 15%] PASSED tests/docs_src/test_whats_new.py::test_the_advertised_schema_is_the_literal_dict 1868tests/docs_src/test_whats_new.py::test_a_valid_call_answers 1869[gw2] [ 15%] PASSED tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[tab-in-userinfo] 1870tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[tab-in-path] 1871[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_server_sent_cancelled_for_the_listen_id_raises_subscription_lost 1872tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 1873tests/client/test_subscriptions.py::test_exiting_the_context_frees_the_server_slot 1874[gw0] [ 15%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 1875tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 1876[gw1] [ 15%] PASSED tests/docs_src/test_whats_new.py::test_a_valid_call_answers 1877[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_exiting_the_context_frees_the_server_slot 1878tests/docs_src/test_whats_new.py::test_arguments_are_not_validated_and_a_handler_exception_is_sanitized 1879tests/client/test_subscriptions.py::test_concurrent_subscriptions_demux_independently 1880[gw0] [ 15%] PASSED tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 1881tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 1882[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1883tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1884[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_concurrent_subscriptions_demux_independently 1885[gw0] [ 15%] PASSED tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 1886tests/client/test_subscriptions.py::test_change_notifications_still_reach_message_handler 1887tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 1888[gw1] [ 15%] PASSED tests/docs_src/test_whats_new.py::test_arguments_are_not_validated_and_a_handler_exception_is_sanitized 1889tests/docs_src/test_whats_new.py::test_an_unknown_tool_is_a_deliberate_wire_error 1890[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1891[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_change_notifications_still_reach_message_handler 1892[gw0] [ 15%] PASSED tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 1893tests/client/test_subscriptions.py::test_enter_times_out_when_the_ack_never_arrives 1894tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 1895[gw1] [ 15%] PASSED tests/docs_src/test_whats_new.py::test_an_unknown_tool_is_a_deliberate_wire_error 1896tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1897tests/examples/test_stories.py::test_story[tools-server-in-memory-modern] 1898[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1899[gw0] [ 15%] PASSED tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 1900tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1901tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 1902[gw2] [ 15%] PASSED tests/client/test_client_caching.py::test_stripping_userinfo_changes_no_other_byte_of_the_url[tab-in-path] 1903tests/client/test_client_caching.py::test_a_url_without_an_authority_passes_through_unchanged 1904[gw2] [ 15%] PASSED tests/client/test_client_caching.py::test_a_url_without_an_authority_passes_through_unchanged 1905tests/client/test_client_caching.py::test_the_server_url_is_sha256_hashed_before_it_enters_key_material 1906[gw6] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once 1907[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1908tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter 1909tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1910[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1911tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1912[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1913tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1914[gw6] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter 1915tests/docs_src/test_legacy_clients.py::test_a_legacy_session_is_minted_in_process_and_a_stray_session_id_is_a_404 1916[gw4] [ 15%] 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] 1917[gw2] [ 15%] PASSED tests/client/test_client_caching.py::test_the_server_url_is_sha256_hashed_before_it_enters_key_material 1918tests/client/test_client_caching.py::test_urls_differing_only_in_query_have_distinct_cache_identities 1919tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance1-sse-mcp.client.session_group.sse_client] 1920[gw2] [ 15%] PASSED tests/client/test_client_caching.py::test_urls_differing_only_in_query_have_distinct_cache_identities 1921tests/client/test_client_caching.py::test_two_clients_on_one_in_process_server_get_distinct_cache_identities 1922[gw2] [ 15%] PASSED tests/client/test_client_caching.py::test_two_clients_on_one_in_process_server_get_distinct_cache_identities 1923tests/client/test_client_caching.py::test_a_transport_object_gets_a_per_client_cache_identity 1924[gw2] [ 15%] PASSED tests/client/test_client_caching.py::test_a_transport_object_gets_a_per_client_cache_identity 1925tests/client/test_client_caching.py::test_a_custom_store_without_a_url_or_target_id_is_rejected[in-process] 1926[gw6] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_a_legacy_session_is_minted_in_process_and_a_stray_session_id_is_a_404 1927[gw7] [ 15%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_over_streamable_http_runs_the_cleanup_too[legacy] 1928[gw2] [ 15%] PASSED tests/client/test_client_caching.py::test_a_custom_store_without_a_url_or_target_id_is_rejected[in-process] 1929tests/client/test_client_caching.py::test_a_custom_store_without_a_url_or_target_id_is_rejected[transport] 1930tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default 1931tests/docs_src/test_cancellation.py::test_a_client_timeout_cancels_the_tool_the_same_way[auto] 1932[gw6] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default 1933tests/docs_src/test_legacy_clients.py::test_stateless_http_never_mints_a_session 1934[gw9] [ 15%] PASSED tests/docs_src/test_structured_output.py::test_scalar_return_is_wrapped 1935[gw4] [ 15%] PASSED tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance1-sse-mcp.client.session_group.sse_client] 1936tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance2-streamablehttp-mcp.client.session_group.streamable_http_client] 1937tests/docs_src/test_structured_output.py::test_basemodel_is_the_schema 1938[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1939tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1940[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1941tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1942[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1943tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1944[gw9] [ 15%] PASSED tests/docs_src/test_structured_output.py::test_basemodel_is_the_schema 1945[gw0] [ 15%] PASSED tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 1946tests/docs_src/test_structured_output.py::test_typeddict_produces_the_same_schema 1947tests/client/test_auth.py::test_build_metadata[simple-url] 1948[gw2] [ 15%] PASSED tests/client/test_client_caching.py::test_a_custom_store_without_a_url_or_target_id_is_rejected[transport] 1949[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1950tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1951tests/client/test_client_caching.py::test_a_custom_store_with_a_url_server_constructs_and_is_used 1952[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1953tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1954[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1955tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1956[gw9] [ 15%] PASSED tests/docs_src/test_structured_output.py::test_typeddict_produces_the_same_schema 1957[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1958tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1959tests/docs_src/test_structured_output.py::test_dataclass_produces_the_same_schema 1960[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1961tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1962[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1963tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1964[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_enter_times_out_when_the_ack_never_arrives 1965tests/client/test_subscriptions.py::test_an_open_stream_outlives_the_session_read_timeout 1966[gw2] [ 16%] PASSED tests/client/test_client_caching.py::test_a_custom_store_with_a_url_server_constructs_and_is_used 1967tests/client/test_client_caching.py::test_a_custom_store_with_an_explicit_target_id_constructs_for_any_server 1968[gw9] [ 16%] PASSED tests/docs_src/test_structured_output.py::test_dataclass_produces_the_same_schema 1969[gw2] [ 16%] PASSED tests/client/test_client_caching.py::test_a_custom_store_with_an_explicit_target_id_constructs_for_any_server 1970tests/client/test_client_caching.py::test_cache_none_disables_the_cache_and_the_handler_wrap 1971tests/docs_src/test_structured_output.py::test_list_return_is_wrapped 1972[gw2] [ 16%] PASSED tests/client/test_client_caching.py::test_cache_none_disables_the_cache_and_the_handler_wrap 1973tests/client/test_client_caching.py::test_the_default_cache_uses_a_per_client_in_memory_store 1974[gw2] [ 16%] PASSED tests/client/test_client_caching.py::test_the_default_cache_uses_a_per_client_in_memory_store 1975tests/client/test_client_caching.py::test_the_negotiated_version_supplier_tracks_the_session_lifecycle 1976[gw9] [ 16%] PASSED tests/docs_src/test_structured_output.py::test_list_return_is_wrapped 1977[gw2] [ 16%] PASSED tests/client/test_client_caching.py::test_the_negotiated_version_supplier_tracks_the_session_lifecycle 1978tests/client/test_client_caching.py::test_a_list_changed_notification_evicts_without_a_user_handler 1979tests/docs_src/test_structured_output.py::test_dict_str_return_is_not_wrapped 1980[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1981[gw3] [ 16%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data1-expected1] 1982tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[None-None] 1983tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1984[gw3] [ 16%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[None-None] 1985[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1986tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1987[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1988tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1989[gw9] [ 16%] PASSED tests/docs_src/test_structured_output.py::test_dict_str_return_is_not_wrapped 1990tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data3-None] 1991[gw2] [ 16%] PASSED tests/client/test_client_caching.py::test_a_list_changed_notification_evicts_without_a_user_handler 1992[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1993tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1994tests/docs_src/test_structured_output.py::test_return_value_is_validated_against_the_schema 1995tests/client/test_client_caching.py::test_a_user_handler_receives_the_notification_the_eviction_consumed 1996[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1997tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 1998[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 1999tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] 2000[gw3] [ 16%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data3-None] 8894[gw0] [ 74%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_async_callable_object 8895tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_invalid_tool 8896[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params 8897tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 8898[gw0] [ 74%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_invalid_tool 8899tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_lambda 8900[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 8901[gw9] [ 74%] PASSED tests/shared/test_inbound.py::test_schema_walk_applicator_keywords_match_the_pinned_reject_cases 8902tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 8903[gw0] [ 74%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_lambda 8904tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_lambda_with_no_name 8905tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property 8906[gw0] [ 74%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_add_lambda_with_no_name 8907tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_warn_on_duplicate_tools 8908[gw9] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property 8909[gw5] [ 74%] PASSED tests/docs/test_translations.py::test_stage_overlays_translations_injects_notices_and_rewrites_api_links 8910tests/docs/test_translations.py::test_stage_serves_an_outdated_translation_exactly_as_generated_and_a_missing_one_in_english 8911[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 8912tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path 8913[gw0] [ 74%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_warn_on_duplicate_tools 8914tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_disable_warn_on_duplicate_tools 8915[gw2] [ 74%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 8916[gw8] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[.-False] 8917tests/shared/test_path_security.py::test_is_absolute_path[..-False] 8918tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 8919[gw0] [ 74%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_disable_warn_on_duplicate_tools 8920[gw2] [ 74%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 8921tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool 8922[gw8] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[..-False] 8923[gw9] [ 74%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path 8924tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] 8925[gw0] [ 74%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool 8926[gw9] [ 74%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] 8927tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_async_tool 8928tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 8929[gw0] [ 74%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_async_tool 8930tests/shared/test_path_security.py::test_is_absolute_path[/-True] 8931tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_object_tool 8932tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] 8933[gw2] [ 74%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 8934[gw8] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/-True] 8935tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 8936tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 8937[gw9] [ 74%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] 8938[gw0] [ 74%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_object_tool 8939[gw2] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 8940tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 8941tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] 8942tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_async_object_tool 8943[gw2] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 8944tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 8945[gw2] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 8946[gw0] [ 75%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_async_object_tool 8947tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_default_args 8948[gw0] [ 75%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_default_args 8949tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_missing_args 8950[gw1] [ 75%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[sse-2025-11-25] 8951tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-2025-11-25] 8952[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 8953[gw0] [ 75%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_missing_args 8954tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_unknown_tool 8955[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] 8956[gw8] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 8957[gw0] [ 75%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_unknown_tool 8958tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_list_int_input 8959tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec 8960[gw0] [ 75%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_list_int_input 8961tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_list_str_or_str_input 8962[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec 8963tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] 8964[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] 8965[gw1] [ 75%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-2025-11-25] 8966[gw6] [ 75%] PASSED tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 8967tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-stateless-2025-11-25] 8968tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 8969tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 8970[gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 8971tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 8972tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 8973[gw2] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 8974tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 8975[gw8] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 8976[gw2] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 8977tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 8978tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 8979tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] 8980[gw2] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 8981tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 8982[gw8] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 8983tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 8984[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] 8985[gw8] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 8986tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 8987[gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 8988tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] 8989[gw1] [ 75%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-stateless-2025-11-25] 8990tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[in-memory-2026-07-28] 8991tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 8992[gw2] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 8993tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 8994[gw8] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 8995[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] 8996tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] 8997tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 8998[gw1] [ 75%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[in-memory-2026-07-28] 8999tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-2026-07-28] 9000[gw8] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9001[gw2] [ 75%] PASSED tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9002[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] 9003tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9004tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] 9005[gw8] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9006tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9007tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9008[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] 9009tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9010[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9011[gw1] [ 75%] PASSED tests/interaction/lowlevel/test_tools.py::test_list_tools_returns_registered_tools[streamable-http-2026-07-28] 9012tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9013tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments 9014tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[in-memory-2025-11-25] 9015tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9016[gw0] [ 75%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_list_str_or_str_input 9017tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_complex_model 9018[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9019[gw8] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9020tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9021tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9022[gw1] [ 75%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[in-memory-2025-11-25] 9023[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9024tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[sse-2025-11-25] 9025tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9026[gw0] [ 75%] PASSED tests/server/mcpserver/test_tool_manager.py::TestCallTools::test_call_tool_with_complex_model 9027tests/server/mcpserver/test_tool_manager.py::TestToolSchema::test_context_arg_excluded_from_schema 9028[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments 9029[gw2] [ 75%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9030tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path 9031[gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9032tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9033[gw0] [ 75%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolSchema::test_context_arg_excluded_from_schema 9034tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9035tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_parameter_detection 9036[gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9037tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9038[gw6] [ 75%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9039tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9040[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path 9041tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken 9042[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9043[gw8] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9044tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9045[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken 9046tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9047tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] 9048[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] 9049tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] 9050[gw8] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9051[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9052tests/shared/test_path_security.py::test_safe_join_base_equals_target 9053tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9054[gw8] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9055[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_base_equals_target 9056tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9057tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9058[gw9] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] 9059[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 9060tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] 9061tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 9062[gw2] [ 76%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9063[gw6] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9064[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] 9065tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] 9066tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9067[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 9068tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 9069[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] 9070[gw6] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9071tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9072tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9073[gw6] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9074tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9075[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9076[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 9077[gw8] [ 76%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9078tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9079tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9080[gw6] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9081tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9082[gw2] [ 76%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9083[gw6] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9084tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9085[gw8] [ 76%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9086[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9087tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9088[gw2] [ 76%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9089tests/shared/test_streamable_http.py::test_content_type_validation 9090[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9091tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9092tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9093[gw0] [ 76%] PASSED tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_parameter_detection 9094tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_injection 9095[gw8] [ 76%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9096[gw2] [ 76%] PASSED tests/shared/test_streamable_http.py::test_content_type_validation 9097tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9098tests/shared/test_streamable_http.py::test_json_validation 9099[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9100tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9101[gw8] [ 76%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9102tests/shared/test_path_security.py::test_safe_join_simple 9103tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9104tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9105[gw6] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9106tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9107[gw6] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9108tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9109[gw0] [ 76%] PASSED tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_injection 9110tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_injection_async 9111[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9112tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9113[gw8] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_simple 9114tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9115[gw8] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9116tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9117[gw6] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9118tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9119[gw2] [ 76%] PASSED tests/shared/test_streamable_http.py::test_json_validation 9120tests/shared/test_streamable_http.py::test_json_parsing 9121[gw0] [ 76%] PASSED tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_injection_async 9122[gw6] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9123[gw8] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9124tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-suffix-is-literal] 9125[gw9] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-suffix-is-literal] 9126tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9127[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9128tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9129[gw6] [ 76%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9130tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_error_handling 9131tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9132tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9133[gw6] [ 76%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9134tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9135[gw6] [ 76%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9136tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9137[gw0] [ 76%] PASSED tests/server/mcpserver/test_tool_manager.py::TestContextHandling::test_context_error_handling 9138tests/server/mcpserver/test_tool_manager.py::TestToolAnnotations::test_tool_annotations 9139[gw0] [ 76%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolAnnotations::test_tool_annotations 9140[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9141tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9142[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9143tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9144[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9145tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9146[gw9] [ 76%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9147tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9148[gw9] [ 76%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9149tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9150[gw9] [ 76%] PASSED tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9151tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 9152[gw2] [ 76%] PASSED tests/shared/test_streamable_http.py::test_json_parsing 9153tests/shared/test_streamable_http.py::test_method_not_allowed 9154[gw2] [ 76%] PASSED tests/shared/test_streamable_http.py::test_method_not_allowed 9155tests/shared/test_streamable_http.py::test_session_validation 9156[gw2] [ 76%] PASSED tests/shared/test_streamable_http.py::test_session_validation 9157[gw4] [ 76%] PASSED tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9158tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9159[gw4] [ 76%] PASSED tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9160tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9161[gw4] [ 76%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9162tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9163[gw4] [ 76%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9164tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9165[gw4] [ 76%] PASSED tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9166tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9167tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9168[gw8] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9169tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9170[gw8] [ 76%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9171tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9172[gw8] [ 76%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9173tests/server/mcpserver/test_tool_manager.py::TestToolAnnotations::test_tool_annotations_in_mcpserver 9174[gw4] [ 76%] PASSED tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9175tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9176[gw4] [ 76%] PASSED tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9177tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9178tests/shared/test_streamable_http.py::test_session_id_pattern 9179[gw2] [ 77%] PASSED tests/shared/test_streamable_http.py::test_session_id_pattern 9180tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9181[gw2] [ 77%] PASSED tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9182tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9183[gw1] [ 77%] PASSED tests/interaction/lowlevel/test_tools.py::test_tools_list_preserves_arbitrary_input_schema_keywords[sse-2025-11-25] 9184[gw4] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9185tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9186[gw2] [ 77%] PASSED tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9187tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[302] 9188tests/shared/test_streamable_http.py::test_session_termination 9189[gw4] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9190tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9191[gw4] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9192tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9193[gw1] [ 77%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[302] 9194tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[303] 9195[gw4] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9196[gw1] [ 77%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[303] 9197tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[307] 9198[gw2] [ 77%] PASSED tests/shared/test_streamable_http.py::test_session_termination 9199[gw1] [ 77%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[307] 9200tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[308] 9201tests/shared/test_streamable_http.py::test_response 9202[gw1] [ 77%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[308] 9203[gw6] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9204tests/shared/test_httpx_utils.py::test_https_to_http_on_same_host_is_outside_origin 9205tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9206[gw1] [ 77%] PASSED tests/shared/test_httpx_utils.py::test_https_to_http_on_same_host_is_outside_origin 9207tests/shared/test_httpx_utils.py::test_client_configured_to_follow_redirects_is_still_scoped_to_origin 9208[gw0] [ 77%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolAnnotations::test_tool_annotations_in_mcpserver 9209tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_basemodel_output 9210tests/shared/test_uri_template.py::test_parse_multiple_expressions 9211[gw8] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_expressions 9212tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9213[gw6] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9214tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9215[gw0] [ 77%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_basemodel_output 9216tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_primitive_output 9217[gw7] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9218tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9219tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9220[gw7] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9221[gw8] [ 77%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9222tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9223[gw0] [ 77%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_primitive_output 9224tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_typeddict_output 9225[gw7] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9226tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9227[gw6] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9228tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9229[gw7] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9230[gw0] [ 77%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_typeddict_output 9231tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9232tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_dataclass_output 9233tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9234[gw7] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9235tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9236[gw0] [ 77%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_dataclass_output 9237[gw1] [ 77%] PASSED tests/shared/test_httpx_utils.py::test_client_configured_to_follow_redirects_is_still_scoped_to_origin 9238tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_list_output 9239[gw7] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9240[gw6] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9241tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9242[gw7] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9243tests/shared/test_sse.py::test_sse_client_exception_handling 9244[gw0] [ 77%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_list_output 9245tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9246tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_without_structured_output 9247[gw8] [ 77%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9248tests/shared/test_httpx_utils.py::test_redirect_past_the_client_max_redirects_budget_is_handed_back_unfollowed 9249tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9250[gw0] [ 77%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_without_structured_output 9251[gw4] [ 77%] PASSED tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9252tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_output_schema_property 9253[gw8] [ 77%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9254tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9255tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9256[gw1] [ 77%] PASSED tests/shared/test_httpx_utils.py::test_redirect_past_the_client_max_redirects_budget_is_handed_back_unfollowed 9257[gw6] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_exception_handling 9258[gw4] [ 77%] PASSED tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9259tests/shared/test_httpx_utils.py::test_redirect_location_with_userinfo_is_not_followed 9260tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9261tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9262[gw1] [ 77%] PASSED tests/shared/test_httpx_utils.py::test_redirect_location_with_userinfo_is_not_followed 9263tests/shared/test_httpx_utils.py::test_userinfo_of_the_configured_url_kept_by_a_relative_location_is_followed 9264[gw4] [ 77%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9265tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9266[gw1] [ 77%] PASSED tests/shared/test_httpx_utils.py::test_userinfo_of_the_configured_url_kept_by_a_relative_location_is_followed 9267tests/shared/test_httpx_utils.py::test_request_within_origin_returns_a_read_response 9268[gw6] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9269[gw1] [ 77%] PASSED tests/shared/test_httpx_utils.py::test_request_within_origin_returns_a_read_response 9270tests/shared/test_sse.py::test_request_context_propagation 9271tests/shared/test_httpx_utils.py::test_sse_within_origin_sends_event_stream_headers_and_caller_headers 9272[gw1] [ 77%] PASSED tests/shared/test_httpx_utils.py::test_sse_within_origin_sends_event_stream_headers_and_caller_headers 9273tests/shared/test_httpx_utils.py::test_auth_flow_requests_are_not_redirected 9274[gw1] [ 77%] PASSED tests/shared/test_httpx_utils.py::test_auth_flow_requests_are_not_redirected 9275tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-params] 9276[gw8] [ 77%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9277[gw1] [ 77%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-params] 9278tests/shared/test_uri_template.py::test_parse_explode_modifier 9279tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-meta] 9280[gw1] [ 77%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-meta] 9281[gw6] [ 77%] PASSED tests/shared/test_sse.py::test_request_context_propagation 9282tests/shared/test_sse.py::test_request_context_isolation 9283[gw8] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_explode_modifier 9284tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9285[gw8] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9286tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9287[gw8] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9288[gw2] [ 77%] PASSED tests/shared/test_streamable_http.py::test_response 9289tests/shared/test_streamable_http.py::test_json_response 9290tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9291[gw8] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9292tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9293[gw2] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_response 9294[gw8] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9295tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9296tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9297[gw8] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9298tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9299[gw5] [ 78%] PASSED tests/docs/test_translations.py::test_stage_serves_an_outdated_translation_exactly_as_generated_and_a_missing_one_in_english 9300[gw2] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9301[gw6] [ 78%] PASSED tests/shared/test_sse.py::test_request_context_isolation 9302tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9303tests/shared/test_sse.py::test_sse_message_id_coercion 9304tests/docs/test_translations.py::test_stage_keeps_showing_the_generated_code_block_after_its_english_changes_until_the_page_is_retranslated 9305[gw6] [ 78%] PASSED tests/shared/test_sse.py::test_sse_message_id_coercion 9306tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9307[gw3] [ 78%] PASSED tests/server/test_stdio.py::test_a_degraded_session_does_not_close_the_sys_stream_it_served 9308[gw2] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9309tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 9310[gw0] [ 78%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_output_schema_property 9311[gw7] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9312tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9313tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_dict_str_any_output 9314[gw4] [ 78%] PASSED tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9315tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9316tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9317[gw7] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9318[gw8] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9319tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9320tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9321[gw7] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9322[gw3] [ 78%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 9323[gw4] [ 78%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9324tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9325[gw8] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9326tests/shared/test_sse.py::test_raw_sse_connection 9327tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9328tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-version] 9329tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 9330[gw2] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9331[gw1] [ 78%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-version] 9332[gw7] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9333[gw8] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9334tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9335[gw4] [ 78%] PASSED tests/shared/test_sse.py::test_raw_sse_connection 9336tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9337tests/shared/test_sse.py::test_sse_client_basic_connection 9338[gw8] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9339tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-client-caps] 9340tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9341[gw3] [ 78%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 9342[gw1] [ 78%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-client-caps] 9343tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 9344tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-both] 9345[gw1] [ 78%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-both] 9346[gw7] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9347tests/shared/test_inbound.py::test_envelope_rung_accepts_pair_only_envelope_without_client_info 9348tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9349[gw3] [ 78%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 9350[gw0] [ 78%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_dict_str_any_output 9351[gw7] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9352tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9353tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9354tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_dict_str_typed_output 9355[gw7] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9356tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 9357tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9358[gw4] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection 9359tests/shared/test_sse.py::test_sse_client_on_session_created 9360[gw3] [ 78%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 9361tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 9362[gw0] [ 78%] PASSED tests/server/mcpserver/test_tool_manager.py::TestStructuredOutput::test_tool_with_dict_str_typed_output 9363[gw8] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9364tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_add_tool_with_metadata 9365tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9366[gw3] [ 78%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 9367[gw8] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9368tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9369tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 9370[gw1] [ 78%] PASSED tests/shared/test_inbound.py::test_envelope_rung_accepts_pair_only_envelope_without_client_info 9371[gw8] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9372[gw0] [ 78%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_add_tool_with_metadata 9373tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[params-none] 9374[gw3] [ 78%] PASSED tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 9375tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered 9376tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_add_tool_without_metadata 9377[gw1] [ 78%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[params-none] 9378[gw4] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created 9379[gw3] [ 78%] PASSED tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered 9380[gw0] [ 78%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_add_tool_without_metadata 9381tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9382tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_in_mcpserver_decorator 9383tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing 9384tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-none] 9385[gw4] [ 78%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9386[gw1] [ 78%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-none] 9387tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9388[gw3] [ 78%] PASSED tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing 9389[gw2] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9390[gw4] [ 78%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9391tests/server/test_subscriptions.py::test_publish_after_close_is_dropped 9392[gw7] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9393tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9394tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9395[gw3] [ 78%] PASSED tests/server/test_subscriptions.py::test_publish_after_close_is_dropped 9396tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9397[gw8] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9398tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack 9399tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9400[gw7] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9401[gw8] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9402tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9403[gw3] [ 78%] PASSED tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack 9404tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9405[gw8] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9406tests/server/test_subscriptions.py::test_listen_requires_a_request_id 9407tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9408[gw8] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9409tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9410[gw3] [ 78%] PASSED tests/server/test_subscriptions.py::test_listen_requires_a_request_id 9411tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-non-mapping] 9412tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 9413[gw2] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9414[gw3] [ 79%] PASSED tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 9415[gw7] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9416tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9417tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 9418[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-non-mapping] 9419tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[int] 9420[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[int] 9421[gw2] [ 79%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9422[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9423tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9424tests/shared/test_streamable_http.py::test_get_sse_stream 9425[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9426tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9427[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9428tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9429[gw0] [ 79%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_in_mcpserver_decorator 9430tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_in_list_tools 9431tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[null] 9432[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[null] 9433[gw0] [ 79%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_in_list_tools 9434[gw2] [ 79%] PASSED tests/shared/test_streamable_http.py::test_get_sse_stream 9435tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[list] 9436tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_multiple_tools_with_different_metadata 9437tests/shared/test_streamable_http.py::test_get_validation 9438[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[list] 9439[gw2] [ 79%] PASSED tests/shared/test_streamable_http.py::test_get_validation 9440tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9441tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9442tests/shared/test_uri_template.py::test_parse_literal_only 9443[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_literal_only 9444[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9445tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9446tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9447tests/shared/test_inbound.py::test_non_string_protocol_version_over_http_still_rejects_at_the_header_rung 9448[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9449[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9450[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9451tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9452[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_non_string_protocol_version_over_http_still_rejects_at_the_header_rung 9453[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9454tests/shared/test_uri_template.py::test_is_template[-False] 9455[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[-False] 9456tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9457tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[int] 9458[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9459tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9460[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[int] 9461[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9462tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9463tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[null] 9464[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9465[gw2] [ 79%] PASSED tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9466tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9467tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9468[gw6] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9469tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9470[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9471[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[null] 9472tests/shared/test_uri_template.py::test_is_template[{a}-True] 9473[gw0] [ 79%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_multiple_tools_with_different_metadata 9474tests/shared/test_inbound.py::test_version_rung_rejects_unsupported_with_data_shape 9475[gw2] [ 79%] PASSED tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9476tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_with_complex_structure 9477tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9478[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[{a}-True] 9479tests/shared/test_uri_template.py::test_is_template[{-False] 9480tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9481[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[{-False] 9482tests/shared/test_uri_template.py::test_is_template[}-False] 9483[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[}-False] 9484tests/shared/test_uri_template.py::test_is_template[}{-False] 9485[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9486tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9487[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[}{-False] 9488tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9489[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_version_rung_rejects_unsupported_with_data_shape 9490tests/shared/test_inbound.py::test_version_rung_data_reflects_supplied_supported_list 9491[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_version_rung_data_reflects_supplied_supported_list 9492tests/shared/test_inbound.py::test_unsupported_protocol_version_rejection_is_the_version_rung_standalone 9493[gw2] [ 79%] PASSED tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9494[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_unsupported_protocol_version_rejection_is_the_version_rung_standalone 9495tests/shared/test_inbound.py::test_header_rung_does_not_reject_when_headers_arg_is_none 9496[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9497tests/shared/test_streamable_http.py::test_client_crash_handled 9498[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_reject_when_headers_arg_is_none 9499tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9500tests/shared/test_inbound.py::test_header_rung_passes_when_header_matches_envelope 9501[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_header_rung_passes_when_header_matches_envelope 9502[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9503tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[mismatch] 9504tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9505[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9506[gw0] [ 79%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_with_complex_structure 9507tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9508[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9509tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_empty_dict 9510tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9511[gw6] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9512[gw3] [ 79%] PASSED tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 9513tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9514[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9515tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup 9516tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9517[gw6] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9518[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9519tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9520tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9521[gw0] [ 79%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_empty_dict 9522[gw8] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9523tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_with_annotations 9524tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9525[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[mismatch] 9526[gw3] [ 79%] PASSED tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup 9527[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9528tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9529tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9530[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9531tests/shared/test_uri_template.py::test_parse_simple_variable 9532[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_simple_variable 9533tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] 9534tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9535[gw3] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9536[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9537tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9538tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 9539[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9540[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9541tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9542[gw1] [ 80%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] 9543tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9544[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9545[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9546tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9547tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9548tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9549[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9550tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9551[gw3] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 9552[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9553[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9554tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 9555tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9556tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] 9557tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9558[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9559tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9560[gw1] [ 80%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] 9561[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9562tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] 9563tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9564[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9565tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9566[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9567[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9568tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9569tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9570[gw0] [ 80%] PASSED tests/server/mcpserver/test_tool_manager.py::TestToolMetadata::test_metadata_with_annotations 9571tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_existing_tool 9572[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9573[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9574[gw1] [ 80%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] 9575tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9576[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9577tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header 9578[gw1] [ 80%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header 9579tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9580[gw0] [ 80%] PASSED tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_existing_tool 9581tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9582[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9583tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9584[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9585[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9586tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9587[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9588tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9589tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9590[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9591tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[tools/call-name] 9592tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_nonexistent_tool 9593[gw1] [ 80%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[tools/call-name] 9594[gw0] [ 80%] PASSED tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_nonexistent_tool 9595[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9596tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_tool_from_multiple_tools 9597tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9598[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9599[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9600[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9601tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9602tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9603tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9604[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9605tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9606[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9607tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9608[gw0] [ 80%] PASSED tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_tool_from_multiple_tools 9609tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9610[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9611tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9612tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_call_removed_tool_raises_error 9613[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9614tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9615tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9616[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9617[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9618tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9619tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9620[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9621[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9622tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9623[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9624tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9625[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9626tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 9627[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 9628tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9629[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9630[gw6] [ 80%] PASSED tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9631tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 9632[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 9633tests/shared/test_streamable_http.py::test_accept_header_validation 9634tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9635[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9636tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9637tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9638[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9639[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9640tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9641[gw6] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_validation 9642tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9643[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9644tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9645[gw8] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9646tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9647tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9648[gw6] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9649tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9650[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9651[gw0] [ 81%] PASSED tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_call_removed_tool_raises_error 9652tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9653tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_tool_case_sensitive 9654[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9655[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9656tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9657[gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9658tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9659[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9660tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9661tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9662[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9663[gw0] [ 81%] PASSED tests/server/mcpserver/test_tool_manager.py::TestRemoveTools::test_remove_tool_case_sensitive 9664[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9665tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9666tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9667[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9668[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9669tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9670tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9671[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9672tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9673[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9674tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_accept 9675[gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9676tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9677[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9678tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9679[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9680tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 9681[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 9682tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9683[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9684[gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9685tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9686[gw0] [ 81%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_accept 9687[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9688tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_decline 9689tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9690[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9691tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9692[gw6] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9693tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9694tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9695[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9696tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9697[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9698tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9699[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9700tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9701tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9702[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9703[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9704[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9705[gw3] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 9706tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9707[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9708tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 9709[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9710tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9711[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9712tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9713tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9714tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9715[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9716tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9717tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9718[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9719tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9720[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9721tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9722[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9723[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9724tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9725tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9726[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9727tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 9728[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9729tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9730[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9731tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 9732[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 9733tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 9734[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9735[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 9736tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9737[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9738tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9739tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9740[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9741tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9742[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9743[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 9744tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9745[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9746[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9747tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9748tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9749tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 9750[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9751tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 9752[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9753tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9754[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9755tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 9756[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 9757[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 9758tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9759tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9760[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9761[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9762tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9763[gw0] [ 81%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_decline 9764[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9765tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_cancel 9766tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9767[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 9768[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9769tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9770tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9771[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9772tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9773[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9774tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9775[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9776tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9777[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9778tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9779[gw0] [ 82%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_cancel 9780[gw2] [ 82%] PASSED tests/shared/test_streamable_http.py::test_client_crash_handled 9781tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 9782tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_helper_function 9783tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9784[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9785[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9786[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 9787tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 9788[gw2] [ 82%] PASSED tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9789[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 9790tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 9791[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 9792tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 9793tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9794[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 9795tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9796tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 9797[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9798tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9799[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9800[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 9801tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 9802tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9803[gw0] [ 82%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_url_elicitation_helper_function 9804[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9805[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 9806tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9807tests/server/mcpserver/test_url_elicitation.py::test_url_no_content_in_response 9808tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 9809[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9810[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 9811tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 9812[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9813tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9814[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 9815tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 9816tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9817[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 9818tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 9819[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9820tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9821[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9822tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 9823[gw0] [ 82%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_url_no_content_in_response 9824[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 9825tests/server/mcpserver/test_url_elicitation.py::test_form_mode_still_works 9826tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 9827[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 9828[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9829tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 9830tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9831[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 9832[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9833[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9834tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 9835[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9836tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9837[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9838tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 9839tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9840[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 9841tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9842tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 9843[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9844tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 9845[gw0] [ 82%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_form_mode_still_works 9846[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 9847tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 9848tests/server/mcpserver/test_url_elicitation.py::test_elicit_complete_notification 9849[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 9850tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 9851[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 9852tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 9853[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 9854[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9855tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9856[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 9857[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 9858tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 9859tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9860[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9861tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 9862[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 9863tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 9864[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 9865tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 9866[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 9867tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 9868[gw3] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 9869[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 9870tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 9871[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 9872tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 9873tests/shared/test_uri_template.py::test_match_no_match[static-different] 9874[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_no_match[static-different] 9875tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 9876[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 9877[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9878tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9879[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9880tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9881[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 9882[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9883tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9884tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 9885[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 9886tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 9887tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 9888[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 9889tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 9890[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9891tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9892[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 9893[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9894tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9895[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9896tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9897[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9898[gw9] [ 83%] PASSED tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 9899tests/shared/test_uri_template.py::test_equality_based_on_template_string 9900tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 9901tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 9902[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 9903tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 9904[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 9905[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 9906tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 9907[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 9908tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 9909tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 9910tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9911[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 9912tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 9913[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9914[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 9915tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 9916[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 9917tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 9918tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9919[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 9920tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 9921[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 9922tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 9923[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 9924[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 9925[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 9926tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 9927[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9928tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 9929tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 9930tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9931[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 9932[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 9933tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 9934tests/shared/test_uri_template.py::test_match_default_uri_length_limit 9935[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 9936tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 9937[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 9938tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 9939[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_default_uri_length_limit 9940tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 9941[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 9942tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 9943[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_equality_based_on_template_string 9944[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 9945tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 9946tests/shared/test_uri_template.py::test_frozen 9947[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 9948tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 9949[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_frozen 9950tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9951[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 9952tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 9953[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9954tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9955[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 9956tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 9957[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9958tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9959[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 9960tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 9961[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9962tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9963[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 9964tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 9965[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9966tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9967[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9968tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9969[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 9970tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 9971[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9972tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9973[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 9974[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9975tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9976[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9977tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 9978[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 9979tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9980tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 9981[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9982[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 9983tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9984tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 9985[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9986[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 9987tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9988tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 9989[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 9990tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 9991tests/test_examples.py::test_docs_examples[README.md:90-103] 9992[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 9993[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 9994[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9995tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 9996tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9997tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 9998[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9999[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 10000[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10001tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10002tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 10003[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10004tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10005[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10006[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 10007tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 10008[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10009tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10010tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10011[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10012tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10013[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10014[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10015tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10016[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 10017[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10018tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10019tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 10020[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10021tests/shared/test_uri_template.py::test_match_escapes_template_literals 10022tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10023[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_escapes_template_literals 10024[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10025tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10026tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10027[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10028[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10029[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 10030tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 10031tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10032[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 10033tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 10034[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10035tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10036tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10037[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10038[gw0] [ 84%] PASSED tests/server/mcpserver/test_url_elicitation.py::test_elicit_complete_notification 10039tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10040[gw3] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 10041tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 10042tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 10043[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 10044[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 10045tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 10046tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 10047[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 10048tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 10049[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 10050[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 10051tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 10052[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 10053tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 10054[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10055[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 10056tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 10057tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10058tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 10059[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 10060[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 10061tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 10062tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 10063[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 10064tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 10065[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 10066tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10067tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 10068[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 10069tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 10070[gw5] [ 84%] PASSED tests/docs/test_translations.py::test_stage_keeps_showing_the_generated_code_block_after_its_english_changes_until_the_page_is_retranslated 10071[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 10072[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 10073tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 10074tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 10075tests/docs/test_translations.py::test_notice_links_climb_from_the_staged_page_to_the_english_page_and_this_sites_translations_page 10076[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 10077tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 10078[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 10079tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 10080[gw6] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10081[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 10082[gw8] [ 84%] PASSED tests/test_examples.py::test_docs_examples[README.md:90-103] 10083tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 10084tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10085[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 10086tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10087tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 10088[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 10089tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 10090[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10091tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10092[gw5] [ 84%] PASSED tests/docs/test_translations.py::test_notice_links_climb_from_the_staged_page_to_the_english_page_and_this_sites_translations_page 10093tests/docs/test_translations.py::test_stage_that_stops_part_way_leaves_no_titles_file_from_an_earlier_run 10094[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 10095tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 10096[gw6] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10097[gw8] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10098[gw1] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10099tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10100tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10101[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 10102tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10103tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 10104[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10105tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10106[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 10107[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10108tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 10109tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10110[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 10111tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 10112[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 10113tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 10114[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 10115tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 10116[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 10117[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 10118tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 10119[gw8] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10120tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10121tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 10122[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 10123[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 10124tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 10125[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 10126[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10127[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10128tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10129[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10130tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10131tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 10132tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10133[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 10134tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 10135[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10136tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10137tests/shared/test_uri_template.py::test_match_never_raises 10138[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 10139[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10140tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10141[gw3] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 10142[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10143tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 10144tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10145[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10146tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 10147tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10148[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10149[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10150tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10151tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10152[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 10153tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 10154[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 10155tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 10156[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 10157tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10158[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10159tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10160[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10161tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10162[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10163tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10164[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10165tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10166[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10167[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10168[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10169tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10170[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10171tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10172tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10173tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10174[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10175[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10176tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10177tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10178[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10179tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10180[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10181tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10182[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10183tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10184[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10185tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10186[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10187[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10188tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10189tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10190[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_never_raises 10191[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10192tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10193tests/test_examples.py::test_simple_echo 10194[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10195tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10196[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10197[gw3] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 10198tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 10199tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10200[gw4] [ 85%] PASSED tests/test_examples.py::test_simple_echo 10201tests/test_examples.py::test_complex_inputs 10202[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10203tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10204[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10205tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10206[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10207tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10208[gw4] [ 85%] PASSED tests/test_examples.py::test_complex_inputs 10209tests/test_examples.py::test_direct_call_tool_result_return 10210[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10211tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10212[gw4] [ 85%] PASSED tests/test_examples.py::test_direct_call_tool_result_return 10213tests/test_examples.py::test_desktop 10214[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10215[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10216tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10217[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10218tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10219tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10220[gw4] [ 85%] PASSED tests/test_examples.py::test_desktop 10221tests/test_examples.py::test_docs_examples[README.md:47-63] 10222[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10223tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10224[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10225tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10226[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10227tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10228[gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[README.md:47-63] 10229tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10230[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10231[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10232[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10233tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10234tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10235tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10236[gw8] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10237[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10238[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10239tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10240[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10241tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10242[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10243tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10244[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10245tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10246tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10247tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10248[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 10249tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 10250[gw5] [ 86%] PASSED tests/docs/test_translations.py::test_stage_that_stops_part_way_leaves_no_titles_file_from_an_earlier_run 10251tests/docs/test_translations.py::test_stage_without_lang_stages_every_language_in_the_registry 10252[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10253[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 10254tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 10255tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10256[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10257tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10258[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 10259[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10260tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 10261tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10262[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10263tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10264[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 10265tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 10266[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 10267tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 10268[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10269tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10270[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10271[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10272[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 10273tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10274tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 10275tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10276[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10277tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10278[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 10279tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 10280[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10281[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 10282tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10283tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 10284[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 10285[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10286tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 10287tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10288[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10289tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10290[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 10291tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 10292[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10293[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 10294tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10295tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 10296[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10297[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 10298tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 10299tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10300[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10301tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10302[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10303[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10304tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10305tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10306[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10307[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10308tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10309[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10310tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10311tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10312[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10313[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10314tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10315tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10316[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10317[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10318tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10319[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10320tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10321tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10322[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10323tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10324[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10325tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10326[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10327[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10328tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10329[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10330tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10331tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10332[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10333[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10334tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10335tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10336[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10337[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10338tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10339tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10340[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10341[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10342tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10343[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10344[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10345tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10346tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10347[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 10348tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10349tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 10350[gw3] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 10351tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 10352[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10353[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10354[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10355tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10356tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10357[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10358tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10359[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10360tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10361[gw3] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 10362tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10363tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 10364[gw3] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 10365tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 10366[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10367[gw3] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 10368[gw5] [ 87%] PASSED tests/docs/test_translations.py::test_stage_without_lang_stages_every_language_in_the_registry 10369tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10370[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10371tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 10372tests/docs_src/test_apps.py::test_the_tool_carries_the_ui_resource_reference 10373tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10374[gw3] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 10375tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10376[gw5] [ 87%] PASSED tests/docs_src/test_apps.py::test_the_tool_carries_the_ui_resource_reference 10377tests/docs_src/test_apps.py::test_the_ui_resource_is_served_as_the_app_mime_type 10378[gw5] [ 87%] PASSED tests/docs_src/test_apps.py::test_the_ui_resource_is_served_as_the_app_mime_type 10379tests/docs_src/test_apps.py::test_one_tool_two_answers 10380[gw3] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10381tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10382[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10383[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10384tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10385tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10386[gw3] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10387[gw5] [ 87%] PASSED tests/docs_src/test_apps.py::test_one_tool_two_answers 10388tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10389tests/docs_src/test_apps.py::test_capability_advertised_under_server_extensions 10390[gw5] [ 87%] PASSED tests/docs_src/test_apps.py::test_capability_advertised_under_server_extensions 10391tests/docs_src/test_apps.py::test_csp_permissions_domain_and_border_ride_the_resource_meta 10392[gw3] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10393tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 10394[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10395[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10396tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10397tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10398[gw5] [ 87%] PASSED tests/docs_src/test_apps.py::test_csp_permissions_domain_and_border_ride_the_resource_meta 10399tests/docs_src/test_apps.py::test_an_app_only_tool_is_still_listed_and_callable 10400[gw3] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 10401[gw5] [ 87%] PASSED tests/docs_src/test_apps.py::test_an_app_only_tool_is_still_listed_and_callable 10402tests/docs_src/test_apps.py::test_a_file_resource_is_served_with_the_app_mime_type_filled_in 10403[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10404[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10405tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10406[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10407tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10408tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 10409tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10410[gw5] [ 87%] PASSED tests/docs_src/test_apps.py::test_a_file_resource_is_served_with_the_app_mime_type_filled_in 10411[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10412tests/docs_src/test_asgi.py::test_the_server_behind_the_app_is_unchanged 10413[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10414[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10415tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10416tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10417tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10418[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10419tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10420[gw5] [ 87%] PASSED tests/docs_src/test_asgi.py::test_the_server_behind_the_app_is_unchanged 10421tests/docs_src/test_asgi.py::test_a_request_before_the_session_manager_runs_is_rejected 10422[gw5] [ 87%] PASSED tests/docs_src/test_asgi.py::test_a_request_before_the_session_manager_runs_is_rejected 10423tests/docs_src/test_asgi.py::test_mounting_at_the_root_keeps_the_default_path 10424[gw5] [ 87%] PASSED tests/docs_src/test_asgi.py::test_mounting_at_the_root_keeps_the_default_path 10425tests/docs_src/test_asgi.py::test_a_root_mount_swallows_routes_listed_after_it 10426[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10427[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10428[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10429[gw5] [ 87%] PASSED tests/docs_src/test_asgi.py::test_a_root_mount_swallows_routes_listed_after_it 10430tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10431tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10432tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10433tests/docs_src/test_asgi.py::test_the_host_lifespan_enters_the_session_manager 10434[gw5] [ 87%] PASSED tests/docs_src/test_asgi.py::test_the_host_lifespan_enters_the_session_manager 10435tests/docs_src/test_asgi.py::test_two_servers_get_two_mounts 10436[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10437[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10438[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10439[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10440tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10441[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10442tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10443[gw5] [ 87%] PASSED tests/docs_src/test_asgi.py::test_two_servers_get_two_mounts 10444tests/docs_src/test_asgi.py::test_one_lifespan_starts_both_session_managers 10445tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10446tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10447tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10448[gw5] [ 87%] PASSED tests/docs_src/test_asgi.py::test_one_lifespan_starts_both_session_managers 10449[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10450tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10451[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10452[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10453tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10454[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10455tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10456[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10457tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10458tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10459[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10460tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10461[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10462tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10463[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10464[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10465tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10466tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10467[gw3] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 10468tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 10469[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10470[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10471tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10472[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10473tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10474tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10475[gw3] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 10476tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 10477[gw3] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 10478[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10479tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 10480tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10481[gw3] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 10482tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10483[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10484[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10485[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10486tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10487tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10488tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10489[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10490tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10491[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10492[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10493tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10494tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10495[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10496tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10497[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10498tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10499[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10500tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10501[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10502tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10503[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10504[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10505[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10506tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10507tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10508tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10509[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10510tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10511[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10512tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10513[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10514[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10515tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10516[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10517[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10518tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10519tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10520[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10521tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10522tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10523tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_with_a_nested_schema_is_forwarded_unchanged[in-memory-2025-11-25] 10524[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10525tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10526[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10527tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10528[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10529[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10530[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10531tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10532[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_with_a_nested_schema_is_forwarded_unchanged[in-memory-2025-11-25] 10533tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10534tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10535[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10536tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_with_a_nested_schema_is_forwarded_unchanged[sse-2025-11-25] 10537tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10538[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10539tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10540[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10541[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10542tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10543[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10544[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10545tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10546tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10547tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10548[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10549tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10550[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10551[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10552tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10553[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10554tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10555[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10556tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10557[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_with_a_nested_schema_is_forwarded_unchanged[sse-2025-11-25] 10558tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10559tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_with_a_nested_schema_is_forwarded_unchanged[streamable-http-2025-11-25] 10560[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10561tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10562[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10563[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10564[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10565tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10566tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10567tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10568[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10569[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_with_a_nested_schema_is_forwarded_unchanged[streamable-http-2025-11-25] 10570tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10571tests/interaction/lowlevel/test_elicitation.py::test_accepted_elicitation_content_that_violates_the_schema_reaches_the_handler_unchanged[in-memory-2025-11-25] 10572[gw5] [ 88%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_accepted_elicitation_content_that_violates_the_schema_reaches_the_handler_unchanged[in-memory-2025-11-25] 10573tests/interaction/lowlevel/test_elicitation.py::test_accepted_elicitation_content_that_violates_the_schema_reaches_the_handler_unchanged[sse-2025-11-25] 10574[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10575tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10576[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10577[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10578tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10579[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10580[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10581tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10582[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10583[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10584tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10585[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10586tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10587tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10588tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10589tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10590[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10591[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10592tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10593[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10594[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10595[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10596tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10597tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10598tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10599tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10600[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10601tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10602[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10603tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10604[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10605[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10606[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10607[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10608tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10609tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10610tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10611tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10612[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10613[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10614tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10615tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10616[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10617tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10618[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10619[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10620tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10621tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10622[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10623tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10624[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10625[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10626tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10627[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10628tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10629tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10630[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10631tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10632[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10633tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10634[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10635[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10636tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10637tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10638[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10639[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10640[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10641tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10642tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10643[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10644tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10645[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10646tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10647tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10648[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10649tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10650[gw5] [ 89%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_accepted_elicitation_content_that_violates_the_schema_reaches_the_handler_unchanged[sse-2025-11-25] 10651tests/interaction/lowlevel/test_elicitation.py::test_accepted_elicitation_content_that_violates_the_schema_reaches_the_handler_unchanged[streamable-http-2025-11-25] 10652[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10653[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10654tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10655tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10656[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10657tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10658[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10659tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10660[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10661[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10662tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10663tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10664[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10665tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10666[gw5] [ 89%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_accepted_elicitation_content_that_violates_the_schema_reaches_the_handler_unchanged[streamable-http-2025-11-25] 10667tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[in-memory-2025-11-25] 10668[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10669[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10670tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10671tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10672[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10673[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10674tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10675tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10676[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10677[gw5] [ 89%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[in-memory-2025-11-25] 10678tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[sse-2025-11-25] 10679tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10680[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10681[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10682tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10683tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10684[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10685[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10686[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10687tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10688tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10689tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10690[gw5] [ 89%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[sse-2025-11-25] 10691tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[streamable-http-2025-11-25] 10692[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10693[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10694tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10695tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 10696[gw0] [ 89%] PASSED tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10697tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10698[gw0] [ 89%] PASSED tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10699[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10700[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10701tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10702tests/test_types.py::test_tool_choice 10703[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10704tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10705[gw0] [ 89%] PASSED tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10706tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10707[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10708[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10709[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10710tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10711tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10712tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10713[gw0] [ 89%] PASSED tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10714[gw3] [ 90%] PASSED tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10715tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10716[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10717[gw3] [ 90%] PASSED tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10718tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10719tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10720[gw7] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10721tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10722[gw0] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10723tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10724[gw0] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10725[gw2] [ 90%] PASSED tests/test_types.py::test_tool_choice 10726tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10727tests/test_types.py::test_sampling_message_with_user_role 10728[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10729tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10730[gw0] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10731tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 10732[gw2] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_user_role 10733tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10734[gw8] [ 90%] PASSED tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10735tests/test_types.py::test_sampling_message_with_assistant_role 10736tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10737[gw8] [ 90%] PASSED tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10738[gw1] [ 90%] PASSED tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10739tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10740[gw2] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_assistant_role 10741tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10742[gw8] [ 90%] PASSED tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10743tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10744tests/test_types.py::test_sampling_message_backward_compatibility 10745[gw2] [ 90%] PASSED tests/test_types.py::test_sampling_message_backward_compatibility 10746[gw8] [ 90%] PASSED tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10747tests/test_types.py::test_create_message_request_params_with_tools 10748tests/types/test_methods.py::test_built_in_maps_are_immutable 10749[gw8] [ 90%] PASSED tests/types/test_methods.py::test_built_in_maps_are_immutable 10750[gw2] [ 90%] PASSED tests/test_types.py::test_create_message_request_params_with_tools 10751tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10752tests/test_types.py::test_create_message_result_with_tool_use 10753[gw2] [ 90%] PASSED tests/test_types.py::test_create_message_result_with_tool_use 10754tests/test_types.py::test_create_message_result_basic 10755[gw8] [ 90%] PASSED tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10756[gw2] [ 90%] PASSED tests/test_types.py::test_create_message_result_basic 10757tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10758tests/test_types.py::test_client_capabilities_with_sampling_tools 10759[gw3] [ 90%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10760tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10761[gw3] [ 90%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10762[gw2] [ 90%] PASSED tests/test_types.py::test_client_capabilities_with_sampling_tools 10763tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10764tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10765[gw3] [ 90%] PASSED tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10766tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10767[gw2] [ 90%] PASSED tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10768tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10769[gw7] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10770tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10771tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10772[gw8] [ 90%] PASSED tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10773[gw3] [ 90%] PASSED tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10774[gw7] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10775tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10776[gw3] [ 90%] PASSED tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10777tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10778tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10779[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10780[gw7] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10781tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10782tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10783tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10784[gw8] [ 90%] PASSED tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10785[gw7] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10786tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10787tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10788[gw8] [ 90%] PASSED tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10789[gw7] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10790[gw5] [ 90%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[streamable-http-2025-11-25] 10791tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10792tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[streamable-http-stateless-2025-11-25] 10793[gw7] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10794tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10795tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10796[gw8] [ 90%] PASSED tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10797tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10798[gw6] [ 90%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 10799[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10800tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 10801tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10802[gw2] [ 90%] PASSED tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10803tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10804[gw3] [ 90%] PASSED tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10805[gw2] [ 90%] PASSED tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10806[gw5] [ 90%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_for_an_unknown_id_is_received_without_error[streamable-http-stateless-2025-11-25] 10807tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10808tests/interaction/lowlevel/test_elicitation.py::test_a_mode_less_elicitation_request_is_treated_as_form_mode 10809tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10810[gw2] [ 90%] PASSED tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10811tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10812[gw2] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10813[gw5] [ 90%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_a_mode_less_elicitation_request_is_treated_as_form_mode 10814[gw3] [ 90%] PASSED tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10815tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10816tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[in-memory-2025-11-25] 10817[gw3] [ 90%] PASSED tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10818tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10819[gw3] [ 90%] PASSED tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10820tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10821[gw7] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10822tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10823[gw3] [ 90%] PASSED tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10824tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10825[gw7] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10826[gw8] [ 90%] PASSED tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10827tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 10828tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10829[gw8] [ 90%] PASSED tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10830tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 10831tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10832[gw3] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10833[gw8] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10834[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 10835tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10836tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 10837[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10838[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 10839tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10840tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 10841[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 10842tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 10843[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 10844[gw3] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10845[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 10846tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 10847tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10848[gw4] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10849[gw3] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10850tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10851[gw3] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10852tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10853tests/test_types.py::test_jsonrpc_request 10854[gw3] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10855[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 10856tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10857tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 10858[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 10859tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 10860[gw4] [ 91%] PASSED tests/test_types.py::test_jsonrpc_request 10861tests/test_types.py::test_method_initialization 10862[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 10863tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10864tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 10865[gw4] [ 91%] PASSED tests/test_types.py::test_method_initialization 10866tests/test_types.py::test_tool_use_content 10867[gw8] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10868[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 10869tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10870tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 10871[gw4] [ 91%] PASSED tests/test_types.py::test_tool_use_content 10872[gw8] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10873tests/test_types.py::test_tool_result_content 10874tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 10875[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 10876tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 10877[gw4] [ 91%] PASSED tests/test_types.py::test_tool_result_content 10878tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10879tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10880[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 10881[gw4] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10882tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10883[gw8] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10884[gw4] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10885tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10886tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10887tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10888[gw8] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10889[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10890tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10891tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10892[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10893tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 10894[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 10895[gw8] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10896tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 10897[gw3] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10898[gw8] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 10899tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 10900[gw5] [ 91%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[in-memory-2025-11-25] 10901tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[sse-2025-11-25] 10902[gw6] [ 91%] PASSED tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 10903[gw8] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 10904tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 10905tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10906tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 10907[gw3] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10908tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 10909[gw3] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 10910tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 10911[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 10912tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 10913tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 10914[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 10915[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 10916tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 10917tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 10918[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 10919tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 10920[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 10921[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 10922tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 10923tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 10924[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 10925[gw2] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 10926tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 10927[gw8] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 10928[gw5] [ 91%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[sse-2025-11-25] 10929[gw4] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10930tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[streamable-http-2025-11-25] 10931tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10932tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 10933[gw4] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10934[gw8] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 10935[gw1] [ 91%] PASSED tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10936tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 10937tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 10938tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10939[gw3] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 10940tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 10941[gw4] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10942[gw8] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 10943tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 10944[gw8] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 10945tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 10946[gw2] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 10947[gw1] [ 91%] PASSED tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 10948tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 10949[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 10950tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 10951[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 10952tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10953[gw1] [ 92%] PASSED tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10954tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 10955tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10956[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] 10957[gw8] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 10958tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 10959[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10960tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 10961tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 10962tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 10963[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] 10964[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 10965tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 10966[gw8] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 10967[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 10968tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 10969tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10970tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 10971[gw8] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 10972[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] 10973tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 10974tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 10975[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10976tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10977[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] 10978[gw8] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 10979tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 10980tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 10981[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10982[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] 10983tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 10984tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10985[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10986[gw6] [ 92%] PASSED tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 10987[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] 10988tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10989tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 10990tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 10991tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 10992[gw6] [ 92%] SKIPPED tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 10993[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10994tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 10995[gw6] [ 92%] SKIPPED tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 10996tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 10997[gw6] [ 92%] SKIPPED tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 10998tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 10999[gw6] [ 92%] SKIPPED tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 11000tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 11001tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 11002[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] 11003tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11004[gw6] [ 92%] PASSED tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 11005[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 11006tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 11007tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 11008[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] 11009[gw6] [ 92%] PASSED tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 11010[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 11011tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 11012tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11013tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 11014[gw6] [ 92%] PASSED tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 11015tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 11016[gw6] [ 92%] PASSED tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 11017tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 11018[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] 11019tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11020[gw6] [ 92%] PASSED tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 11021[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11022tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11023tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11024[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11025[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] 11026tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11027[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11028tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11029[gw5] [ 92%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[streamable-http-2025-11-25] 11030[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11031tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11032tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[streamable-http-stateless-2025-11-25] 11033[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11034[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] 11035tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11036tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11037[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] 11038tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 11039[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11040tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11041[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] 11042tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11043[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11044tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11045[gw8] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11046[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11047tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11048tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11049[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 11050[gw8] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11051[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 11052[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11053tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 11054tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11055tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11056tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 11057[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] 11058tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11059tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11060[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11061[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 11062[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11063[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 11064[gw8] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11065tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 11066tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11067tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11068[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11069tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11070[gw1] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 11071tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11072[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11073tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11074[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11075[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11076[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11077tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11078tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11079[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11080tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11081[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[streamable-http-stateless-2025-11-25] 11082[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11083tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11084tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[in-memory-2026-07-28] 11085tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11086tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11087tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11088[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11089tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11090[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] 11091[gw4] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11092[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11093tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11094tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11095[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11096[gw1] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11097[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[in-memory-2026-07-28] 11098[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] 11099tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11100tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11101tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11102[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11103tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[streamable-http-2026-07-28] 11104tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11105[gw4] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11106tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11107tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11108[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11109tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11110[gw1] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11111tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11112[gw1] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11113[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11114tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11115tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11116[gw8] [ 93%] PASSED tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11117[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] 11118[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11119tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11120tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11121[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_resource_link_returned_by_a_tool_can_be_followed_with_read[streamable-http-2026-07-28] 11122tests/interaction/lowlevel/test_flows.py::test_a_tool_handler_chains_form_elicitations_feeding_each_answer_forward[in-memory-2025-11-25] 11123[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11124[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11125tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11126tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11127tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11128[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11129[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11130tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11131[gw5] [ 93%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_tool_handler_chains_form_elicitations_feeding_each_answer_forward[in-memory-2025-11-25] 11132[gw4] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11133tests/interaction/lowlevel/test_flows.py::test_a_tool_handler_chains_form_elicitations_feeding_each_answer_forward[sse-2025-11-25] 11134tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11135[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11136[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11137[gw4] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11138tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11139tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11140tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11141[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11142tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11143tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11144[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11145[gw4] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11146[gw9] [ 93%] PASSED tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 11147[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11148tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11149tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11150[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11151tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11152[gw4] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11153[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11154tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11155[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11156tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11157tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11158[gw1] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11159[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11160tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11161[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11162[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11163[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11164tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11165tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 11166tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11167tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11168[gw2] [ 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 11169[gw1] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11170tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11171[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11172[gw1] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11173[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11174tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11175tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11176[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11177tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11178[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11179tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11180[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11181tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11182tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11183[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11184tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11185[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11186tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11187[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11188tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11189[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11190tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11191tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11192[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11193tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11194[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11195[gw9] [ 94%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11196tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11197tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11198[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11199[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11200tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11201tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11202[gw9] [ 94%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11203[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11204tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11205[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11206tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11207tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11208[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11209[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11210tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11211tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11212[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11213[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11214tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11215[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11216tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11217[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11218tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11219tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11220[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11221tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11222[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11223[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11224tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 11225[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 11226tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11227tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 11228[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 11229tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 11230[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11231[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 11232[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11233tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 11234[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 11235tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11236tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 11237tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11238[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 11239tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 11240[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 11241tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 11242[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 11243tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 11244tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11245[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 11246[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11247tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 11248tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11249tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11250[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11251[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 11252tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11253tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 11254[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11255[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11256[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 11257tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11258tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 11259[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11260tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11261[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 11262tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 11263[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 11264tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 11265[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11266[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11267tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11268[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 11269tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11270tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 11271[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11272[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11273tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11274[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11275tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11276[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 11277tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11278[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11279tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 11280tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11281[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 11282tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 11283[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11284tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11285[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11286[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11287tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11288[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11289tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11290tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11291[gw9] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 11292[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11293tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11294tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11295[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11296[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11297[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11298tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11299tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11300[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11301tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11302[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11303tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11304tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11305[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11306[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11307tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11308[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11309tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11310[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11311tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11312[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11313[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11314[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11315tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11316tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11317tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11318tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11319[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11320[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11321[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11322[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11323tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11324tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11325[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11326tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11327tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11328[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11329tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11330tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11331[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11332tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11333tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11334[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11335tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11336[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11337[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11338tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11339[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11340tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11341tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11342[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11343[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11344tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11345tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11346[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11347[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11348[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11349tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11350[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11351tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11352[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11353tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11354tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11355[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11356tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11357[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11358tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11359[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11360tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11361[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11362tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11363[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11364tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11365[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11366[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11367tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11368[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11369tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11370[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11371tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11372[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11373tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11374[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11375tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11376[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11377tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11378[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11379[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11380tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11381[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11382tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11383[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11384tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11385[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11386tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11387[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11388[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11389tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11390[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11391tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11392tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11393tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11394[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11395[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11396[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11397tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11398tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11399tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11400[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11401[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11402tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11403[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11404[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11405tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11406tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11407tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11408[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11409[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11410tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11411[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11412[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11413tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11414tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11415[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11416[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11417[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11418tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11419tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11420[gw5] [ 95%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_tool_handler_chains_form_elicitations_feeding_each_answer_forward[sse-2025-11-25] 11421[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11422tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11423tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11424tests/interaction/lowlevel/test_flows.py::test_a_tool_handler_chains_form_elicitations_feeding_each_answer_forward[streamable-http-2025-11-25] 11425[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11426[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11427tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11428[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11429tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11430[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11431tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11432[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11433tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11434tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11435[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11436tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11437[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11438[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11439tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11440[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11441tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11442[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11443tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11444tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11445tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11446[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11447[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11448tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11449tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11450[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11451[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11452tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11453[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11454tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11455[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11456[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11457[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11458tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11459tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11460tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11461tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11462[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11463tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11464[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11465[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11466tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11467[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11468tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11469[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11470[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11471[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11472tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11473tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11474tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11475tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11476[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11477[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11478[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11479tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11480tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11481[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11482[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11483tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11484tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11485[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11486tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11487[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11488tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11489[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11490[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11491[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11492tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11493tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11494tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11495tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11496[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11497[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11498[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11499tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11500tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11501tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11502tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11503[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11504[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11505[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11506tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11507tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11508tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11509[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11510tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11511[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11512[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11513tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11514tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11515[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11516[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11517tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11518tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11519[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11520[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11521tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11522tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11523tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11524[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11525tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11526[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11527[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11528[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11529tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11530tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11531tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11532[gw5] [ 96%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_tool_handler_chains_form_elicitations_feeding_each_answer_forward[streamable-http-2025-11-25] 11533tests/interaction/lowlevel/test_flows.py::test_a_tool_rejected_with_url_elicitation_required_succeeds_on_retry_after_completion[in-memory-2025-11-25] 11534[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11535[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11536tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11537tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11538[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11539[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11540tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11541[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11542[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11543tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11544[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11545tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11546[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11547tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11548[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11549[gw5] [ 97%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_tool_rejected_with_url_elicitation_required_succeeds_on_retry_after_completion[in-memory-2025-11-25] 11550[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11551tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11552tests/interaction/lowlevel/test_flows.py::test_a_tool_rejected_with_url_elicitation_required_succeeds_on_retry_after_completion[sse-2025-11-25] 11553tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11554[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11555[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11556tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11557[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11558tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11559tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11560[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11561[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11562[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11563tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11564tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11565tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11566[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11567tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11568[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11569tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11570tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11571[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11572[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11573tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11574tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11575[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11576tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11577tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11578[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11579[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11580[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11581[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11582[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11583tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11584[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11585tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11586[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11587[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11588[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11589tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11590tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11591tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11592[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11593[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11594[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11595tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11596[gw5] [ 97%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_tool_rejected_with_url_elicitation_required_succeeds_on_retry_after_completion[sse-2025-11-25] 11597tests/interaction/lowlevel/test_flows.py::test_a_tool_rejected_with_url_elicitation_required_succeeds_on_retry_after_completion[streamable-http-2025-11-25] 11598tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11599[gw3] [ 97%] PASSED tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11600[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11601tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11602tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11603tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11604[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11605[gw8] [ 97%] PASSED tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11606tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11607[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11608tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11609tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11610[gw3] [ 97%] PASSED tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11611[gw8] [ 97%] PASSED tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11612tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11613tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11614[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11615tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11616[gw3] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11617[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11618tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11619tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11620tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11621[gw8] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11622tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11623[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11624[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11625[gw3] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11626tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11627[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11628tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11629[gw8] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11630[gw6] [ 97%] PASSED tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11631[gw3] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11632tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11633tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11634tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11635[gw8] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11636tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11637[gw3] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11638tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11639tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11640tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11641tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11642[gw2] [ 97%] PASSED tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11643tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11644[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11645[gw8] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11646[gw3] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11647[gw4] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11648[gw1] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11649tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11650tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11651[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11652tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11653tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11654[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11655[gw3] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11656tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11657tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11658[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11659[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11660tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11661tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11662[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11663tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11664tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11665tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11666[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_flows.py::test_a_tool_rejected_with_url_elicitation_required_succeeds_on_retry_after_completion[streamable-http-2025-11-25] 11667[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11668[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11669tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11670[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11671[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11672[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11673tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11674tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11675tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[in-memory-2025-11-25] 11676tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11677[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11678[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11679[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11680tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11681tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11682tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11683[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11684tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11685tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11686[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11687[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11688[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11689[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11690tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11691tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11692[gw7] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11693tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11694tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11695[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11696tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11697[gw7] [ 98%] PASSED tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11698tests/types/test_version.py::test_known_versions_are_strictly_ordered 11699tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11700[gw4] [ 98%] PASSED tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11701[gw2] [ 98%] PASSED tests/types/test_version.py::test_known_versions_are_strictly_ordered 11702[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11703[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11704[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11705tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11706[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11707tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11708tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11709tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11710[gw1] [ 98%] PASSED tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11711[gw2] [ 98%] PASSED tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11712[gw6] [ 98%] PASSED tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11713tests/types/test_version.py::test_supported_versions_are_known 11714[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11715[gw3] [ 98%] PASSED tests/types/test_version.py::test_supported_versions_are_known 11716tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11717tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11718[gw3] [ 98%] PASSED tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11719[gw8] [ 98%] PASSED tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11720[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[in-memory-2025-11-25] 11721tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[sse-2025-11-25] 11722[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[sse-2025-11-25] 11723tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[streamable-http-2025-11-25] 11724[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[streamable-http-2025-11-25] 11725tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[streamable-http-stateless-2025-11-25] 11726[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_server_info[streamable-http-stateless-2025-11-25] 11727tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[in-memory-2025-11-25] 11728[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[in-memory-2025-11-25] 11729tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[sse-2025-11-25] 11730[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[sse-2025-11-25] 11731tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[streamable-http-2025-11-25] 11732[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[streamable-http-2025-11-25] 11733tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[streamable-http-stateless-2025-11-25] 11734[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_returns_instructions[streamable-http-stateless-2025-11-25] 11735tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[in-memory-2025-11-25] 11736[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[in-memory-2025-11-25] 11737tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[sse-2025-11-25] 11738[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[sse-2025-11-25] 11739tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[streamable-http-2025-11-25] 11740[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[streamable-http-2025-11-25] 11741tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[streamable-http-stateless-2025-11-25] 11742[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_capabilities_reflect_registered_handlers[streamable-http-stateless-2025-11-25] 11743tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[in-memory-2025-11-25] 11744[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[in-memory-2025-11-25] 11745tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[sse-2025-11-25] 11746[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[sse-2025-11-25] 11747tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[streamable-http-2025-11-25] 11748[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[streamable-http-2025-11-25] 11749tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[streamable-http-stateless-2025-11-25] 11750[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_minimal_server_advertises_no_capabilities[streamable-http-stateless-2025-11-25] 11751tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_info[in-memory-2025-11-25] 11752[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_info[in-memory-2025-11-25] 11753tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_info[sse-2025-11-25] 11754[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_info[sse-2025-11-25] 11755tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_info[streamable-http-2025-11-25] 11756[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_info[streamable-http-2025-11-25] 11757tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_capabilities[in-memory-2025-11-25] 11758[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_capabilities[in-memory-2025-11-25] 11759tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_capabilities[sse-2025-11-25] 11760[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_capabilities[sse-2025-11-25] 11761tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_capabilities[streamable-http-2025-11-25] 11762[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_server_sees_client_capabilities[streamable-http-2025-11-25] 11763tests/interaction/lowlevel/test_initialize.py::test_request_before_initialization_is_rejected 11764[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_request_before_initialization_is_rejected 11765tests/interaction/lowlevel/test_initialize.py::test_initialize_negotiates_protocol_version 11766[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_initialize_negotiates_protocol_version 11767tests/interaction/lowlevel/test_initialize.py::test_unsupported_server_protocol_version_fails_initialization 11768[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_unsupported_server_protocol_version_fails_initialization 11769tests/interaction/lowlevel/test_initialize.py::test_an_older_supported_protocol_version_from_the_server_is_accepted 11770[gw5] [ 98%] PASSED tests/interaction/lowlevel/test_initialize.py::test_an_older_supported_protocol_version_from_the_server_is_accepted 11771tests/interaction/lowlevel/test_list_changed.py::test_tool_list_changed_notification[in-memory-2025-11-25] 11772[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_tool_list_changed_notification[in-memory-2025-11-25] 11773tests/interaction/lowlevel/test_list_changed.py::test_tool_list_changed_notification[sse-2025-11-25] 11774[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_tool_list_changed_notification[sse-2025-11-25] 11775tests/interaction/lowlevel/test_list_changed.py::test_tool_list_changed_notification[streamable-http-2025-11-25] 11776[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_tool_list_changed_notification[streamable-http-2025-11-25] 11777tests/interaction/lowlevel/test_list_changed.py::test_resource_list_changed_notification[in-memory-2025-11-25] 11778[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_resource_list_changed_notification[in-memory-2025-11-25] 11779tests/interaction/lowlevel/test_list_changed.py::test_resource_list_changed_notification[sse-2025-11-25] 11780[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_resource_list_changed_notification[sse-2025-11-25] 11781tests/interaction/lowlevel/test_list_changed.py::test_resource_list_changed_notification[streamable-http-2025-11-25] 11782[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_resource_list_changed_notification[streamable-http-2025-11-25] 11783tests/interaction/lowlevel/test_list_changed.py::test_prompt_list_changed_notification[in-memory-2025-11-25] 11784[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_prompt_list_changed_notification[in-memory-2025-11-25] 11785tests/interaction/lowlevel/test_list_changed.py::test_prompt_list_changed_notification[sse-2025-11-25] 11786[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_prompt_list_changed_notification[sse-2025-11-25] 11787tests/interaction/lowlevel/test_list_changed.py::test_prompt_list_changed_notification[streamable-http-2025-11-25] 11788[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_list_changed.py::test_prompt_list_changed_notification[streamable-http-2025-11-25] 11789tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[in-memory-2025-11-25] 11790[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[in-memory-2025-11-25] 11791tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[sse-2025-11-25] 11792[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[sse-2025-11-25] 11793tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[streamable-http-2025-11-25] 11794[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[streamable-http-2025-11-25] 11795tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[streamable-http-stateless-2025-11-25] 11796[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_set_logging_level_reaches_handler[streamable-http-stateless-2025-11-25] 11797tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[in-memory-2025-11-25] 11798[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[in-memory-2025-11-25] 11799tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[sse-2025-11-25] 11800[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[sse-2025-11-25] 11801tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[streamable-http-2025-11-25] 11802[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[streamable-http-2025-11-25] 11803tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[streamable-http-stateless-2025-11-25] 11804[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[streamable-http-stateless-2025-11-25] 11805tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[in-memory-2026-07-28] 11806[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[in-memory-2026-07-28] 11807tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[streamable-http-2026-07-28] 11808[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_reach_logging_callback_in_order[streamable-http-2026-07-28] 11809tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[in-memory-2025-11-25] 11810[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[in-memory-2025-11-25] 11811tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[sse-2025-11-25] 11812[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[sse-2025-11-25] 11813tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[streamable-http-2025-11-25] 11814[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[streamable-http-2025-11-25] 11815tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[streamable-http-stateless-2025-11-25] 11816[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[streamable-http-stateless-2025-11-25] 11817tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[in-memory-2026-07-28] 11818[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[in-memory-2026-07-28] 11819tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[streamable-http-2026-07-28] 11820[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_messages_at_every_severity_level[streamable-http-2026-07-28] 11821tests/interaction/lowlevel/test_logging.py::test_log_delivery_follows_the_per_request_log_level[in-memory-2026-07-28] 11822[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_delivery_follows_the_per_request_log_level[in-memory-2026-07-28] 11823tests/interaction/lowlevel/test_logging.py::test_log_delivery_follows_the_per_request_log_level[streamable-http-2026-07-28] 11824[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_log_delivery_follows_the_per_request_log_level[streamable-http-2026-07-28] 11825tests/interaction/lowlevel/test_logging.py::test_a_request_with_an_unrecognized_log_level_is_rejected[in-memory-2026-07-28] 11826[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_a_request_with_an_unrecognized_log_level_is_rejected[in-memory-2026-07-28] 11827tests/interaction/lowlevel/test_logging.py::test_a_request_with_an_unrecognized_log_level_is_rejected[streamable-http-2026-07-28] 11828[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_logging.py::test_a_request_with_an_unrecognized_log_level_is_rejected[streamable-http-2026-07-28] 11829tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[in-memory-2025-11-25] 11830[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[in-memory-2025-11-25] 11831tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[sse-2025-11-25] 11832[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[sse-2025-11-25] 11833tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[streamable-http-2025-11-25] 11834[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[streamable-http-2025-11-25] 11835tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[streamable-http-stateless-2025-11-25] 11836[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_meta.py::test_request_meta_reaches_handler[streamable-http-stateless-2025-11-25] 11837tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[in-memory-2025-11-25] 11838[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[in-memory-2025-11-25] 11839tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[sse-2025-11-25] 11840[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[sse-2025-11-25] 11841tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[streamable-http-2025-11-25] 11842[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[streamable-http-2025-11-25] 11843tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[streamable-http-stateless-2025-11-25] 11844[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[streamable-http-stateless-2025-11-25] 11845tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[in-memory-2026-07-28] 11846[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[in-memory-2026-07-28] 11847tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[streamable-http-2026-07-28] 11848[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_meta.py::test_result_meta_reaches_client[streamable-http-2026-07-28] 11849tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[in-memory-2025-11-25] 11850[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[in-memory-2025-11-25] 11851tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[sse-2025-11-25] 11852[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[sse-2025-11-25] 11853tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[streamable-http-2025-11-25] 11854[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[streamable-http-2025-11-25] 11855tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[streamable-http-stateless-2025-11-25] 11856[gw5] [ 99%] PASSED tests/interaction/lowlevel/test_pagination.py::test_next_cursor_round_trips_through_the_client[streamable-http-stateless-2025-11-25] 11857[gw0] [ 99%] PASSED tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 11858tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11859[gw0] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11860tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11861[gw0] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11862tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11863[gw0] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11864tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11865[gw0] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11866tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11867[gw0] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11868tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 11869[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 11870tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 11871[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 11872tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 11873[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 11874tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 11875[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 11876tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 11877[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 11878tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 11879[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 11880tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 11881[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 11882tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 11883[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 11884tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 11885[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 11886tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 11887[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 11888tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 11889[gw0] [100%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 1189011891================= 5903 passed, 9 skipped, 1 xfailed in 48.14s ==================11892Finished executing pytestCheckPhase11893pytestCheckPhase completed in 52 seconds