nixbot

builds

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

1mac02: building p629ilzcma8gw3wc5ip3dpzqxp0pz3v1-python3.14-mcp-2.3.0.drv2structuredAttrs is enabled3Sourcing python-remove-tests-dir-hook4Sourcing python-catch-conflicts-hook.sh5Sourcing python-remove-bin-bytecode-hook.sh6Sourcing pypa-build-hook7Using pypaBuildPhase8Sourcing python-runtime-deps-check-hook9Using pythonRuntimeDepsCheckHook10Sourcing pypa-install-hook11Using pypaInstallPhase12Sourcing python-imports-check-hook.sh13Using pythonImportsCheckPhase14Sourcing python-metadata-check-hook.sh15Using pythonMetadataCheckPhase16Sourcing python-namespaces-hook17Sourcing python-catch-conflicts-hook.sh18Sourcing pytest-check-hook19Using pytestCheckPhase
unpackPhase
20unpacking source archive /nix/store/prbkdf4kv543ij4r95gk96pykmcqy7xp-source21source root is source22setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "source/uv.lock"
configurePhase
23no configure script, doing nothing
buildPhase
24Executing pypaBuildPhase25Setting UV_DYNAMIC_VERSIONING_BYPASS to 2.3.026Creating a wheel...27pypa build flags: --no-isolation --outdir dist/ --wheel28* Getting build dependencies for wheel...29* Building wheel...30Successfully built mcp-2.3.0-py3-none-any.whl31Finished creating a wheel...32Finished executing pypaBuildPhase
pythonRuntimeDepsCheckHook
33Executing pythonRuntimeDepsCheck34Checking runtime dependencies for mcp-2.3.0-py3-none-any.whl35Finished executing pythonRuntimeDepsCheck
installPhase
36Executing pypaInstallPhase37Successfully installed mcp-2.3.0-py3-none-any.whl38Finished executing pypaInstallPhase
pythonOutputDistPhase
39Executing pythonOutputDistPhase40Finished executing pythonOutputDistPhase
fixupPhase
41checking for references to /nix/var/nix/builds/nix-54724-3257114408/ in /nix/store/8bpjfr34q2xnglr7x825dd3zim8zr084-python3.14-mcp-2.3.0-dist...42patching script interpreter paths in /nix/store/8bpjfr34q2xnglr7x825dd3zim8zr084-python3.14-mcp-2.3.0-dist43checking for references to /nix/var/nix/builds/nix-54724-3257114408/ in /nix/store/rbbjpgyp2ngg8abwhvfr7v041dxslqzq-python3.14-mcp-2.3.0...44patching script interpreter paths in /nix/store/rbbjpgyp2ngg8abwhvfr7v041dxslqzq-python3.14-mcp-2.3.045stripping (with command strip and flags -S) in /nix/store/rbbjpgyp2ngg8abwhvfr7v041dxslqzq-python3.14-mcp-2.3.0/lib /nix/store/rbbjpgyp2ngg8abwhvfr7v041dxslqzq-python3.14-mcp-2.3.0/bin46Rewriting #!/nix/store/0jb1qn7qnpbz8774mq5k2c1p84gp0x76-python3-3.14.8/bin/python3.14 to #!/nix/store/0jb1qn7qnpbz8774mq5k2c1p84gp0x76-python3-3.14.847wrapping `/nix/store/rbbjpgyp2ngg8abwhvfr7v041dxslqzq-python3.14-mcp-2.3.0/bin/mcp'...48Executing pythonRemoveTestsDir49Finished executing pythonRemoveTestsDir
installCheckPhase
50no Makefile or custom installCheckPhase, doing nothing
pythonImportsCheckPhase
51Executing pythonImportsCheckPhase52Check whether the following modules can be imported: mcp
pythonMetadataCheckPhase
53Executing pythonMetadataCheckPhase
pytestCheckPhase
54Executing pytestCheckPhase55pytest 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=1056============================= test session starts ==============================57platform darwin -- Python 3.14.8, pytest-9.1.1, pluggy-1.6.058rootdir: /nix/var/nix/builds/nix-54724-3257114408/source59configfile: pyproject.toml60plugins: anyio-4.15.1, examples-0.0.18, inline-snapshot-0.34.2, logfire-4.41.0, asyncio-1.4.0, xdist-3.8.061asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function6210 workers [5913 items] 63scheduling tests via LoadScheduling6465tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 66tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 67tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 68tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 69tests/client/test_streamable_http.py::test_default_sse_limit_fails_one_large_tool_call_and_keeps_the_session_usable 70tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 71tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 72tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 73tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 74[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 75tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 76[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 77tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields 78[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields 79tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name 80[gw6] [ 0%] PASSED tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 81tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 82[gw1] [ 0%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 83tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 84[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 85tests/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] 86[gw3] [ 0%] PASSED tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name 87tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 88[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 89tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 90[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 91tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 92[gw4] [ 0%] PASSED tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 93tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 94[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 95tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 96[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 97tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 98[gw2] [ 0%] PASSED tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 99tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 100tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 101[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] 102[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 103tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 104tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 105[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 106tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 107[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 108tests/cli/test_claude.py::test_generates_uv_run_command 109[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 110tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 111[gw6] [ 0%] PASSED tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 112[gw8] [ 0%] PASSED tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 113tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 114[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 115tests/client/test_extension.py::test_result_claim_is_frozen 116tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 117[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 118tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 119[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_generates_uv_run_command 120tests/cli/test_claude.py::test_file_spec_without_object_suffix 121[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_file_spec_without_object_suffix 122tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 123[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 124tests/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] 125[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] 126tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 127[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 128tests/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] 129[gw2] [ 0%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 130[gw3] [ 0%] PASSED tests/client/test_extension.py::test_result_claim_is_frozen 131tests/client/test_extension.py::test_notification_binding_constructs 132[gw3] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_constructs 133tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 134[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 135tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 136[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 137tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 138[gw3] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 139tests/client/test_extension.py::test_notification_binding_is_frozen 140[gw3] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_is_frozen 141tests/client/test_extension.py::test_extension_defaults_advertise_nothing 142[gw3] [ 0%] PASSED tests/client/test_extension.py::test_extension_defaults_advertise_nothing 143tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 144[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope="admin:write resource:read", error="insufficient_scope"-scope-admin:write resource:read] 145tests/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] 146[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", resource_metadata="https://api.example.com/.well-known/oauth-protected-resource", error="insufficient_scope"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 147tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 148[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 149tests/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] 150[gw1] [ 0%] 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] 151tests/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] 152tests/cli/test_claude.py::test_with_editable_adds_flag 153[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_with_editable_adds_flag 154tests/cli/test_claude.py::test_env_vars_written 155[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_env_vars_written 156tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 157[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 158tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 159[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 160tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 161[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 162tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 163[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 164tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 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] 173[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 174tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 175[gw1] [ 0%] 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] 176tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 177[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 178tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 179[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 180[gw4] [ 0%] PASSED tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 181tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 182[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 183tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 184[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 185tests/cli/test_claude.py::test_other_servers_preserved 186tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] 187[gw1] [ 0%] 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] 188[gw7] [ 0%] PASSED tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 189tests/docs_src/test_first_steps.py::test_call_the_tool 190[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 191tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 192[gw6] [ 1%] PASSED tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 193tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 194tests/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] 195[gw2] [ 1%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 196tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 197[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 198tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 199[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 200tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 201[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 202tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 203[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 204tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 205[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_other_servers_preserved 206tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 207[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 208[gw4] [ 1%] PASSED tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 209[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] 210tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 211[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 212tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 213tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 214[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 215tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 216[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 217[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 218[gw8] [ 1%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 219tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 220tests/cli/test_claude.py::test_raises_when_config_dir_missing 221tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 222[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 223tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 224[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] 225tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 226[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_raises_when_config_dir_missing 227[gw2] [ 1%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 228tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 229[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 230tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 231[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 232tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 233tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 234[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 235tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 236[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 237tests/cli/test_claude.py::test_get_uv_path[None-uv] 238[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 239tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 240[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_get_uv_path[None-uv] 241tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 242[gw2] [ 1%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 243[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 244tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 245[gw8] [ 1%] PASSED tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 246tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 247tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 248[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 249tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 250tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 251[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 252[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 253[gw2] [ 1%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 254tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 255tests/client/test_client.py::test_client_is_initialized 256tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 257[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 258tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 259[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 260[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 261[gw8] [ 1%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 262tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 263tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 264[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 265tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 266[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 267tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 268tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 269[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 270tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 271[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 272[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 273[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 274[gw8] [ 1%] PASSED tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 275[gw0] [ 1%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 276tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 277tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 278tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 279tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 280[gw4] [ 1%] PASSED tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 281[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 282tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 283tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 284[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 285tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 286tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 287[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 288tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 289[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 290tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 291[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 292tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 293[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 294tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 295[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 296tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 297[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 298tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 299[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 300tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 301[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 302[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 303[gw1] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 304tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 305[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 306tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 307[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 308tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 309tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 310tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 311[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 312tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 313[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 314tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 315[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 316[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 317tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 318[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 319tests/cli/test_utils.py::test_parse_file_path_missing 320[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 321tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 322tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 323[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 324[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_parse_file_path_missing 325tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 326tests/cli/test_utils.py::test_parse_file_exit_on_dir 327[gw4] [ 2%] PASSED tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 328[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 329tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 330[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_parse_file_exit_on_dir 331tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 332tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 333[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 334tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 335[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 336[gw2] [ 2%] PASSED tests/client/test_client.py::test_client_is_initialized 337tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 338[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 339tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 340tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 341[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 342tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 343[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 344tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 345[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 346tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 347[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 348tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 349[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 350tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 351[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 352[gw4] [ 2%] PASSED tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 353tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 354[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 355tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 356[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 357[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 358tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 359tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 360[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 361[gw4] [ 2%] PASSED tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 362tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 363[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 364tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 365tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 366[gw4] [ 2%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 367tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 368[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 369tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 370[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 371[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 372tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 373tests/cli/test_utils.py::test_get_npx_unix_like 374[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_get_npx_unix_like 375tests/cli/test_utils.py::test_get_npx_windows 376[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 377tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 378[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 379tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 380[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_get_npx_windows 381tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 382[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 383tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 384[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 385[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 386tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 387[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 388[gw4] [ 2%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 389tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 390[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 391tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 392tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 393tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 394[gw3] [ 2%] PASSED tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 395[gw4] [ 2%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 396tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 397tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 398[gw4] [ 2%] PASSED tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 399tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 400tests/client/test_extension.py::test_advertise_serves_captured_settings 401[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 402[gw4] [ 2%] PASSED tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 403tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 404tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 405[gw0] [ 2%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 406tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 407[gw3] [ 2%] PASSED tests/client/test_extension.py::test_advertise_serves_captured_settings 408[gw2] [ 2%] PASSED tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 409[gw5] [ 2%] PASSED tests/client/test_streamable_http.py::test_default_sse_limit_fails_one_large_tool_call_and_keeps_the_session_usable 410tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 411[gw4] [ 2%] PASSED tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 412tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification 413[gw3] [ 2%] PASSED tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 414tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 415tests/client/test_session.py::test_era_neutral_properties_after_discover 416[gw3] [ 2%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 417tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 418[gw0] [ 2%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 419tests/client/test_client.py::test_client_with_simple_server 420[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 421tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 422tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 423[gw4] [ 2%] PASSED tests/client/test_session.py::test_era_neutral_properties_after_discover 424[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 425[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 426tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 427tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 428tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 429[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 430tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 431[gw4] [ 3%] PASSED tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 432[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 433tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 434[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 435tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 436[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 437tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 438[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 439tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 440tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 441[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 442tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 443[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 444tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 445[gw2] [ 3%] PASSED tests/client/test_client.py::test_client_with_simple_server 446[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 447[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 448tests/client/test_client.py::test_client_send_ping 449tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 450[gw4] [ 3%] PASSED tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 451tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 452[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 453tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 454tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 455[gw3] [ 3%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 456tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 457[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 458[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 459[gw4] [ 3%] PASSED tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 460tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 461[gw3] [ 3%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 462tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 463tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 464[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 465tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 466[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 467tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 468[gw4] [ 3%] PASSED tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 469[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 470[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 471tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 472tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 473tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 474tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 475[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 476tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 477[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 478[gw4] [ 3%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 479[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 480tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 481[gw2] [ 3%] PASSED tests/client/test_client.py::test_client_send_ping 482tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 483tests/client/test_client.py::test_client_list_tools 484[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 485tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 486tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 487[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 488[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 489tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 490tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 491[gw4] [ 3%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 492[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 493tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 494[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 495tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 496[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 497tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 498tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 499[gw2] [ 3%] PASSED tests/client/test_client.py::test_client_list_tools 500[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 501[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 502tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 503tests/client/test_client.py::test_client_call_tool 504tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 505[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 506[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 507tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 508[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 509[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 510tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 511tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 512tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 513[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 514[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 515tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 516tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 517[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 518[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 519tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 520[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 521[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 522tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 523tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 524[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 525[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 526tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 527tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 528[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] 529tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 530tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 531[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 532[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 533[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 534tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 535tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 536tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 537[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] 538tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 539[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 540tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 541[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 542[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 543tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 544[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 545tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 546tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 547[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 548tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 549[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 550tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 551[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 552tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 553[gw5] [ 4%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification 554[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 555tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 556tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages 557[gw3] [ 4%] PASSED tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 558[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 559[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 560tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 561tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 562[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 563tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 564tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 565[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 566tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 567[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 568tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 569[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 570tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 571[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 572tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 573[gw3] [ 4%] PASSED tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 574[gw5] [ 4%] PASSED tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages 575[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 576tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 577[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 578tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 579tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 580[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 581tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 582[gw3] [ 4%] PASSED tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 583tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 584[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 585tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 586tests/client/test_input_required.py::test_default_max_rounds_constant 587[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 588tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 589[gw3] [ 4%] PASSED tests/client/test_input_required.py::test_default_max_rounds_constant 590[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 591tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 592tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 593[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 594[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 595tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 596[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 597tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 598tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 599[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 600[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 601tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 602[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 603tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 604[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 605[gw4] [ 4%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 606tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 607tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 608tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 609[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 610tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 611[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 612tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 613[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 614tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 615[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 616tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 617[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 618tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 619[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 620tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 621[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 622[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 623tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 624tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 625[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 626[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 627tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 628tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 629[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 630[gw4] [ 4%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 631[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 632[gw1] [ 4%] PASSED tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 633tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 634tests/client/test_auth.py::test_union_scopes[dedup] 635tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 636[gw3] [ 4%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 637tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 638[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 639tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 640tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 641[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 642[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 643tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 644tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 645[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 646[gw4] [ 4%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 647tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 648[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 649tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 650tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 651[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 652tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 653[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 654[gw1] [ 4%] PASSED tests/client/test_auth.py::test_union_scopes[dedup] 655tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 656[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 657tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 658[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 659tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 660[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 661[gw4] [ 4%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 662tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 663[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 664[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 665tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 666tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 667tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 668[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 669tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 670tests/client/test_auth.py::test_union_scopes[no-previous] 671[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 672[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 673tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 674tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 675[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 676[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 677tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 678[gw3] [ 5%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 679[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 680[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 681tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 682tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 683tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 684tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 685[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 686tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 687[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 688tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 689[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 690tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 691[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 692[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 693tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 694tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 695[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 696[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 697[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 698tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 699tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 700[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 701[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 702tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 703tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 704tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 705[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[no-previous] 706tests/client/test_auth.py::test_union_scopes[no-new] 707[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 708[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 709tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 710tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 711[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 712tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 713[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 714[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 715[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 716[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[no-new] 717tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 718tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 719tests/client/test_auth.py::test_union_scopes[both-empty] 720[gw3] [ 5%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 721tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 722[gw6] [ 5%] PASSED tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 723[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 724tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 725[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 726tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 727tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 728tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 729[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 730tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 731[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[both-empty] 732tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 733[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 734tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 735[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 736[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 737tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 738[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 739[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 740[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 741tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add-add-False] 742tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 743[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 744tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 745tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 746[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] 747[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 748tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 749[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 750tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 751tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 752[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 753tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 754[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 755tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 756tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 757[gw3] [ 5%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 758[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 759tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 760tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 761[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 762[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 763tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 764tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 765[gw6] [ 5%] PASSED tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 766[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 767tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 768[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 769tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 770[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 771tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 772[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 773tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 774[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 775tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 776tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 777[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 778[gw3] [ 5%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 779[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 780tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 781tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 782[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 783tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 784tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 785[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 786[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 787tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 788tests/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] 789[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 790[gw5] [ 6%] 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] 791tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 792tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[ add-=?base64?IGFkZA==?=-True] 793[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 794[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 795[gw4] [ 6%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 796tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 797tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 798tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 799[gw3] [ 6%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 800[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 801tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 802[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 803tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 804[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 805tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 806tests/client/test_list_roots_callback.py::test_list_roots_callback 807[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 808tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 809[gw4] [ 6%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 810[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 811tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 812tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 813[gw5] [ 6%] 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] 814[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 815[gw1] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 816tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 817tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 818[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 819tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 820[gw4] [ 6%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 821tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add -=?base64?YWRkIA==?=-True] 822tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 823[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 824[gw5] [ 6%] 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] 825tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 826tests/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] 827[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 828tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 829[gw5] [ 6%] 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] 830tests/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] 831[gw4] [ 6%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 832[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 833[gw1] [ 6%] PASSED tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 834tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 835tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 836[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 837tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 838tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 839[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 840tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 841[gw4] [ 6%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 842[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 843tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 844tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 845[gw3] [ 6%] PASSED tests/client/test_list_roots_callback.py::test_list_roots_callback 846[gw1] [ 6%] PASSED tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 847[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 848tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 849tests/client/test_logging_callback.py::test_logging_callback 850[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 851[gw4] [ 6%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 852tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 853tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 854tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] 855[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 856tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 857[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 858tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 859[gw1] [ 6%] PASSED tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 860[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 861tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 862tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 863[gw5] [ 6%] 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] 864[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 865tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 866[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 867tests/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] 868[gw1] [ 6%] PASSED tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 869tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 870tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 871[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 872tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 873[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 874tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 875[gw5] [ 6%] 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] 876[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 877[gw1] [ 6%] PASSED tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 878tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 879tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 880tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 881[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 882tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 883[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 884tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 885[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 886tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 887[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 888tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 889[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 890[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 891tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 892tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 893[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 894tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 895[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 896tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 897[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 898tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 899[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 900tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 901[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 902tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 903[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 904tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 905[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 906tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 907[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 908tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 909[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 910tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] 911[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 912[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] 913tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] 914tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] 915[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] 916tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial001.py] 917[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial001.py] 918tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial002.py] 919[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial002.py] 920tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial001.py] 921[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] 922tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] 923[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial001.py] 924tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial002.py] 925[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial002.py] 926tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial003.py] 927[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial003.py] 928tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial004.py] 929[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial004.py] 930tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial005.py] 931[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial005.py] 932tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial001.py] 933[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] 934[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial001.py] 935tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial002.py] 936tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 937[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial002.py] 938tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/opentelemetry/tutorial001.py] 939[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/opentelemetry/tutorial001.py] 940tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial001.py] 941[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 942[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial001.py] 943tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial002.py] 944tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 945[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial002.py] 946tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial001.py] 947[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial001.py] 948tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial002.py] 949[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial002.py] 950tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial001.py] 951[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 952[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial001.py] 953tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial002.py] 954tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 955[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial002.py] 956tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial003.py] 957[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial003.py] 958tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial004.py] 959[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 960[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial004.py] 961tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial005.py] 962tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 963[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial005.py] 964tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial006.py] 965[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial006.py] 966tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial001.py] 967[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial001.py] 968tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial002.py] 969[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 970[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial002.py] 971tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial003.py] 972tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 973[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial003.py] 974tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial004.py] 975[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial004.py] 976tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/real_host/tutorial001.py] 977[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/real_host/tutorial001.py] 978tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial001.py] 979[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial001.py] 980tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial002.py] 981[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 982[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial002.py] 983tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial003.py] 984tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 985[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial003.py] 986tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial001.py] 987[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial001.py] 988tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial002.py] 989[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial002.py] 990tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial003.py] 991[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial003.py] 992tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial001.py] 993[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial001.py] 994tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial002.py] 995[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial002.py] 996tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial001.py] 997[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial001.py] 998tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial002.py] 999[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial002.py] 1000tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial003.py] 1001[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial003.py] 1002tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial004.py] 1003[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial004.py] 1004tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial001.py] 1005[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial001.py] 1006tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial002.py] 1007[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial002.py] 1008tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial003.py] 1009[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial003.py] 1010tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial004.py] 1011[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial004.py] 1012tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial005.py] 1013[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial005.py] 1014tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial006.py] 1015[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial006.py] 1016tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial007.py] 1017[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial007.py] 1018tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial008.py] 1019[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial008.py] 1020tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial009.py] 1021[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial009.py] 1022tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial001.py] 1023[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial001.py] 1024tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial002.py] 1025[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial002.py] 1026tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial003.py] 1027[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial003.py] 1028tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_anyio.py] 1029[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_anyio.py] 1030tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_asyncio.py] 1031[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_asyncio.py] 1032tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_trio.py] 1033[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_trio.py] 1034tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial005.py] 1035[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial005.py] 1036tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial006.py] 1037[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial006.py] 1038tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial007.py] 1039[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial007.py] 1040tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/testing/tutorial001.py] 1041[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/testing/tutorial001.py] 1042tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial001.py] 1043[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial001.py] 1044tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial002.py] 1045[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial002.py] 1046tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial003.py] 1047[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 1048tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1049[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial003.py] 1050tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial004.py] 1051[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial004.py] 1052tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial005.py] 1053[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial005.py] 1054tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial001.py] 1055[gw7] [ 8%] PASSED tests/docs_src/test_first_steps.py::test_call_the_tool 1056[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial001.py] 1057tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial002.py] 1058tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 1059[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial002.py] 1060tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial003.py] 1061[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial003.py] 1062tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial004.py] 1063[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial004.py] 1064tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial005.py] 1065[gw7] [ 8%] PASSED tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 1066[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial005.py] 1067tests/docs_src/test_first_steps.py::test_read_the_resource_template 1068tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial006.py] 1069[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial006.py] 1070tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial007.py] 1071[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial007.py] 1072tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial008.py] 1073[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial008.py] 1074tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial001.py] 1075[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial001.py] 1076tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial002.py] 1077[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial002.py] 1078tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial003.py] 1079[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial003.py] 1080tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial004.py] 1081[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial004.py] 1082tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial005.py] 1083[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial005.py] 1084tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/whats_new/tutorial001.py] 1085[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/whats_new/tutorial001.py] 1086tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001.py] 1087[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001.py] 1088tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001_client.py] 1089[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001_client.py] 1090tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial002.py] 1091[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial002.py] 1092tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial003.py] 1093[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial003.py] 1094tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial001.py] 1095[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial001.py] 1096tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial002.py] 1097[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial002.py] 1098tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial003.py] 1099[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial003.py] 1100tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial004.py] 1101[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial004.py] 1102tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial005.py] 1103[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1104[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial005.py] 1105tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1106[gw4] [ 8%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] 1107tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 1108[gw7] [ 8%] PASSED tests/docs_src/test_first_steps.py::test_read_the_resource_template 1109tests/docs_src/test_first_steps.py::test_get_the_prompt 1110[gw4] [ 8%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 1111tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits 1112[gw1] [ 8%] PASSED tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 1113tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 1114[gw1] [ 8%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 1115tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 1116[gw1] [ 8%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 1117tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1118[gw7] [ 8%] PASSED tests/docs_src/test_first_steps.py::test_get_the_prompt 1119tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 1120[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1121tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1122tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial006.py] 1123[gw7] [ 8%] PASSED tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 1124[gw5] [ 8%] PASSED tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 1125[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial006.py] 1126tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 1127tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial001.py] 1128tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 1129[gw5] [ 8%] PASSED tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 1130tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 1131[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial001.py] 1132tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial002.py] 1133[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1134[gw7] [ 8%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 1135tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 1136tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1137[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1138tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 1139[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial002.py] 1140tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial001.py] 1141[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial001.py] 1142tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial002.py] 1143[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial002.py] 1144tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial003.py] 1145[gw7] [ 9%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 1146[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial003.py] 1147tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/cancellation/tutorial001.py] 1148tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 1149[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/cancellation/tutorial001.py] 1150tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/cancellation/tutorial002.py] 1151[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/cancellation/tutorial002.py] 1152tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001.py] 1153[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001.py] 1154tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001_client.py] 1155[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001_client.py] 1156tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial002.py] 1157[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial002.py] 1158[gw1] [ 9%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1159tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial003.py] 1160tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1161[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial003.py] 1162tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial004.py] 1163[gw7] [ 9%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 1164[gw0] [ 9%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 1165tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 1166tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 1167[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial004.py] 1168tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial005.py] 1169[gw7] [ 9%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 1170tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 1171[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial005.py] 1172[gw7] [ 9%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 1173tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 1174tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial006.py] 1175[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial006.py] 1176tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial007.py] 1177[gw7] [ 9%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 1178tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 1179[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial007.py] 1180tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial001.py] 1181[gw0] [ 9%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 1182[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial001.py] 1183[gw1] [ 9%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1184tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1185tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 1186tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial002.py] 1187[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial002.py] 1188tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial003.py] 1189[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial003.py] 1190tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial004.py] 1191[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial004.py] 1192tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial001.py] 1193[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial001.py] 1194tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial002.py] 1195[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 1196[gw1] [ 9%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1197tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1198tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 1199[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial002.py] 1200tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial003.py] 1201[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial003.py] 1202tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial004.py] 1203[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial004.py] 1204[gw1] [ 9%] PASSED tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1205[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 1206tests/examples/test_stories.py::test_story[pagination-server-in-memory-modern] 1207tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1208tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1209[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1210tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1211[gw1] [ 9%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1212tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1213[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1214tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1215[gw9] [ 9%] PASSED tests/examples/test_stories.py::test_story[pagination-server-in-memory-modern] 1216tests/examples/test_stories.py::test_story[pagination-server-in-memory-legacy] 1217[gw1] [ 9%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1218tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1219[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1220tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1221[gw1] [ 9%] PASSED tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1222[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1223tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1224[gw9] [ 9%] PASSED tests/examples/test_stories.py::test_story[pagination-server-in-memory-legacy] 1225tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1226tests/examples/test_stories.py::test_story[pagination-server-http-asgi-modern] 1227[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1228tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1229[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1230[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1231tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1232tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1233[gw9] [ 9%] PASSED tests/examples/test_stories.py::test_story[pagination-server-http-asgi-modern] 1234[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1235[gw1] [ 9%] PASSED tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1236tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1237tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1238tests/examples/test_stories.py::test_story[pagination-server-http-asgi-legacy] 1239[gw1] [ 9%] PASSED tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1240[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1241tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1242tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1243[gw1] [ 9%] PASSED tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1244[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1245tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1246tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1247[gw1] [ 9%] PASSED tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1248[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1249tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1250tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1251[gw1] [ 9%] PASSED tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1252tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1253[gw0] [ 9%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1254tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1255[gw9] [ 9%] PASSED tests/examples/test_stories.py::test_story[pagination-server-http-asgi-legacy] 1256[gw5] [ 10%] PASSED tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 1257tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1258[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1259tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1260[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1261tests/examples/test_stories.py::test_story[pagination-server_lowlevel-in-memory-modern] 1262[gw1] [ 10%] PASSED tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1263tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1264[gw5] [ 10%] PASSED tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1265tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1266tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1267[gw1] [ 10%] PASSED tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1268[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1269tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1270[gw9] [ 10%] PASSED tests/examples/test_stories.py::test_story[pagination-server_lowlevel-in-memory-modern] 1271[gw7] [ 10%] PASSED tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 1272[gw1] [ 10%] PASSED tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1273tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 1274tests/examples/test_stories.py::test_story[pagination-server_lowlevel-in-memory-legacy] 1275tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1276[gw1] [ 10%] PASSED tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1277tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1278[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1279tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1280[gw9] [ 10%] PASSED tests/examples/test_stories.py::test_story[pagination-server_lowlevel-in-memory-legacy] 1281[gw7] [ 10%] PASSED tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 1282[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1283tests/examples/test_stories.py::test_story[pagination-server_lowlevel-http-asgi-modern] 1284tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 1285tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1286[gw1] [ 10%] PASSED tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1287tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1288[gw5] [ 10%] PASSED tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1289tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1290[gw7] [ 10%] PASSED tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 1291tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 1292tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1293[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1294[gw0] [ 10%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1295tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1296tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1297[gw7] [ 10%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 1298tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 1299[gw0] [ 10%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1300tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1301[gw5] [ 10%] PASSED tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1302tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1303[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1304tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1305[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1306[gw5] [ 10%] PASSED tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1307tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1308tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1309[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1310tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1311[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1312tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1313[gw7] [ 10%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 1314[gw1] [ 10%] PASSED tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1315tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1316tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial001] 1317[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1318tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1319[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1320tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1321[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1322[gw1] [ 10%] PASSED tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1323tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1324tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1325[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1326tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1327[gw9] [ 10%] PASSED tests/examples/test_stories.py::test_story[pagination-server_lowlevel-http-asgi-modern] 1328[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1329tests/examples/test_stories.py::test_story[pagination-server_lowlevel-http-asgi-legacy] 1330tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1331[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1332tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1333[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1334tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1335[gw1] [ 10%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1336tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1337[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1338tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1339[gw1] [ 10%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1340tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1341[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1342tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1343[gw7] [ 10%] PASSED tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial001] 1344[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1345tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial002] 1346tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1347[gw8] [ 10%] PASSED tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 1348[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1349tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 1350tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1351[gw1] [ 10%] PASSED tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1352[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1353tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1354tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1355[gw1] [ 10%] PASSED tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1356[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1357tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1358tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1359[gw1] [ 10%] PASSED tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1360[gw8] [ 10%] PASSED tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 1361[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1362tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1363tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1364[gw7] [ 10%] PASSED tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial002] 1365tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 1366tests/docs_src/test_header_parameters.py::test_a_call_whose_header_and_body_disagree_is_rejected 1367[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1368[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1369tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1370tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1371[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1372tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1373[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1374[gw8] [ 11%] PASSED tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 1375tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text 1376tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1377[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1378tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1379[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1380tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 1381[gw1] [ 11%] PASSED tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1382tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1383[gw8] [ 11%] PASSED tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text 1384[gw6] [ 11%] PASSED tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 1385[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 1386tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources 1387tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 1388[gw1] [ 11%] PASSED tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1389tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 1390tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1391[gw7] [ 11%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_whose_header_and_body_disagree_is_rejected 1392[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 1393[gw8] [ 11%] PASSED tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources 1394tests/docs_src/test_header_parameters.py::test_a_client_that_has_not_listed_the_tool_is_rejected_then_lists_and_resends_once 1395[gw6] [ 11%] PASSED tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 1396[gw1] [ 11%] PASSED tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1397tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 1398tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 1399tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 1400tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1401[gw6] [ 11%] PASSED tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 1402[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 1403tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1404[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1405tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1406[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1407[gw8] [ 11%] PASSED tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 1408tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1409tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 1410[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1411tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 1412[gw5] [ 11%] PASSED tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1413tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1414tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1415[gw1] [ 11%] PASSED tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1416[gw6] [ 11%] PASSED tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 1417[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1418[gw8] [ 11%] PASSED tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 1419tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1420[gw9] [ 11%] PASSED tests/examples/test_stories.py::test_story[pagination-server_lowlevel-http-asgi-legacy] 1421tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 1422tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1423[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1424[gw1] [ 11%] PASSED tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1425[gw6] [ 11%] PASSED tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 1426tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1427tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1428tests/examples/test_stories.py::test_story[error_handling-server-in-memory-modern] 1429[gw1] [ 11%] PASSED tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1430tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1431tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 1432[gw0] [ 11%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1433tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1434[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1435tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1436[gw0] [ 11%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1437[gw6] [ 11%] PASSED tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 1438tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1439[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1440tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1441tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 1442[gw7] [ 11%] PASSED tests/docs_src/test_header_parameters.py::test_a_client_that_has_not_listed_the_tool_is_rejected_then_lists_and_resends_once 1443[gw0] [ 11%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1444[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1445tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1446tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1447tests/docs_src/test_header_parameters.py::test_a_legacy_http_connection_ignores_the_annotation 1448[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1449tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1450[gw6] [ 11%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 1451tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 1452[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1453tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1454tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 1455[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1456tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1457[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1458[gw6] [ 11%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 1459tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1460tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 1461[gw7] [ 11%] PASSED tests/docs_src/test_header_parameters.py::test_a_legacy_http_connection_ignores_the_annotation 1462[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1463tests/docs_src/test_header_parameters.py::test_a_connection_that_is_not_http_ignores_the_annotation 1464tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 1465[gw1] [ 11%] PASSED tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1466[gw6] [ 11%] PASSED tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 1467tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1468tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 1469[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 1470tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 1471[gw0] [ 11%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 1472tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 1473[gw0] [ 11%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 1474tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 1475[gw7] [ 11%] PASSED tests/docs_src/test_header_parameters.py::test_a_connection_that_is_not_http_ignores_the_annotation 1476tests/docs_src/test_header_parameters.py::test_int_and_bool_arguments_can_be_marked 1477[gw6] [ 11%] PASSED tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 1478tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 1479[gw5] [ 11%] PASSED tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1480tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1481[gw7] [ 11%] PASSED tests/docs_src/test_header_parameters.py::test_int_and_bool_arguments_can_be_marked 1482tests/docs_src/test_header_parameters.py::test_any_other_type_is_refused_when_the_tool_is_registered 1483[gw6] [ 11%] PASSED tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 1484tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 1485[gw7] [ 11%] PASSED tests/docs_src/test_header_parameters.py::test_any_other_type_is_refused_when_the_tool_is_registered 1486[gw6] [ 11%] PASSED tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 1487tests/docs_src/test_header_parameters.py::test_a_plain_optional_argument_is_refused_and_the_spelled_out_schema_registers 1488tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 1489[gw6] [ 11%] PASSED tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 1490[gw0] [ 11%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 1491tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 1492[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1493tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 1494[gw0] [ 12%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 1495tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1496tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 1497[gw0] [ 12%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 1498tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 1499[gw2] [ 12%] PASSED tests/client/test_client.py::test_client_call_tool 1500[gw6] [ 12%] PASSED tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 1501tests/client/test_client.py::test_read_resource 1502tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 1503[gw7] [ 12%] PASSED tests/docs_src/test_header_parameters.py::test_a_plain_optional_argument_is_refused_and_the_spelled_out_schema_registers 1504tests/docs_src/test_header_parameters.py::test_the_low_level_server_serves_an_invalid_annotation_and_a_2026_client_leaves_the_tool_out 1505[gw8] [ 12%] PASSED tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 1506[gw6] [ 12%] PASSED tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 1507tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 1508tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 1509[gw6] [ 12%] PASSED tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 1510tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 1511[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1512tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1513[gw0] [ 12%] PASSED tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 1514[gw8] [ 12%] PASSED tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 1515[gw2] [ 12%] PASSED tests/client/test_client.py::test_read_resource 1516tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 1517tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 1518tests/client/test_client.py::test_read_resource_error_propagates 1519[gw0] [ 12%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 1520tests/client/test_auth.py::test_validate_resource_custom_callback 1521[gw6] [ 12%] PASSED tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 1522[gw2] [ 12%] PASSED tests/client/test_client.py::test_read_resource_error_propagates 1523[gw8] [ 12%] PASSED tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 1524tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 1525tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 1526[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1527tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 1528tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1529[gw0] [ 12%] PASSED tests/client/test_auth.py::test_validate_resource_custom_callback 1530[gw2] [ 12%] PASSED tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 1531tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 1532tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 1533[gw7] [ 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 1534[gw8] [ 12%] PASSED tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 1535tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial002] 1536[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1537[gw0] [ 12%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 1538tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1539[gw6] [ 12%] PASSED tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 1540tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 1541tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 1542tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 1543[gw0] [ 12%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 1544tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 1545[gw6] [ 12%] PASSED tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 1546[gw0] [ 12%] PASSED tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 1547tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 1548tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 1549[gw8] [ 12%] PASSED tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 1550[gw0] [ 12%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 1551tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 1552tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1553[gw4] [ 12%] PASSED tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits 1554[gw6] [ 12%] PASSED tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 1555tests/client/test_session.py::test_call_tool_rejects_a_null_structured_content_the_output_schema_forbids 1556[gw0] [ 12%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1557tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 1558tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 1559[gw2] [ 12%] PASSED tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 1560[gw0] [ 12%] PASSED tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 1561tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 1562tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 1563[gw8] [ 12%] PASSED tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 1564[gw0] [ 12%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 1565tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 1566tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 1567[gw4] [ 12%] PASSED tests/client/test_session.py::test_call_tool_rejects_a_null_structured_content_the_output_schema_forbids 1568tests/client/test_session.py::test_call_tool_reports_an_absent_structured_content_as_missing_even_when_null_is_permitted 1569[gw8] [ 12%] PASSED tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 1570[gw6] [ 12%] PASSED tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 1571[gw2] [ 12%] PASSED tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 1572tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 1573tests/client/test_client.py::test_get_prompt 1574tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 1575[gw4] [ 12%] PASSED tests/client/test_session.py::test_call_tool_reports_an_absent_structured_content_as_missing_even_when_null_is_permitted 1576[gw0] [ 12%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 1577tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 1578[gw8] [ 12%] PASSED tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 1579tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 1580[gw0] [ 12%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 1581tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 1582[gw4] [ 12%] PASSED tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 1583tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 1584[gw6] [ 12%] PASSED tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 1585tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 1586[gw7] [ 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] 1587tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 1588[gw0] [ 12%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 1589tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial003] 1590tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 1591[gw6] [ 12%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 1592tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 1593[gw0] [ 12%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 1594tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 1595[gw6] [ 12%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 1596tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 1597[gw0] [ 12%] PASSED tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 1598tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 1599[gw0] [ 12%] PASSED tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 1600tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 1601[gw6] [ 12%] PASSED tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 1602[gw0] [ 12%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 1603tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 1604tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] 1605[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1606tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 1607[gw1] [ 12%] PASSED tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1608tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1609[gw8] [ 12%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 1610tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 1611[gw2] [ 13%] PASSED tests/client/test_client.py::test_get_prompt 1612[gw7] [ 13%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_runs_the_list_handler_unless_the_server_looks_schemas_up_by_name[tutorial003] 1613tests/client/test_client.py::test_client_session_property_before_enter 1614tests/docs_src/test_header_parameters.py::test_the_schema_the_lookup_returns_is_the_one_the_header_is_checked_against 1615[gw0] [ 13%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 1616tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 1617[gw3] [ 13%] PASSED tests/client/test_logging_callback.py::test_logging_callback 1618[gw0] [ 13%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 1619tests/client/test_auth.py::test_registration_request_sends_application_type 1620tests/client/test_notification_response.py::test_non_compliant_notification_response 1621[gw8] [ 13%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 1622[gw5] [ 13%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 1623tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 1624[gw2] [ 13%] PASSED tests/client/test_client.py::test_client_session_property_before_enter 1625tests/client/test_client.py::test_client_reentry_raises_runtime_error 1626[gw7] [ 13%] PASSED tests/docs_src/test_header_parameters.py::test_the_schema_the_lookup_returns_is_the_one_the_header_is_checked_against 1627tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 1628[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1629tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 1630tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1631[gw3] [ 13%] PASSED tests/client/test_notification_response.py::test_non_compliant_notification_response 1632[gw0] [ 13%] PASSED tests/client/test_auth.py::test_registration_request_sends_application_type 1633tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 1634[gw4] [ 13%] PASSED tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 1635[gw8] [ 13%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 1636tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1637tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 1638tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 1639[gw5] [ 13%] PASSED tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 1640tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds 1641[gw7] [ 13%] PASSED tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 1642tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 1643[gw4] [ 13%] PASSED tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 1644tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 1645[gw5] [ 13%] PASSED tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds 1646tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce 1647[gw8] [ 13%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 1648[gw2] [ 13%] PASSED tests/client/test_client.py::test_client_reentry_raises_runtime_error 1649tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 1650[gw4] [ 13%] PASSED tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 1651tests/client/test_client.py::test_client_send_progress_notification 1652tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 1653[gw0] [ 13%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 1654[gw1] [ 13%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1655tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 1656[gw8] [ 13%] PASSED tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 1657tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1658tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 1659[gw4] [ 13%] PASSED tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 1660[gw2] [ 13%] PASSED tests/client/test_client.py::test_client_send_progress_notification 1661tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 1662tests/client/test_client.py::test_client_subscribe_resource 1663[gw0] [ 13%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 1664[gw4] [ 13%] PASSED tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 1665tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 1666tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 1667[gw8] [ 13%] PASSED tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 1668tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 1669[gw2] [ 13%] PASSED tests/client/test_client.py::test_client_subscribe_resource 1670[gw4] [ 13%] PASSED tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 1671[gw0] [ 13%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 1672tests/client/test_client.py::test_client_unsubscribe_resource 1673tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 1674tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 1675[gw8] [ 13%] PASSED tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 1676[gw4] [ 13%] PASSED tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 1677tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 1678tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 1679[gw0] [ 13%] PASSED tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 1680tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 1681[gw1] [ 13%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1682[gw4] [ 13%] PASSED tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 1683tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 1684[gw2] [ 13%] PASSED tests/client/test_client.py::test_client_unsubscribe_resource 1685tests/client/test_client.py::test_client_set_logging_level 1686[gw4] [ 13%] PASSED tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 1687tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1688tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 1689[gw0] [ 13%] PASSED tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 1690[gw8] [ 13%] PASSED tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 1691[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 1692tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 1693tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 1694[gw2] [ 13%] PASSED tests/client/test_client.py::test_client_set_logging_level 1695tests/client/test_client.py::test_client_list_resources_with_params 1696tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 1697[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 1698tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 1699[gw3] [ 13%] PASSED tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1700[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 1701tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1702[gw0] [ 13%] PASSED tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 1703[gw8] [ 13%] PASSED tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 1704tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 1705tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 1706tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 1707[gw8] [ 13%] PASSED tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 1708[gw0] [ 13%] PASSED tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 1709tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 1710tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 1711[gw2] [ 13%] PASSED tests/client/test_client.py::test_client_list_resources_with_params 1712[gw3] [ 13%] PASSED tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1713tests/client/test_client.py::test_client_list_resource_templates 1714tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1715[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1716[gw0] [ 13%] PASSED tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 1717tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1718tests/client/test_auth.py::test_build_metadata[simple-url] 1719[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 1720[gw2] [ 13%] PASSED tests/client/test_client.py::test_client_list_resource_templates 1721tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 1722[gw3] [ 13%] PASSED tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1723tests/client/test_client.py::test_list_prompts 1724tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1725[gw8] [ 13%] PASSED tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 1726[gw7] [ 13%] PASSED tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 1727tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 1728tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 1729[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 1730tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 1731[gw7] [ 14%] PASSED tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 1732tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 1733[gw2] [ 14%] PASSED tests/client/test_client.py::test_list_prompts 1734tests/client/test_client.py::test_complete_with_prompt_reference 1735[gw7] [ 14%] PASSED tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 1736tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 1737[gw2] [ 14%] PASSED tests/client/test_client.py::test_complete_with_prompt_reference 1738[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 1739tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1740tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport 1741[gw7] [ 14%] PASSED tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 1742[gw2] [ 14%] PASSED tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport 1743tests/client/test_client.py::test_client_uses_transport_directly 1744tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 1745[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1746[gw7] [ 14%] PASSED tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 1747tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1748tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected 1749[gw3] [ 14%] PASSED tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1750[gw8] [ 14%] PASSED tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 1751tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1752tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 1753[gw7] [ 14%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected 1754tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected 1755[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1756[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1757tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1758tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1759[gw7] [ 14%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected 1760[gw6] [ 14%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] 1761tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected 1762tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[legacy] 1763[gw7] [ 14%] PASSED tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected 1764tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile 1765[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1766[gw7] [ 14%] PASSED tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile 1767tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1768tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request 1769[gw3] [ 14%] PASSED tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1770[gw8] [ 14%] PASSED tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 1771tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1772[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1773tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1774tests/docs_src/test_shape.py::test_private_mcp_import_detector 1775[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1776[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1777[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_private_mcp_import_detector 1778tests/docs_src/test_shape.py::test_retired_name_detector 1779tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1780[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_retired_name_detector 1781[gw2] [ 14%] PASSED tests/client/test_client.py::test_client_uses_transport_directly 1782tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 1783tests/client/test_client.py::test_context_propagation 1784[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 1785tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 1786tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1787[gw3] [ 14%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1788[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 1789tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 1790tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1791[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 1792tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1793[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1794[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1795tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1796tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1797[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1798tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1799[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1800tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1801[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1802[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1803tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1804tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1805[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1806tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1807[gw2] [ 14%] PASSED tests/client/test_client.py::test_context_propagation 1808[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1809[gw7] [ 14%] PASSED tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request 1810tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1811[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1812[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1813tests/client/test_client.py::test_client_auto_mode_probes_discover_then_adopts 1814tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1815[gw3] [ 14%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1816tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1817[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1818tests/docs_src/test_index.py::test_add_tool 1819tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1820[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1821tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1822tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1823[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1824tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1825[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1826[gw7] [ 14%] PASSED tests/docs_src/test_index.py::test_add_tool 1827[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce 1828[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1829tests/docs_src/test_index.py::test_greeting_resource_template 1830tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1831tests/client/test_subscriptions.py::test_graceful_server_close_ends_the_loop_cleanly 1832tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1833[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1834tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1835[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1836[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1837[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1838[gw3] [ 14%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1839tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] 1840tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 1841[gw2] [ 14%] PASSED tests/client/test_client.py::test_client_auto_mode_probes_discover_then_adopts 1842[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] 1843tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] 1844tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1845[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_graceful_server_close_ends_the_loop_cleanly 1846[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] 1847tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1848tests/client/test_client.py::test_client_auto_mode_negotiates_modern_over_a_stream_loop 1849tests/client/test_subscriptions.py::test_abrupt_stream_end_raises_subscription_lost 1850[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 1851tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 1852tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1853[gw3] [ 15%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1854tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1855[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1856tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1857[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_abrupt_stream_end_raises_subscription_lost 1858tests/client/test_subscriptions.py::test_listen_on_a_legacy_connection_raises_the_typed_steer 1859[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1860[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_auto_mode_negotiates_modern_over_a_stream_loop 1861[gw3] [ 15%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1862[gw7] [ 15%] PASSED tests/docs_src/test_index.py::test_greeting_resource_template 1863tests/client/test_client.py::test_client_pinned_modern_mode_works_over_a_stream_loop 1864tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1865[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_listen_on_a_legacy_connection_raises_the_typed_steer 1866tests/client/test_subscriptions.py::test_server_rejection_raises_from_enter_not_from_iteration 1867[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 1868tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1869tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once 1870tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 1871[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_server_rejection_raises_from_enter_not_from_iteration 1872[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_pinned_modern_mode_works_over_a_stream_loop 1873tests/client/test_client.py::test_client_legacy_mode_still_handshakes_over_a_stream_loop 1874tests/client/test_subscriptions.py::test_immediate_result_without_ack_opens_already_closed 1875[gw3] [ 15%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1876tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1877[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_legacy_mode_still_handshakes_over_a_stream_loop 1878[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_immediate_result_without_ack_opens_already_closed 1879tests/client/test_client.py::test_client_auto_mode_recovers_from_a_timed_out_probe_over_a_stream_loop 1880tests/client/test_subscriptions.py::test_server_sent_cancelled_for_the_listen_id_raises_subscription_lost 1881[gw1] [ 15%] PASSED tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1882tests/client/test_caching.py::test_store_failures_warn_once_per_burst 1883[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_server_sent_cancelled_for_the_listen_id_raises_subscription_lost 1884[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1885tests/client/test_subscriptions.py::test_exiting_the_context_frees_the_server_slot 1886[gw0] [ 15%] XFAIL tests/client/test_auth.py::test_build_metadata[simple-url] 1887tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1888tests/client/test_auth.py::test_build_metadata[with-trailing-slash] 1889[gw7] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once 1890[gw0] [ 15%] PASSED tests/client/test_auth.py::test_build_metadata[with-trailing-slash] 1891tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter 1892tests/client/test_auth.py::test_build_metadata[with-path-param] 1893[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1894[gw3] [ 15%] PASSED tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1895tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1896[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_exiting_the_context_frees_the_server_slot 1897tests/client/test_subscriptions.py::test_concurrent_subscriptions_demux_independently 1898tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1899[gw0] [ 15%] PASSED tests/client/test_auth.py::test_build_metadata[with-path-param] 1900tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_no_prm_falls_back_to_root_oauth_discovery 1901[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1902tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1903[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 1904[gw0] [ 15%] PASSED tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_no_prm_falls_back_to_root_oauth_discovery 1905tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 1906[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1907tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1908[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_concurrent_subscriptions_demux_independently 1909tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_with_different_prm_and_root_urls 1910[gw7] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter 1911tests/client/test_subscriptions.py::test_change_notifications_still_reach_message_handler 1912[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1913tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1914tests/docs_src/test_legacy_clients.py::test_a_legacy_session_is_minted_in_process_and_a_stray_session_id_is_a_404 1915[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1916tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1917[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 1918[gw0] [ 15%] PASSED tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_with_different_prm_and_root_urls 1919tests/client/test_auth.py::TestSEP985Discovery::test_path_based_fallback_when_no_www_authenticate 1920tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 1921[gw0] [ 15%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_path_based_fallback_when_no_www_authenticate 1922tests/client/test_auth.py::TestSEP985Discovery::test_root_based_fallback_after_path_based_404 1923[gw7] [ 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 1924[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_change_notifications_still_reach_message_handler 1925tests/client/test_subscriptions.py::test_enter_times_out_when_the_ack_never_arrives 1926[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1927tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default 1928[gw0] [ 15%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_root_based_fallback_after_path_based_404 1929[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 1930[gw7] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default 1931tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 1932tests/docs_src/test_legacy_clients.py::test_stateless_http_never_mints_a_session 1933tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1934tests/docs_src/test_whats_new.py::test_the_advertised_schema_is_the_literal_dict 1935[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1936tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1937[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1938[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 1939tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1940tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 1941[gw1] [ 15%] PASSED tests/client/test_caching.py::test_store_failures_warn_once_per_burst 1942tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 1943[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1944[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 1945tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1946[gw0] [ 15%] PASSED tests/docs_src/test_whats_new.py::test_the_advertised_schema_is_the_literal_dict 1947[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1948tests/docs_src/test_whats_new.py::test_a_valid_call_answers 1949tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1950[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1951tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1952[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1953tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1954[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1955tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1956tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 1957[gw7] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_stateless_http_never_mints_a_session 1958[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 1959tests/docs_src/test_legacy_clients.py::test_stateless_http_kills_the_legacy_back_channel_and_only_the_legacy_one 1960tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1961[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1962tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1963[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1964tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1965[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1966[gw3] [ 16%] PASSED tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1967tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1968[gw0] [ 16%] PASSED tests/docs_src/test_whats_new.py::test_a_valid_call_answers 1969[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1970tests/docs_src/test_whats_new.py::test_arguments_are_not_validated_and_a_handler_exception_is_sanitized 1971tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1972tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1973[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1974tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1975[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1976tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1977[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1978tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1979[gw3] [ 16%] PASSED tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1980tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 1981[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1982[gw1] [ 16%] PASSED tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 1983tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 1984tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1985[gw3] [ 16%] PASSED tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 1986tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 1987[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1988tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1989[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1990[gw3] [ 16%] PASSED tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 1991tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 1992[gw1] [ 16%] PASSED tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 1993tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 1994tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1995[gw4] [ 16%] PASSED tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1996[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1997tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client 1998tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1999[gw3] [ 16%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 2000[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 8895[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] 8896tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 8897[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 8898tests/shared/test_path_security.py::test_is_absolute_path[-False] 8899[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[-False] 8900tests/shared/test_path_security.py::test_is_absolute_path[.-False] 8901[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 8902tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 8903[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[.-False] 8904[gw4] [ 74%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-base-mismatch] 8905tests/shared/test_path_security.py::test_is_absolute_path[..-False] 8906[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 8907[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[..-False] 8908tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-exact] 8909tests/shared/test_path_security.py::test_is_absolute_path[/-True] 8910tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 8911[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/-True] 8912tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 8913[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 8914tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 8915[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 8916tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 8917[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 8918tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 8919[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 8920tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 8921[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 8922tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 8923[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 8924[gw4] [ 74%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-exact] 8925tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 8926tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-match] 8927[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 8928tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 8929[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 8930[gw2] [ 74%] PASSED tests/server/mcpserver/test_server.py::test_resolver_raising_tool_error_is_anticipated 8931tests/server/mcpserver/test_server.py::test_resolver_crash_is_logged_as_the_tools_crash 8932tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 8933[gw3] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params 8934[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 8935[gw9] [ 74%] PASSED tests/server/test_stdio.py::test_the_claim_engages_even_when_stderr_is_closed 8936tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 8937tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 8938tests/server/test_stdio.py::test_stdio_server_serves_in_place_when_the_diversion_cannot_be_opened 8939[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 8940tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 8941[gw4] [ 74%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-match] 8942[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 8943tests/server/test_transport_security.py::test_validate_request_skips_host_and_origin_when_protection_is_disabled 8944[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_skips_host_and_origin_when_protection_is_disabled 8945tests/server/test_transport_security.py::test_validate_request_defaults_to_protection_disabled 8946tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 8947[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_defaults_to_protection_disabled 8948tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json] 8949[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json] 8950tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json-with-charset] 8951[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json-with-charset] 8952tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[case-insensitive] 8953[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[case-insensitive] 8954tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[wrong-type] 8955[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 8956[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[wrong-type] 8957tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[missing] 8958[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[missing] 8959tests/server/test_transport_security.py::test_validate_request_ignores_content_type_on_get 8960[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_validate_request_ignores_content_type_on_get 8961tests/server/test_transport_security.py::test_client_disconnect_while_streaming_request_body_is_replayed 8962tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 8963[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_client_disconnect_while_streaming_request_body_is_replayed 8964tests/server/test_transport_security.py::test_client_disconnect_before_request_body_is_replayed 8965[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_client_disconnect_before_request_body_is_replayed 8966tests/server/test_transport_security.py::test_request_body_chunks_are_replayed_as_one_message 8967[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_chunks_are_replayed_as_one_message 8968tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[GET] 8969[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[GET] 8970tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[PUT] 8971[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[PUT] 8972tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[OPTIONS] 8973[gw8] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 8974[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[OPTIONS] 8975tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 8976tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[HEAD] 8977[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 8978tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 8979[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[HEAD] 8980tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[DELETE] 8981[gw8] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 8982tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 8983[gw8] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 8984tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 8985[gw3] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 8986[gw8] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 8987tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 8988tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 8989[gw8] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 8990tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 8991[gw8] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 8992tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 8993[gw6] [ 75%] PASSED tests/server/test_sse_security.py::test_sse_post_without_a_session_id_returns_400 8994tests/server/test_sse_security.py::test_sse_post_with_a_malformed_session_id_returns_400 8995[gw3] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 8996tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 8997[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-2025-11-25] 8998tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-stateless-2025-11-25] 8999[gw3] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 9000tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 9001[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9002[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 9003tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9004[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9005tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9006[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9007tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9008[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9009tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9010[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9011[gw2] [ 75%] PASSED tests/server/mcpserver/test_server.py::test_resolver_crash_is_logged_as_the_tools_crash 9012tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9013tests/server/mcpserver/test_server.py::test_argument_validator_that_crashes_is_the_tools_crash 9014[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9015tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9016tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9017[gw3] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 9018tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 9019[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9020tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9021[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9022[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[DELETE] 9023[gw6] [ 75%] PASSED tests/server/test_sse_security.py::test_sse_post_with_a_malformed_session_id_returns_400 9024tests/server/test_sse_security.py::test_sse_post_with_a_disallowed_host_is_rejected_before_session_lookup 9025tests/server/test_transport_security.py::test_request_body_limit_leaves_non_http_scopes_alone 9026[gw4] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_leaves_non_http_scopes_alone 9027[gw6] [ 75%] PASSED tests/server/test_sse_security.py::test_sse_post_with_a_disallowed_host_is_rejected_before_session_lookup 9028tests/server/test_sse_security.py::test_sse_post_body_over_the_limit_returns_413 9029[gw6] [ 75%] PASSED tests/server/test_sse_security.py::test_sse_post_body_over_the_limit_returns_413 9030tests/server/test_sse_security.py::test_sse_post_body_limit_defaults_to_four_mib 9031[gw6] [ 75%] PASSED tests/server/test_sse_security.py::test_sse_post_body_limit_defaults_to_four_mib 9032tests/server/test_sse_security.py::test_sse_post_streamed_body_over_the_limit_returns_413 9033[gw8] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 9034tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 9035[gw6] [ 75%] PASSED tests/server/test_sse_security.py::test_sse_post_streamed_body_over_the_limit_returns_413 9036tests/server/test_sse_security.py::test_sse_post_within_the_limit_reaches_session_lookup 9037[gw2] [ 75%] PASSED tests/server/mcpserver/test_server.py::test_argument_validator_that_crashes_is_the_tools_crash 9038tests/server/mcpserver/test_server.py::test_argument_validator_raising_mcp_error_is_a_protocol_error 9039[gw0] [ 75%] PASSED tests/interaction/transports/test_client_transport_http.py::test_at_2025_abandoning_a_call_posts_exactly_one_cancelled_frame 9040tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_caps_none 9041tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9042[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9043tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9044[gw1] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9045tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 9046[gw2] [ 75%] PASSED tests/server/mcpserver/test_server.py::test_argument_validator_raising_mcp_error_is_a_protocol_error 9047tests/interaction/transports/test_flows.py::test_concurrent_clients_on_one_stateful_server_receive_only_their_own_notifications 9048tests/server/mcpserver/test_server.py::test_resource_error_escaping_a_tool_is_anticipated 9049[gw9] [ 75%] PASSED tests/server/test_stdio.py::test_stdio_server_serves_in_place_when_the_diversion_cannot_be_opened 9050tests/server/test_stdio.py::test_a_degraded_session_does_not_close_the_sys_stream_it_served 9051[gw8] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 9052tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 9053[gw3] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 9054tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9055[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-stateless-2025-11-25] 9056tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[in-memory-2026-07-28] 9057[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9058tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9059[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[in-memory-2026-07-28] 9060[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9061tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9062tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-2026-07-28] 9063[gw8] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 9064tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 9065[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9066tests/shared/test_path_security.py::test_safe_join_simple 9067[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_simple 9068tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9069[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9070[gw5] [ 76%] PASSED tests/interaction/lowlevel/test_tools.py::test_declared_output_schema_with_no_structured_content_is_rejected_by_the_client[streamable-http-2026-07-28] 9071tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9072tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[in-memory-2025-11-25] 9073[gw8] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 9074tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 9075[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9076[gw2] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_resource_error_escaping_a_tool_is_anticipated 9077tests/server/mcpserver/test_server.py::test_resource_crash_escaping_a_tool_is_the_tools_crash 9078tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9079[gw5] [ 76%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[in-memory-2025-11-25] 9080tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[sse-2025-11-25] 9081[gw8] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 9082[gw4] [ 76%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_caps_none 9083tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 9084[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9085[gw5] [ 76%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[sse-2025-11-25] 9086tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-2025-11-25] 9087tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9088tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_sampling_none 9089[gw4] [ 76%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_sampling_none 9090[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9091tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9092tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_tools_none 9093[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9094[gw4] [ 76%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_tools_none 9095tests/server/test_validation.py::test_check_sampling_tools_capability_returns_true_when_tools_present 9096[gw4] [ 76%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_true_when_tools_present 9097tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_tools_none 9098[gw4] [ 76%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_tools_none 9099[gw1] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 9100tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tools_provided_but_no_capability 9101tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9102[gw4] [ 76%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tools_provided_but_no_capability 9103tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tool_choice_provided_but_no_capability 9104[gw1] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9105tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9106[gw1] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9107[gw4] [ 76%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tool_choice_provided_but_no_capability 9108tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9109tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_capability_present 9110tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9111[gw4] [ 76%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_capability_present 9112[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9113tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_empty_messages 9114[gw1] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9115tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9116[gw4] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_empty_messages 9117[gw6] [ 76%] PASSED tests/server/test_sse_security.py::test_sse_post_within_the_limit_reaches_session_lookup 9118tests/server/test_sse_security.py::test_sse_message_endpoint_answers_405_to_non_post[GET] 9119[gw1] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9120tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9121tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_simple_text_messages 9122[gw1] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9123tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9124tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9125[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9126[gw4] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_simple_text_messages 9127tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9128[gw6] [ 76%] PASSED tests/server/test_sse_security.py::test_sse_message_endpoint_answers_405_to_non_post[GET] 9129tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_mixed_with_other_content 9130[gw1] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9131tests/server/test_sse_security.py::test_sse_message_endpoint_answers_405_to_non_post[PUT] 9132tests/shared/test_path_security.py::test_safe_join_base_equals_target 9133[gw6] [ 76%] PASSED tests/server/test_sse_security.py::test_sse_message_endpoint_answers_405_to_non_post[PUT] 9134[gw0] [ 76%] PASSED tests/interaction/transports/test_flows.py::test_concurrent_clients_on_one_stateful_server_receive_only_their_own_notifications 9135[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9136[gw4] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_mixed_with_other_content 9137tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9138tests/interaction/transports/test_flows.py::test_a_fresh_connection_after_termination_obtains_a_new_session_and_operates 9139tests/shared/test_extension.py::test_server_extension_module_reexports_shared_validator 9140[gw7] [ 76%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9141tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_without_previous_tool_use 9142[gw1] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_base_equals_target 9143tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9144tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9145[gw4] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_without_previous_tool_use 9146[gw6] [ 76%] PASSED tests/shared/test_extension.py::test_server_extension_module_reexports_shared_validator 9147[gw1] [ 76%] PASSED tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9148tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_previous_message_has_no_tool_use 9149tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[io.modelcontextprotocol/ui] 9150[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9151[gw4] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_previous_message_has_no_tool_use 9152tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9153[gw6] [ 76%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[io.modelcontextprotocol/ui] 9154tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_ids_dont_match_tool_use 9155tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[com.example/my_ext] 9156[gw7] [ 76%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9157tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9158[gw4] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_ids_dont_match_tool_use 9159tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9160[gw6] [ 76%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[com.example/my_ext] 9161tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_when_tool_result_matches_tool_use 9162tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[com.x-y.z2/n.a-b_c] 9163[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9164[gw4] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_when_tool_result_matches_tool_use 9165[gw6] [ 76%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[com.x-y.z2/n.a-b_c] 9166tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9167tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[example/x] 9168[gw6] [ 76%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[example/x] 9169[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9170tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[a/b] 9171tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9172[gw7] [ 76%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9173[gw8] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 9174tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 9175tests/shared/test_streamable_http.py::test_content_type_validation 9176[gw3] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9177tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9178[gw2] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_resource_crash_escaping_a_tool_is_the_tools_crash 9179[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[a/b] 9180[gw1] [ 77%] PASSED tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9181tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9182[gw7] [ 77%] PASSED tests/shared/test_streamable_http.py::test_content_type_validation 9183tests/shared/test_streamable_http.py::test_json_validation 9184[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9185tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9186tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[com.example/9start] 9187tests/server/mcpserver/test_server.py::test_tool_that_recovers_from_a_missing_resource_logs_nothing 9188[gw1] [ 77%] PASSED tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9189[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9190tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9191tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9192[gw7] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_validation 9193tests/shared/test_streamable_http.py::test_json_parsing 9194[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9195tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9196[gw1] [ 77%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9197[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9198tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9199tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9200[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_grammar_conformant_extension_identifiers_are_accepted[com.example/9start] 9201[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9202[gw1] [ 77%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9203tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[noprefix] 9204tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9205tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9206[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9207tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9208tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9209[gw1] [ 77%] PASSED tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9210[gw7] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_parsing 9211[gw0] [ 77%] PASSED tests/interaction/transports/test_flows.py::test_a_fresh_connection_after_termination_obtains_a_new_session_and_operates 9212tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9213tests/interaction/transports/test_flows.py::test_one_server_serves_streamable_http_and_sse_clients_concurrently 9214tests/shared/test_streamable_http.py::test_method_not_allowed 9215[gw1] [ 77%] PASSED tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9216[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9217tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9218tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9219[gw1] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9220[gw3] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9221tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9222tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9223[gw1] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9224[gw3] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9225tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9226tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9227[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[noprefix] 9228[gw7] [ 77%] PASSED tests/shared/test_streamable_http.py::test_method_not_allowed 9229[gw3] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9230[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9231tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9232tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[-foo/bar] 9233tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9234[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[-foo/bar] 9235tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[.leading/x] 9236[gw3] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9237[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[.leading/x] 9238[gw2] [ 77%] PASSED tests/server/mcpserver/test_server.py::test_tool_that_recovers_from_a_missing_resource_logs_nothing 9239tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[a..b/x] 9240tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9241tests/server/mcpserver/test_server.py::test_static_resource_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 9242[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[a..b/x] 9243tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo-/x] 9244[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9245[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo-/x] 9246tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[9foo/x] 9247tests/shared/test_streamable_http.py::test_session_validation 9248[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[9foo/x] 9249tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 9250tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/-bar] 9251[gw3] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9252tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9253[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-2025-11-25] 9254tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-stateless-2025-11-25] 9255[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/-bar] 9256tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/bar-] 9257[gw1] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9258tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9259[gw3] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9260[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/bar-] 9261tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/] 9262[gw2] [ 77%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 9263[gw1] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9264tests/shared/test_sse.py::test_sse_client_exception_handling 9265[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/] 9266tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9267tests/server/mcpserver/test_server.py::test_resource_template_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 9268tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[/bar] 9269[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[/bar] 9270tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/ba r] 9271[gw1] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9272tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9273[gw1] [ 77%] PASSED tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9274tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9275[gw7] [ 77%] PASSED tests/shared/test_streamable_http.py::test_session_validation 9276[gw1] [ 77%] PASSED tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9277tests/shared/test_streamable_http.py::test_session_id_pattern 9278tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9279[gw7] [ 77%] PASSED tests/shared/test_streamable_http.py::test_session_id_pattern 9280[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/ba r] 9281tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9282tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[io.modelcontextprotocol/ui\n] 9283[gw3] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_exception_handling 9284[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[io.modelcontextprotocol/ui\n] 9285tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[] 9286[gw7] [ 77%] PASSED tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9287[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[] 9288tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9289tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9290[gw1] [ 77%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9291tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[None] 9292tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9293[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[None] 9294[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-stateless-2025-11-25] 9295tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[42] 9296tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[in-memory-2026-07-28] 9297[gw6] [ 77%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[42] 9298[gw3] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9299tests/shared/test_sse.py::test_request_context_propagation 9300[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[in-memory-2026-07-28] 9301tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-2026-07-28] 9302tests/shared/test_httpx_utils.py::test_default_client_uses_mcp_timeouts_and_httpx_redirect_default 9303[gw3] [ 78%] PASSED tests/shared/test_sse.py::test_request_context_propagation 9304tests/shared/test_sse.py::test_request_context_isolation 9305[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_tools.py::test_call_tool_populates_the_output_schema_cache_via_an_implicit_tools_list[streamable-http-2026-07-28] 9306[gw7] [ 78%] PASSED tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9307tests/interaction/lowlevel/test_wire.py::test_request_ids_are_unique_and_never_null 9308[gw6] [ 78%] PASSED tests/shared/test_httpx_utils.py::test_default_client_uses_mcp_timeouts_and_httpx_redirect_default 9309tests/shared/test_streamable_http.py::test_session_termination 9310tests/shared/test_httpx_utils.py::test_custom_parameters 9311[gw0] [ 78%] PASSED tests/interaction/transports/test_flows.py::test_one_server_serves_streamable_http_and_sse_clients_concurrently 9312tests/interaction/transports/test_hosting_http.py::test_unsupported_http_methods_return_405 9313[gw2] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_resource_template_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 9314[gw7] [ 78%] PASSED tests/shared/test_streamable_http.py::test_session_termination 9315[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_wire.py::test_request_ids_are_unique_and_never_null 9316tests/server/mcpserver/test_server.py::test_read_resource_wraps_a_crash_as_unexpected_resource_error_chained_to_the_original 9317[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 9318tests/shared/test_streamable_http.py::test_response 9319tests/interaction/lowlevel/test_wire.py::test_notifications_are_never_answered 9320tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 9321[gw2] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_read_resource_wraps_a_crash_as_unexpected_resource_error_chained_to_the_original 9322tests/server/mcpserver/test_server.py::test_custom_resource_subclass_crash_is_wrapped_and_logged_like_a_function_resource 9323[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_wire.py::test_notifications_are_never_answered 9324tests/interaction/lowlevel/test_wire.py::test_recording_read_stream_ends_iteration_when_the_sender_closes 9325[gw7] [ 78%] PASSED tests/shared/test_streamable_http.py::test_response 9326[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 9327[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_wire.py::test_recording_read_stream_ends_iteration_when_the_sender_closes 9328tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 9329tests/interaction/lowlevel/test_wire.py::test_exactly_one_initialized_notification_is_sent_after_the_handshake 9330tests/shared/test_streamable_http.py::test_json_response 9331[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_wire.py::test_exactly_one_initialized_notification_is_sent_after_the_handshake 9332[gw7] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response 9333tests/interaction/lowlevel/test_wire.py::test_closing_the_transport_fails_in_flight_requests_with_connection_closed 9334tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9335[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 9336tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 9337[gw6] [ 78%] PASSED tests/shared/test_httpx_utils.py::test_custom_parameters 9338tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://mcp.example/mcp/] 9339[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_wire.py::test_closing_the_transport_fails_in_flight_requests_with_connection_closed 9340[gw7] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9341tests/interaction/lowlevel/test_wire.py::test_malformed_request_params_are_answered_with_invalid_params 9342[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 9343[gw6] [ 78%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://mcp.example/mcp/] 9344tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9345tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-/other/path] 9346[gw3] [ 78%] PASSED tests/shared/test_sse.py::test_request_context_isolation 9347tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9348tests/shared/test_sse.py::test_sse_message_id_coercion 9349[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_wire.py::test_malformed_request_params_are_answered_with_invalid_params 9350tests/interaction/lowlevel/test_wire.py::test_set_level_with_an_unrecognized_value_is_answered_with_invalid_params 9351[gw6] [ 78%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-/other/path] 9352[gw3] [ 78%] PASSED tests/shared/test_sse.py::test_sse_message_id_coercion 9353tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example:8080/mcp-http://mcp.example:8080/v2/mcp] 9354[gw7] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9355tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9356tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9357[gw1] [ 78%] PASSED tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9358[gw3] [ 78%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9359tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9360tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9361[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_wire.py::test_set_level_with_an_unrecognized_value_is_answered_with_invalid_params 9362[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9363tests/interaction/lowlevel/test_wire.py::test_abandoning_a_call_on_a_modern_stream_wire_sends_one_cancelled_frame 9364[gw3] [ 78%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9365tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9366[gw0] [ 78%] PASSED tests/interaction/transports/test_hosting_http.py::test_unsupported_http_methods_return_405 9367[gw1] [ 78%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9368tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9369[gw7] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9370tests/shared/test_sse.py::test_raw_sse_connection 9371[gw3] [ 78%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9372tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9373tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9374[gw3] [ 78%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9375tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9376[gw3] [ 78%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9377tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9378tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9379[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_wire.py::test_abandoning_a_call_on_a_modern_stream_wire_sends_one_cancelled_frame 9380[gw3] [ 78%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9381[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9382tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9383[gw3] [ 78%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9384tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9385tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[in-memory-2025-11-25] 9386[gw1] [ 78%] PASSED tests/shared/test_sse.py::test_raw_sse_connection 9387tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9388[gw3] [ 78%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9389tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9390[gw7] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9391tests/shared/test_sse.py::test_sse_client_basic_connection 9392tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9393[gw3] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9394tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9395[gw6] [ 78%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example:8080/mcp-http://mcp.example:8080/v2/mcp] 9396tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://MCP.EXAMPLE:80/mcp/] 9397[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9398tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9399[gw6] [ 78%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://MCP.EXAMPLE:80/mcp/] 9400tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-https://mcp.example:443/mcp] 9401[gw6] [ 78%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-https://mcp.example:443/mcp] 9402tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://other.example/mcp] 9403[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9404[gw2] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_custom_resource_subclass_crash_is_wrapped_and_logged_like_a_function_resource 9405tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9406tests/server/mcpserver/test_server.py::test_static_resource_raising_resource_not_found_error_is_invalid_params_logged_at_info 9407[gw1] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection 9408[gw6] [ 78%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://other.example/mcp] 9409tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://mcp.example:8080/mcp] 9410[gw0] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9411tests/shared/test_sse.py::test_sse_client_on_session_created 9412tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9413[gw6] [ 78%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://mcp.example:8080/mcp] 9414[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9415tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://sub.mcp.example/mcp] 9416tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9417[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created 9418tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9419[gw8] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9420[gw6] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://sub.mcp.example/mcp] 9421tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 9422[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9423tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[https://mcp.example:8443/mcp] 9424tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9425[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9426tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9427[gw6] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[https://mcp.example:8443/mcp] 9428[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9429tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[ftp://mcp.example/mcp] 9430tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9431[gw2] [ 79%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_raising_resource_not_found_error_is_invalid_params_logged_at_info 9432tests/server/mcpserver/test_server.py::test_deliberate_resource_error_passes_its_message_through_and_is_logged_at_info 9433[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9434[gw6] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[ftp://mcp.example/mcp] 9435tests/shared/test_uri_template.py::test_parse_multiple_expressions 9436tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[301] 9437[gw7] [ 79%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9438[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_expressions 9439[gw6] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[301] 9440tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9441tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[302] 9442[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9443[gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9444tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9445[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9446tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9447[gw6] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[302] 9448tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[303] 9449tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9450tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9451[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9452tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9453[gw5] [ 79%] PASSED tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[in-memory-2025-11-25] 9454[gw6] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[303] 9455tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[sse-2025-11-25] 9456tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[301] 9457[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9458tests/shared/test_uri_template.py::test_parse_explode_modifier 9459[gw9] [ 79%] PASSED tests/server/test_stdio.py::test_a_degraded_session_does_not_close_the_sys_stream_it_served 9460[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_explode_modifier 9461[gw6] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[301] 9462tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9463tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 9464tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[302] 9465[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9466tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9467[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9468tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9469[gw6] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[302] 9470[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9471tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9472tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[303] 9473[gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9474[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9475tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9476tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9477[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9478[gw6] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[303] 9479tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9480[gw7] [ 79%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9481[gw9] [ 79%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 9482[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9483tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9484tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9485tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 9486[gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9487tests/shared/test_streamable_http.py::test_get_sse_stream 9488[gw6] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9489tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9490tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9491[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9492tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9493[gw6] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9494[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9495tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9496tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9497[gw3] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9498[gw6] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9499[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9500[gw9] [ 79%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 9501tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9502tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9503tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9504[gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9505tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 9506[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9507tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 9508tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9509[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9510tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9511[gw3] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9512[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9513tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9514tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9515[gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 9516tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9517[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9518tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9519[gw9] [ 79%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 9520[gw6] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9521[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9522tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9523[gw7] [ 79%] PASSED tests/shared/test_streamable_http.py::test_get_sse_stream 9524[gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9525tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 9526[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9527tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9528tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9529[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9530tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9531tests/shared/test_streamable_http.py::test_get_validation 9532[gw1] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9533tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9534[gw9] [ 80%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 9535tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9536[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9537[gw5] [ 80%] PASSED tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[sse-2025-11-25] 9538tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9539[gw0] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9540tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[streamable-http-2025-11-25] 9541tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 9542tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9543[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9544[gw9] [ 80%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 9545tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9546tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 9547[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9548[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9549[gw0] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9550tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9551tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9552[gw9] [ 80%] PASSED tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 9553tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 9554tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered 9555[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9556[gw0] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 9557tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9558tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9559[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9560[gw9] [ 80%] PASSED tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered 9561tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9562tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing 9563[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9564tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9565[gw2] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_deliberate_resource_error_passes_its_message_through_and_is_logged_at_info 9566[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9567[gw9] [ 80%] PASSED tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing 9568tests/server/mcpserver/test_server.py::test_prompt_raising_unexpected_exception_is_logged_once 9569tests/server/test_subscriptions.py::test_publish_after_close_is_dropped 9570[gw0] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9571tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9572[gw9] [ 80%] PASSED tests/server/test_subscriptions.py::test_publish_after_close_is_dropped 9573tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack 9574tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9575[gw9] [ 80%] PASSED tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack 9576[gw0] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9577[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9578[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9579tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9580tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9581tests/server/test_subscriptions.py::test_listen_requires_a_request_id 9582tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9583[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9584[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9585tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9586[gw3] [ 80%] PASSED tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9587[gw9] [ 80%] PASSED tests/server/test_subscriptions.py::test_listen_requires_a_request_id 9588tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9589tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 9590[gw0] [ 80%] PASSED tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9591[gw9] [ 80%] PASSED tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 9592[gw5] [ 80%] PASSED tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[streamable-http-2025-11-25] 9593tests/shared/test_otel.py::test_client_and_server_spans 9594tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[streamable-http-stateless-2025-11-25] 9595tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 9596[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9597tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9598[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9599tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9600tests/shared/test_streamable_http.py::test_accept_header_validation 9601[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9602tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9603[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9604tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9605[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9606[gw3] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_validation 9607tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9608tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9609[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9610tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9611[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9612tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9613[gw5] [ 80%] PASSED tests/interaction/mcpserver/test_completion.py::test_completion_capability_is_advertised_only_when_a_handler_is_registered[streamable-http-stateless-2025-11-25] 9614[gw9] [ 80%] PASSED tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 9615[gw3] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9616[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9617tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9618tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[in-memory-2025-11-25] 9619[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9620[gw8] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 9621tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup 9622tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 9623tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9624tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9625[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9626tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9627[gw8] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 9628[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9629tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 9630tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9631[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9632tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9633[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9634[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9635[gw8] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 9636tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9637[gw5] [ 80%] PASSED tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[in-memory-2025-11-25] 9638[gw2] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_prompt_raising_unexpected_exception_is_logged_once 9639tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 9640tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[sse-2025-11-25] 9641[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9642tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9643tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9644[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9645tests/server/mcpserver/test_server.py::test_call_tool_wraps_a_crash_as_unexpected_tool_error_chained_to_the_original 9646tests/shared/test_uri_template.py::test_equality_based_on_template_string 9647[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_equality_based_on_template_string 9648tests/shared/test_uri_template.py::test_frozen 9649[gw6] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9650tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9651[gw1] [ 80%] PASSED tests/shared/test_uri_template.py::test_frozen 9652tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9653[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9654tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9655[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9656[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9657tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9658[gw2] [ 81%] PASSED tests/server/mcpserver/test_server.py::test_call_tool_wraps_a_crash_as_unexpected_tool_error_chained_to_the_original 9659tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9660[gw3] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9661tests/server/mcpserver/test_server.py::test_call_tool_keeps_a_deliberate_tool_error_a_plain_tool_error 9662[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9663[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9664tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9665tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9666[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9667tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9668[gw2] [ 81%] PASSED tests/server/mcpserver/test_server.py::test_call_tool_keeps_a_deliberate_tool_error_a_plain_tool_error 9669tests/server/mcpserver/test_server.py::test_nested_tool_crash_stays_unexpected_through_the_outer_tool 9670[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9671tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9672[gw0] [ 81%] PASSED tests/shared/test_otel.py::test_client_and_server_spans 9673[gw8] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 9674tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9675tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 9676[gw5] [ 81%] PASSED tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[sse-2025-11-25] 9677tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 9678tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[streamable-http-2025-11-25] 9679[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9680tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9681[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9682tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9683[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9684[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9685tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9686[gw3] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9687[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9688tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9689tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9690tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9691[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9692[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9693tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9694tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9695[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9696[gw8] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 9697tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 9698tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9699[gw5] [ 81%] PASSED tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[streamable-http-2025-11-25] 9700tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[streamable-http-stateless-2025-11-25] 9701[gw3] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9702tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9703[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9704[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9705tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9706[gw3] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9707tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9708tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9709[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9710[gw9] [ 81%] PASSED tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup 9711tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9712[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9713tests/server/test_subscriptions.py::test_subscription_limit_rejects_further_streams_pre_ack 9714tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9715[gw8] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 9716[gw3] [ 81%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9717[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9718tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9719tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9720[gw9] [ 81%] PASSED tests/server/test_subscriptions.py::test_subscription_limit_rejects_further_streams_pre_ack 9721tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9722[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9723tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9724[gw5] [ 81%] PASSED tests/interaction/mcpserver/test_context.py::test_context_logging_helpers_send_log_notifications[streamable-http-stateless-2025-11-25] 9725tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[in-memory-2025-11-25] 9726[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9727[gw8] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9728[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9729tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9730tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9731tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9732[gw8] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9733[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9734tests/shared/test_dispatcher.py::test_raising_on_progress_callback_is_logged_and_request_still_succeeds[direct] 9735tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9736[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9737[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9738tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 9739tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9740[gw8] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9741tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9742[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9743tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9744tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9745[gw8] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9746tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9747[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9748[gw5] [ 81%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[in-memory-2025-11-25] 9749[gw8] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9750tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9751[gw1] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 9752tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9753tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[sse-2025-11-25] 9754[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9755tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9756[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9757tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9758tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9759[gw8] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9760[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9761tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9762tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9763[gw6] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9764[gw8] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9765tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9766tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9767[gw2] [ 81%] PASSED tests/server/mcpserver/test_server.py::test_nested_tool_crash_stays_unexpected_through_the_outer_tool 9768[gw8] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9769tests/server/mcpserver/test_server.py::test_context_exposes_client_capabilities_from_connection 9770[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9771tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9772[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9773tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9774tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 9775[gw8] [ 82%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9776[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9777[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 9778tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9779tests/shared/test_uri_template.py::test_parse_literal_only 9780[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9781tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9782tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9783[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_literal_only 9784[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9785[gw5] [ 82%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[sse-2025-11-25] 9786tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9787tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9788tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-2025-11-25] 9789[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9790[gw2] [ 82%] PASSED tests/server/mcpserver/test_server.py::test_context_exposes_client_capabilities_from_connection 9791tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9792[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9793[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9794tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9795tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9796[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9797tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9798[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9799tests/server/mcpserver/test_server.py::test_context_input_responses_and_request_state_are_none_on_initial_round 9800tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9801[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9802[gw0] [ 82%] PASSED tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 9803[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9804tests/shared/test_uri_template.py::test_is_template[-False] 9805tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9806[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9807[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9808[gw9] [ 82%] PASSED tests/shared/test_dispatcher.py::test_raising_on_progress_callback_is_logged_and_request_still_succeeds[direct] 9809[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[-False] 9810tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9811tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9812tests/shared/test_uri_template.py::test_is_template[{a}-True] 9813[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9814tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9815[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9816[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[{a}-True] 9817tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9818tests/shared/test_dispatcher.py::test_raising_on_progress_callback_is_logged_and_request_still_succeeds[jsonrpc] 9819[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9820[gw0] [ 82%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9821[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9822tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9823tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9824tests/shared/test_uri_template.py::test_is_template[{-False] 9825[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[{-False] 9826[gw0] [ 82%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9827tests/shared/test_uri_template.py::test_is_template[}-False] 9828tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9829[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[}-False] 9830tests/shared/test_uri_template.py::test_is_template[}{-False] 9831[gw2] [ 82%] PASSED tests/server/mcpserver/test_server.py::test_context_input_responses_and_request_state_are_none_on_initial_round 9832[gw0] [ 82%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9833tests/server/mcpserver/test_server.py::test_context_notify_methods_publish_to_the_configured_bus 9834[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[}{-False] 9835tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9836tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9837tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9838[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9839[gw5] [ 82%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-2025-11-25] 9840[gw0] [ 82%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9841tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9842tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-stateless-2025-11-25] 9843tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9844[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9845tests/shared/test_uri_template.py::test_parse_simple_variable 9846[gw0] [ 82%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9847tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9848tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9849[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_simple_variable 9850tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9851[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9852tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9853[gw0] [ 82%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9854[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9855tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9856[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9857tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9858[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9859[gw0] [ 82%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9860tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9861[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9862[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9863tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9864[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9865tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9866tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9867[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9868tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9869[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9870tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9871tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9872[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9873[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9874tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9875[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9876[gw0] [ 82%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9877tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 9878[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9879tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9880tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9881tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9882tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9883[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9884tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 9885[gw8] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 9886[gw1] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9887[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9888tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 9889[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 9890[gw0] [ 83%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9891tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9892tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9893tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9894tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9895[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 9896[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9897tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 9898tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9899[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9900[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 9901tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9902[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9903tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 9904tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 9905[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9906[gw0] [ 83%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9907tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9908[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 9909tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9910[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9911[gw0] [ 83%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9912tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 9913[gw2] [ 83%] PASSED tests/server/mcpserver/test_server.py::test_context_notify_methods_publish_to_the_configured_bus 9914[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9915tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9916tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9917tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9918tests/server/mcpserver/test_server.py::test_programmatic_entry_points_carry_the_subscription_bus 9919[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 9920tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9921[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 9922[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9923tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9924[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9925tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 9926[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9927tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9928tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 9929[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 9930tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 9931[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9932tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9933[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 9934[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 9935tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 9936[gw0] [ 83%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9937tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 9938[gw9] [ 83%] PASSED tests/shared/test_dispatcher.py::test_raising_on_progress_callback_is_logged_and_request_still_succeeds[jsonrpc] 9939tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9940[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9941[gw2] [ 83%] PASSED tests/server/mcpserver/test_server.py::test_programmatic_entry_points_carry_the_subscription_bus 9942tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9943[gw0] [ 83%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9944tests/server/mcpserver/test_server.py::test_server_advertises_change_notifications_on_the_modern_wire_by_default 9945tests/shared/test_dispatcher.py::test_ctx_message_metadata_is_none_when_transport_attaches_nothing[direct] 9946tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9947[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9948tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9949[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 9950[gw0] [ 83%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9951[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9952tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9953[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9954tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 9955tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 9956[gw0] [ 83%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9957tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9958[gw9] [ 83%] PASSED tests/shared/test_dispatcher.py::test_ctx_message_metadata_is_none_when_transport_attaches_nothing[direct] 9959[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 9960[gw2] [ 83%] PASSED tests/server/mcpserver/test_server.py::test_server_advertises_change_notifications_on_the_modern_wire_by_default 9961tests/shared/test_dispatcher.py::test_ctx_message_metadata_is_none_when_transport_attaches_nothing[jsonrpc] 9962[gw0] [ 83%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9963[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 9964[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 9965tests/server/mcpserver/test_server.py::test_subscriptions_false_neither_advertises_nor_serves_listen 9966tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 9967tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9968tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 9969[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9970tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9971tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 9972[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 9973tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 9974[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 9975[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9976tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 9977[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 9978tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9979[gw2] [ 83%] PASSED tests/server/mcpserver/test_server.py::test_subscriptions_false_neither_advertises_nor_serves_listen 9980[gw9] [ 83%] PASSED tests/shared/test_dispatcher.py::test_ctx_message_metadata_is_none_when_transport_attaches_nothing[jsonrpc] 9981tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 9982[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 9983[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9984tests/server/mcpserver/test_server.py::test_notify_still_succeeds_when_subscriptions_are_off 9985tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[direct] 9986tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 9987tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9988[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 9989[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9990tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 9991tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9992[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 9993[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 9994tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 9995[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9996tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9997tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 9998[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9999tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10000[gw8] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10001tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 10002tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10003[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 10004[gw9] [ 83%] PASSED tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[direct] 10005[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 10006tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 10007tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 10008[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10009tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[jsonrpc] 10010tests/shared/test_uri_template.py::test_match_no_match[static-different] 10011[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 10012[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 10013tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 10014tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 10015[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[static-different] 10016tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 10017[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 10018tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 10019[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 10020tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 10021[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 10022tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 10023[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 10024[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 10025tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 10026[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 10027[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 10028[gw2] [ 84%] PASSED tests/server/mcpserver/test_server.py::test_notify_still_succeeds_when_subscriptions_are_off 10029tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 10030[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 10031tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 10032tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 10033tests/server/mcpserver/test_server.py::test_context_mcp_server_outside_request_raises 10034tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 10035[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 10036[gw9] [ 84%] PASSED tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[jsonrpc] 10037[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 10038tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 10039tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 10040[gw2] [ 84%] PASSED tests/server/mcpserver/test_server.py::test_context_mcp_server_outside_request_raises 10041tests/shared/test_dispatcher.py::test_direct_send_raw_request_wraps_non_mcperror_exception_as_internal_error_with_cause 10042[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 10043tests/server/mcpserver/test_server.py::test_context_request_context_outside_request_raises 10044[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 10045[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 10046[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 10047tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 10048tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10049tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 10050[gw2] [ 84%] PASSED tests/server/mcpserver/test_server.py::test_context_request_context_outside_request_raises 10051tests/server/mcpserver/test_server.py::test_context_notify_outside_a_request_raises 10052[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 10053[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 10054tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 10055[gw9] [ 84%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_wraps_non_mcperror_exception_as_internal_error_with_cause 10056[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10057tests/shared/test_dispatcher.py::test_direct_send_raw_request_issued_before_peer_run_blocks_until_peer_ready 10058tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10059tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 10060[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 10061tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 10062[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 10063tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 10064tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 10065[gw9] [ 84%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_issued_before_peer_run_blocks_until_peer_ready 10066tests/shared/test_dispatcher.py::test_direct_send_raw_request_before_run_raises_runtimeerror 10067[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10068[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 10069tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 10070tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10071[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 10072[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 10073tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 10074tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 10075[gw9] [ 84%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_before_run_raises_runtimeerror 10076[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 10077[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 10078[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10079tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10080[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10081tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10082tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 10083tests/shared/test_dispatcher.py::test_direct_send_raw_request_to_never_run_peer_honors_timeout 10084tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 10085[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10086[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 10087[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 10088tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10089tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 10090tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 10091[gw9] [ 84%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_to_never_run_peer_honors_timeout 10092[gw2] [ 84%] PASSED tests/server/mcpserver/test_server.py::test_context_notify_outside_a_request_raises 10093[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 10094[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10095tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 10096tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10097[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 10098tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 10099tests/shared/test_dispatcher.py::test_direct_request_parked_waiting_for_peer_run_is_woken_by_peer_close 10100tests/server/mcpserver/test_server.py::test_context_exposes_its_mcp_server 10101[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10102[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 10103tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10104[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 10105tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 10106tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 10107[gw2] [ 84%] PASSED tests/server/mcpserver/test_server.py::test_context_exposes_its_mcp_server 10108tests/server/mcpserver/test_server.py::test_remove_prompt_removes_and_unknown_name_raises 10109[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10110tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10111[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 10112tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10113[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10114[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 10115[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10116tests/shared/test_uri_template.py::test_match_never_raises 10117[gw2] [ 84%] PASSED tests/server/mcpserver/test_server.py::test_remove_prompt_removes_and_unknown_name_raises 10118tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10119tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 10120[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10121tests/server/mcpserver/test_server.py::test_middleware_kwarg_and_property_share_the_low_level_chain 10122tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10123[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10124tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10125[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 10126[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10127tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10128tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 10129[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10130tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10131[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 10132tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 10133[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10134tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10135[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 10136[gw7] [ 85%] PASSED tests/shared/test_streamable_http.py::test_get_validation 10137[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 10138tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 10139tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10140[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10141tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10142[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 10143tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 10144[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10145[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10146tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 10147tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 10148tests/shared/test_uri_template.py::test_match_escapes_template_literals 10149[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 10150[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 10151[gw2] [ 85%] PASSED tests/server/mcpserver/test_server.py::test_middleware_kwarg_and_property_share_the_low_level_chain 10152[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_escapes_template_literals 10153tests/server/mcpserver/test_server.py::test_middleware_can_refuse_subscriptions_listen_before_the_ack 10154[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10155[gw5] [ 85%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-stateless-2025-11-25] 10156tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10157tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10158tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[in-memory-2026-07-28] 10159[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10160tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10161tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 10162tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10163[gw2] [ 85%] PASSED tests/server/mcpserver/test_server.py::test_middleware_can_refuse_subscriptions_listen_before_the_ack 10164[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10165tests/server/mcpserver/test_title.py::test_server_name_title_description_version 10166tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10167[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10168tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10169[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10170tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10171[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10172[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 10173[gw2] [ 85%] PASSED tests/server/mcpserver/test_title.py::test_server_name_title_description_version 10174[gw5] [ 85%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[in-memory-2026-07-28] 10175tests/server/mcpserver/test_title.py::test_tool_title_precedence 10176tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-2026-07-28] 10177tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 10178[gw7] [ 85%] PASSED tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 10179[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10180[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 10181tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 10182tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 10183[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 10184tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 10185tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10186[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 10187tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 10188[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10189tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10190tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10191[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 10192[gw7] [ 85%] PASSED tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 10193tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 10194[gw5] [ 85%] PASSED tests/interaction/mcpserver/test_context.py::test_context_report_progress_sends_progress_notifications[streamable-http-2026-07-28] 10195tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 10196[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 10197[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10198tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[in-memory-2025-11-25] 10199tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10200tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10201[gw2] [ 85%] PASSED tests/server/mcpserver/test_title.py::test_tool_title_precedence 10202tests/server/mcpserver/test_title.py::test_prompt_title 10203[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10204tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 10205[gw7] [ 85%] PASSED tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 10206tests/shared/test_streamable_http.py::test_client_crash_handled 10207[gw5] [ 85%] PASSED tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[in-memory-2025-11-25] 10208tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[sse-2025-11-25] 10209[gw1] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 10210[gw2] [ 85%] PASSED tests/server/mcpserver/test_title.py::test_prompt_title 10211tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10212[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_never_raises 10213tests/server/mcpserver/test_title.py::test_resource_title 10214tests/test_examples.py::test_simple_echo 10215[gw2] [ 85%] PASSED tests/server/mcpserver/test_title.py::test_resource_title 10216tests/server/mcpserver/test_title.py::test_get_display_name_utility 10217[gw5] [ 85%] PASSED tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[sse-2025-11-25] 10218tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[streamable-http-2025-11-25] 10219[gw2] [ 85%] PASSED tests/server/mcpserver/test_title.py::test_get_display_name_utility 10220tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_basic_function 10221[gw2] [ 85%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_basic_function 10222[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10223[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10224tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10225[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10226tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10227[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10228tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10229tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10230tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10231[gw5] [ 85%] PASSED tests/interaction/mcpserver/test_context.py::test_context_exposes_request_id_and_client_info_to_a_tool[streamable-http-2025-11-25] 10232tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[in-memory-2025-11-25] 10233[gw5] [ 85%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[in-memory-2025-11-25] 10234tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[sse-2025-11-25] 10235[gw9] [ 85%] PASSED tests/shared/test_dispatcher.py::test_direct_request_parked_waiting_for_peer_run_is_woken_by_peer_close 10236[gw0] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10237[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10238tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10239[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10240[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10241tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10242tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10243tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10244tests/shared/test_dispatcher.py::test_direct_send_raw_request_after_local_close_raises_and_notify_is_dropped 10245[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10246tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10247[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_after_local_close_raises_and_notify_is_dropped 10248tests/shared/test_dispatcher.py::test_direct_inbound_after_peer_close_refuses_requests_and_drops_notifications 10249[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_direct_inbound_after_peer_close_refuses_requests_and_drops_notifications 10250tests/shared/test_dispatcher.py::test_direct_inbound_to_closed_never_run_peer_fails_with_connection_closed 10251[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_direct_inbound_to_closed_never_run_peer_fails_with_connection_closed 10252tests/shared/test_dispatcher.py::test_direct_send_raw_request_and_notify_raise_runtimeerror_when_no_peer_connected 10253[gw5] [ 86%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[sse-2025-11-25] 10254tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-2025-11-25] 10255[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_and_notify_raise_runtimeerror_when_no_peer_connected 10256tests/shared/test_dispatcher.py::test_direct_close_makes_run_return 10257[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_direct_close_makes_run_return 10258tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[direct] 10259[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[direct] 10260tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[jsonrpc] 10261[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10262tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10263[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10264[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10265tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10266[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10267[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10268tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10269[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[jsonrpc] 10270tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10271tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10272tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[direct] 10273[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[direct] 10274tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[jsonrpc] 10275[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[jsonrpc] 10276tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[direct] 10277[gw5] [ 86%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-2025-11-25] 10278tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-stateless-2025-11-25] 10279[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[direct] 10280tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[jsonrpc] 10281[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10282[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10283[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10284[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10285tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10286tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10287tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10288[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10289tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10290tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10291[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[jsonrpc] 10292tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[direct] 10293[gw4] [ 86%] PASSED tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 10294[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[direct] 10295tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[jsonrpc] 10296tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 10297[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[jsonrpc] 10298[gw5] [ 86%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-stateless-2025-11-25] 10299tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[direct] 10300tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[in-memory-2026-07-28] 10301[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[direct] 10302tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[jsonrpc] 10303[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10304[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10305[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10306[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[jsonrpc] 10307tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10308tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10309tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10310tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[direct] 10311[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[direct] 10312tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[jsonrpc] 10313[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[jsonrpc] 10314tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[direct] 10315[gw5] [ 86%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[in-memory-2026-07-28] 10316[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10317tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-2026-07-28] 10318tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10319[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10320[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10321[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10322tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10323tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10324tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10325[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10326tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10327[gw9] [ 86%] PASSED tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[direct] 10328[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10329[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10330tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10331[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10332tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10333tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10334tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[jsonrpc] 10335[gw8] [ 86%] PASSED tests/test_examples.py::test_simple_echo 10336tests/test_examples.py::test_complex_inputs 10337[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10338tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10339[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10340tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10341[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10342[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10343tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10344[gw7] [ 86%] PASSED tests/shared/test_streamable_http.py::test_client_crash_handled 10345tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10346tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 10347[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10348[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10349tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10350[gw7] [ 86%] PASSED tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 10351tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10352tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 10353[gw7] [ 86%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 10354tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 10355[gw7] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 10356[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10357tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 10358[gw7] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 10359tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10360tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 10361[gw7] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 10362tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 10363[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10364[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10365[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 10366tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10367tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 10368[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10369tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10370[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 10371tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10372tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 10373[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10374tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10375[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 10376tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 10377[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 10378[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10379[gw9] [ 87%] PASSED tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[jsonrpc] 10380tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10381tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 10382[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 10383tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 10384tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_single_elicitation 10385[gw5] [ 87%] PASSED tests/interaction/mcpserver/test_context.py::test_report_progress_without_a_progress_token_sends_nothing[streamable-http-2026-07-28] 10386[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10387[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 10388tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10389[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10390tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 10391[gw9] [ 87%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_single_elicitation 10392[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10393tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10394tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10395[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 10396tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations 10397tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 10398[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10399tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10400[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 10401[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10402tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 10403[gw9] [ 87%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations 10404tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10405tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 10406tests/shared/test_exceptions.py::test_url_elicitation_required_error_custom_message 10407[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 10408[gw9] [ 87%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_custom_message 10409tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data 10410tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 10411[gw9] [ 87%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data 10412[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10413tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data_wrong_code 10414tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10415[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 10416[gw9] [ 87%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data_wrong_code 10417tests/shared/test_exceptions.py::test_url_elicitation_required_error_serialization_roundtrip 10418[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 10419[gw9] [ 87%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_serialization_roundtrip 10420tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 10421tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations 10422[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 10423[gw9] [ 87%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations 10424tests/shared/test_exceptions.py::test_url_elicitation_required_error_inherits_from_mcp_error 10425tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 10426[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10427tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10428[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10429tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 10430tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10431[gw9] [ 87%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_inherits_from_mcp_error 10432[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10433tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10434tests/shared/test_exceptions.py::test_url_elicitation_required_error_exception_message 10435[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10436tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10437[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 10438[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 10439tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 10440[gw9] [ 87%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_exception_message 10441tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 10442tests/shared/test_exceptions.py::test_from_jsonrpc_error_preserves_code_message_and_data 10443[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 10444tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 10445[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 10446tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 10447[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10448tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10449[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 10450[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10451tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10452tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 10453[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10454tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10455[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 10456tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 10457[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 10458[gw9] [ 87%] PASSED tests/shared/test_exceptions.py::test_from_jsonrpc_error_preserves_code_message_and_data 10459tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 10460[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10461[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 10462[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10463tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 10464tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10465tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10466tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10467[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10468[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10469[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10470tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10471[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 10472tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 10473tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10474tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10475[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 10476tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 10477[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 10478tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 10479[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 10480[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10481[gw7] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 10482tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 10483tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10484[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10485[gw7] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 10486tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 10487tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10488[gw7] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 10489tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 10490[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10491[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10492[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10493tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10494[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10495tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10496tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10497tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10498tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 10499[gw7] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 10500tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 10501[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10502[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10503[gw7] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 10504tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10505[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 10506tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10507tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 10508[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10509[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10510[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 10511tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10512tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10513tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 10514[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10515tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10516[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 10517[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10518[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10519tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10520tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10521[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10522tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10523[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10524tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10525tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 10526tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 10527[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 10528[gw7] [ 88%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 10529tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 10530[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 10531[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10532tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 10533tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10534[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 10535tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 10536[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 10537tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 10538[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10539[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10540[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10541tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10542[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 10543tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10544[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10545tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10546tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10547[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10548tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10549tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10550tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 10551[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10552tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10553[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10554tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10555[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10556tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10557[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10558[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 10559tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 10560tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10561[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10562tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10563[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10564[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10565tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10566tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10567[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 10568[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10569tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10570[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10571tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10572tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 10573[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10574tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10575[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 10576tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 10577[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10578[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10579[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10580tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10581[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 10582tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10583tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10584[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10585[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10586tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 10587tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10588tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10589[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 10590tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 10591[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10592tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10593[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 10594[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10595[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10596[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10597tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 10598tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10599tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10600tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10601[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10602[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10603tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10604tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10605[gw5] [ 89%] PASSED tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 10606[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10607tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10608[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10609[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10610tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10611tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10612[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10613[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10614[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10615tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10616[gw8] [ 89%] PASSED tests/test_examples.py::test_complex_inputs 10617[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10618tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10619tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10620tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10621tests/test_examples.py::test_direct_call_tool_result_return 10622[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10623[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10624tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10625[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10626tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10627tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10628[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10629tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10630[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10631[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10632tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10633tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10634[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10635tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10636tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10637[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10638tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10639[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10640tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10641[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10642tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10643[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10644tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10645[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10646tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10647[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10648tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10649[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10650[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10651tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10652tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10653[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10654tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10655[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10656tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10657[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10658[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10659tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10660tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10661[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10662tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10663[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10664[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10665[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10666tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10667tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10668tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10669[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10670tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10671[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10672[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10673tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10674tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10675[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10676tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10677[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10678tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10679[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10680tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10681[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10682tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10683[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10684tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10685[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10686tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10687[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10688tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10689[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10690tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10691[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10692tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10693[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10694tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10695[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10696tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10697[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10698tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10699[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10700tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10701[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10702tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10703[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10704[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10705tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10706tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10707[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10708tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10709[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10710tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10711[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10712tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10713[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10714tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10715[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10716tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10717[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10718tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10719[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10720tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10721[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10722tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10723[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10724tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10725[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10726[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10727tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10728tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10729[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10730tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10731[gw8] [ 90%] PASSED tests/test_examples.py::test_direct_call_tool_result_return 10732tests/test_examples.py::test_desktop 10733[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10734[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10735[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10736tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10737tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10738[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10739tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10740tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10741[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10742tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10743[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10744[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10745tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10746[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10747tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10748tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10749[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10750[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10751tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10752tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10753[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10754tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10755[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10756[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10757tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10758tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10759[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10760tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10761[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10762[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10763tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10764[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10765tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10766[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10767tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10768tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10769[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10770tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10771[gw7] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10772[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10773tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10774tests/test_types.py::test_tool_choice 10775[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10776[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10777[gw7] [ 90%] PASSED tests/test_types.py::test_tool_choice 10778tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10779tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10780tests/test_types.py::test_sampling_message_with_user_role 10781[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10782[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10783tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10784tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10785[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10786tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10787[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10788[gw7] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_user_role 10789tests/test_types.py::test_sampling_message_with_assistant_role 10790tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10791[gw7] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_assistant_role 10792tests/test_types.py::test_sampling_message_backward_compatibility 10793[gw7] [ 90%] PASSED tests/test_types.py::test_sampling_message_backward_compatibility 10794tests/test_types.py::test_create_message_request_params_with_tools 10795[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10796[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10797tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10798[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10799tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10800tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10801[gw7] [ 90%] PASSED tests/test_types.py::test_create_message_request_params_with_tools 10802tests/test_types.py::test_create_message_result_with_tool_use 10803[gw7] [ 90%] PASSED tests/test_types.py::test_create_message_result_with_tool_use 10804tests/test_types.py::test_create_message_result_basic 10805[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10806tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10807[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10808[gw7] [ 90%] PASSED tests/test_types.py::test_create_message_result_basic 10809tests/test_types.py::test_client_capabilities_with_sampling_tools 10810tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10811[gw7] [ 90%] PASSED tests/test_types.py::test_client_capabilities_with_sampling_tools 10812[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10813tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10814tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10815[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10816tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10817[gw7] [ 90%] PASSED tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10818tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10819[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10820[gw7] [ 90%] PASSED tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10821tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10822[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10823[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10824tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 10825[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10826tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10827tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10828[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10829tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10830tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10831[gw1] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10832tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10833[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10834tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10835[gw7] [ 91%] PASSED tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10836[gw5] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10837[gw2] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10838tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10839tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10840[gw7] [ 91%] PASSED tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10841[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10842tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10843[gw3] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10844tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10845[gw5] [ 91%] PASSED tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10846[gw1] [ 91%] PASSED tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10847tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10848tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10849[gw5] [ 91%] PASSED tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10850[gw3] [ 91%] PASSED tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10851tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10852tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10853[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10854[gw1] [ 91%] PASSED tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10855tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10856tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10857tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10858[gw1] [ 91%] PASSED tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10859[gw3] [ 91%] PASSED tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10860tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10861tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10862[gw1] [ 91%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10863[gw3] [ 91%] PASSED tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10864tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10865tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10866[gw0] [ 91%] PASSED tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10867[gw5] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10868tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10869[gw1] [ 91%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10870tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10871tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10872tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10873[gw7] [ 91%] PASSED tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10874[gw2] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10875[gw1] [ 91%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10876[gw5] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10877tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10878tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10879tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10880[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10881[gw5] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10882[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10883tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10884tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10885tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10886[gw3] [ 91%] PASSED tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10887[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10888tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10889tests/types/test_methods.py::test_built_in_maps_are_immutable 10890tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 10891[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10892tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10893[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10894[gw3] [ 91%] PASSED tests/types/test_methods.py::test_built_in_maps_are_immutable 10895tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10896[gw5] [ 91%] PASSED tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10897tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10898tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10899[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10900[gw3] [ 91%] PASSED tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10901tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10902tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10903[gw5] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10904[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10905tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10906[gw3] [ 91%] PASSED tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10907[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10908tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 10909tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10910tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10911[gw2] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10912tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10913[gw3] [ 91%] PASSED tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10914tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10915[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10916[gw3] [ 91%] PASSED tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10917tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10918tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10919[gw5] [ 91%] PASSED tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10920[gw3] [ 91%] PASSED tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10921tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10922[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 10923tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10924tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10925[gw8] [ 91%] PASSED tests/test_examples.py::test_desktop 10926tests/test_examples.py::test_docs_examples[README.md:47-63] 10927[gw2] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10928[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10929tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10930tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10931[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10932[gw5] [ 91%] PASSED tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10933tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10934tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10935[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10936tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10937[gw8] [ 91%] PASSED tests/test_examples.py::test_docs_examples[README.md:47-63] 10938[gw5] [ 91%] PASSED tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10939tests/test_examples.py::test_docs_examples[README.md:90-103] 10940tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10941[gw5] [ 91%] PASSED tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10942tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10943[gw2] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10944[gw5] [ 91%] PASSED tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10945tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10946[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10947tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10948[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10949tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10950[gw7] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10951tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10952tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10953[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10954tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10955[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10956tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10957[gw3] [ 92%] PASSED tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10958[gw9] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10959tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10960[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10961tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10962[gw3] [ 92%] PASSED tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10963tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10964tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 10965[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10966[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 10967tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 10968[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 10969tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 10970[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 10971tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 10972[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10973tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10974tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10975[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 10976tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 10977[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10978tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10979[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10980[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10981tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10982[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10983tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10984[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10985[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10986tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10987[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10988tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10989tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10990[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10991tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10992[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10993[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 10994tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 10995[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 10996tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 10997[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 10998[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10999tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 11000tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 11001[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 11002tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 11003[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 11004tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 11005tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 11006[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 11007tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 11008[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 11009tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 11010[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 11011tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 11012[gw0] [ 92%] PASSED tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 11013tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 11014[gw0] [ 92%] PASSED tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 11015tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 11016[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 11017tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 11018[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 11019tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 11020[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 11021tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 11022tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11023[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11024tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 11025[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 11026tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11027[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11028tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 11029[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] 11030tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 11031[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] 11032tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 11033[gw8] [ 92%] PASSED tests/test_examples.py::test_docs_examples[README.md:90-103] 11034tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 11035[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 11036tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 11037[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 11038tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11039[gw5] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11040tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11041[gw9] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 11042[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 11043tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 11044[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 11045tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 11046[gw0] [ 92%] PASSED tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 11047tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 11048[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 11049tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 11050[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 11051tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 11052[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 11053[gw5] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11054tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11055[gw5] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11056tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11057[gw5] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11058tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11059[gw5] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11060tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 11061[gw5] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 11062tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11063[gw2] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 11064tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 11065[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] 11066tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 11067[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] 11068tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11069[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 11070tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 11071[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 11072tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 11073[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 11074tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11075[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11076tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 11077[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 11078tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11079[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11080[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 11081tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 11082[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 11083tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11084[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11085tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11086[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11087tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11088[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11089tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11090tests/test_types.py::test_jsonrpc_request 11091[gw5] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11092tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11093[gw5] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11094[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11095tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11096[gw8] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 11097tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 11098[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11099tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 11100[gw0] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 11101tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 11102[gw0] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 11103tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 11104[gw0] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 11105[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11106tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11107tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 11108[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 11109tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11110[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11111tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11112[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11113[gw6] [ 93%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 11114[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11115[gw9] [ 93%] PASSED tests/test_types.py::test_jsonrpc_request 11116tests/test_types.py::test_method_initialization 11117tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 11118tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 11119[gw0] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 11120[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 11121tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11122[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11123tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11124[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11125tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11126[gw5] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11127tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11128[gw9] [ 93%] PASSED tests/test_types.py::test_method_initialization 11129tests/test_types.py::test_tool_use_content 11130tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11131tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11132tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11133[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] 11134[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11135tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11136[gw9] [ 93%] PASSED tests/test_types.py::test_tool_use_content 11137tests/test_types.py::test_tool_result_content 11138[gw5] [ 93%] PASSED tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11139tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11140[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] 11141[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11142tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11143[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11144tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11145[gw9] [ 93%] PASSED tests/test_types.py::test_tool_result_content 11146[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11147tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11148[gw8] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 11149[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11150tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 11151tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11152[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11153tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11154tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11155tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11156tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11157[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11158tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11159[gw5] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11160[gw2] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11161tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11162tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 11163[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11164tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 11165[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11166tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11167[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11168tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11169[gw2] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11170tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11171[gw2] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11172tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11173tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11174[gw5] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11175tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11176[gw5] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11177tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11178[gw5] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11179tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11180[gw5] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11181tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11182[gw5] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11183[gw0] [ 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 11184[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11185tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11186[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11187tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11188[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11189tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11190[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11191tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11192[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11193[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11194tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11195[gw8] [ 94%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 11196[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 11197tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 11198tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11199[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11200tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11201tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 11202[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11203tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11204[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 11205tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 11206[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11207tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11208[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11209[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 11210tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 11211[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 11212tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11213[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11214tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11215tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11216[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11217tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11218tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11219[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11220tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11221[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11222tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11223[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11224tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11225tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 11226[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 11227tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 11228[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 11229tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 11230[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 11231tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 11232[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11233tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11234tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11235[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11236tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11237[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11238tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11239[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 11240tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 11241[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 11242[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11243tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11244[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11245tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11246[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11247tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11248[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11249tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11250[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11251tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11252[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11253tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11254[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11255tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11256[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11257[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11258tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11259[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11260tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11261[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11262tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11263[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11264tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11265[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11266tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11267[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11268tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11269[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11270tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11271[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11272[gw8] [ 94%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 11273[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11274tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11275[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11276tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11277[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11278tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11279[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11280tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 11281tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11282[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11283tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11284tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 11285[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 11286[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11287[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11288tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11289[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11290tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11291[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11292tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11293tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11294tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11295[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11296tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11297[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11298[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11299tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11300tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11301tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11302[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11303tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11304[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11305tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11306[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11307[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11308tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11309tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11310[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11311[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11312tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11313[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11314tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11315tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11316[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11317tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11318[gw8] [ 95%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 11319[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11320tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11321tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 11322[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11323[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11324tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11325tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11326[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11327tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11328[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11329tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11330[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11331tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11332[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11333tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11334[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11335tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11336[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11337tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11338tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11339[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11340[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11341[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11342tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11343[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11344tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11345tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11346[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11347tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11348[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11349tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11350tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11351[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11352tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11353[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11354[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11355[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11356tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11357tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11358[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11359tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11360[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11361tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11362[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11363[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11364tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11365tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11366[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11367[gw8] [ 95%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 11368[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11369tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 11370tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11371[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11372tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11373tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11374[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11375tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11376[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11377[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11378[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11379tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11380tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11381tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11382[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11383[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11384tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11385tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11386[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11387tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11388[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11389tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11390[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11391tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11392[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11393tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11394[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11395tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11396[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11397[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11398tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11399[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11400tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11401[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11402tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11403[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11404[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11405tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11406[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11407tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11408tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11409tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11410[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11411tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11412[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11413[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11414tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11415tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11416[gw8] [ 95%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 11417[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11418[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11419tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 11420tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11421tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11422[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11423tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11424[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11425tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11426[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11427[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11428tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11429tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11430[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11431[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11432tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11433tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11434tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11435[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 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[_v2025_11_25.ListResourceTemplatesResult--] 11438tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11439[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11440tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11441[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11442[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11443tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11444[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11445[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11446[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11447tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11448tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11449[gw6] [ 96%] PASSED tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11450[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11451[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11452tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11453[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11454tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11455tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11456[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11457tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11458tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11459tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11460[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11461tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11462[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11463tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11464[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11465tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11466[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11467tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11468[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11469tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11470[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11471[gw8] [ 96%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 11472tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11473tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11474tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 11475[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11476[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11477tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11478[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11479tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11480[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11481tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11482[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11483tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11484[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11485tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11486[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11487[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11488tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11489tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11490[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11491tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11492[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11493tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11494[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11495[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11496[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11497tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11498tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11499tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11500[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11501[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11502[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11503tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11504tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11505tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11506[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11507tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11508tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11509[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11510[gw8] [ 96%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 11511[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11512tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11513[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11514[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11515tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11516tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 11517[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11518[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11519tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11520tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11521tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11522[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11523tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11524[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11525[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11526tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11527tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11528[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11529tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11530[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11531[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11532[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11533tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11534tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11535tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11536[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11537[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11538tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11539tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11540[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11541[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11542tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11543tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11544[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11545[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11546[gw8] [ 97%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 11547tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11548tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11549tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 11550tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11551[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11552tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11553[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11554[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11555[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11556[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11557[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11558tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11559tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11560tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11561tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11562[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11563tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11564[gw8] [ 97%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 11565[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11566tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11567tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 11568[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11569tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11570[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11571[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11572[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11573tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11574tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11575tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11576[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11577tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11578[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11579[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11580tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11581tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11582tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11583[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11584[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11585tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11586[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11587tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11588[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11589[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11590tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11591[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11592tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11593tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11594tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11595[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11596[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11597tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11598[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11599tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11600[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11601[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11602[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11603[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11604[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11605[gw8] [ 97%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 11606tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11607tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11608[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11609tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 11610tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11611[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11612tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11613tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11614tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11615tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11616[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11617[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11618tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11619[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11620[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11621tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11622tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11623tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11624[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11625[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11626tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11627tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11628[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11629[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11630tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11631tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11632[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11633tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11634[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11635tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11636tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11637[gw6] [ 97%] PASSED tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11638[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11639[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11640tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11641tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11642tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11643[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11644[gw6] [ 97%] SKIPPED tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11645[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11646tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11647tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11648[gw6] [ 97%] SKIPPED tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11649[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11650[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11651tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11652[gw6] [ 97%] SKIPPED tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11653tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11654tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 11655[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11656[gw6] [ 97%] SKIPPED tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 11657tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 11658[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11659tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11660tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11661[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11662tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11663[gw5] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11664[gw2] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11665[gw7] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11666[gw8] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 11667tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11668[gw6] [ 98%] PASSED tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 11669tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 11670tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 11671[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11672[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11673tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11674tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11675tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11676tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11677[gw6] [ 98%] PASSED tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 11678tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 11679[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11680[gw5] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11681[gw7] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11682tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11683[gw2] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11684tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11685[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11686tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11687tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11688tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11689[gw7] [ 98%] PASSED tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11690[gw6] [ 98%] PASSED tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 11691tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11692[gw5] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11693tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 11694[gw3] [ 98%] PASSED tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11695tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11696tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11697tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11698[gw6] [ 98%] PASSED tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 11699[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11700[gw2] [ 98%] PASSED tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11701[gw5] [ 98%] PASSED tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11702tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11703[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11704[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11705tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11706tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11707tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11708tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11709[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11710[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11711[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11712tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 11713[gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11714tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11715tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11716tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11717tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11718[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11719[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11720[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11721[gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11722tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11723tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11724tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11725tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11726[gw8] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 11727[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11728tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 11729[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11730[gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11731[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11732[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11733[gw6] [ 98%] PASSED tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 11734tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11735tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11736[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11737[gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11738tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11739tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11740[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11741tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11742[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11743tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11744tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11745tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11746tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11747[gw0] [ 98%] PASSED tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11748[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11749[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11750[gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11751[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11752tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11753tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11754tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11755tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11756[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11757[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11758[gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11759[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11760tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11761tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11762[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11763tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11764tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11765tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11766[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11767tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11768[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11769[gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11770[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11771[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11772tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11773tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11774tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11775tests/types/test_version.py::test_known_versions_are_strictly_ordered 11776tests/types/test_version.py::test_supported_versions_are_known 11777[gw5] [ 98%] PASSED tests/types/test_version.py::test_supported_versions_are_known 11778[gw2] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11779[gw0] [ 99%] PASSED tests/types/test_version.py::test_known_versions_are_strictly_ordered 11780[gw6] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11781tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11782[gw3] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11783tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11784[gw7] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11785[gw8] [ 99%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 11786tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 11787[gw9] [ 99%] PASSED tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11788tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11789tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11790tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11791tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11792[gw3] [ 99%] PASSED tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11793[gw0] [ 99%] PASSED tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11794tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11795tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11796[gw2] [ 99%] PASSED tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11797tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11798[gw7] [ 99%] PASSED tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11799[gw6] [ 99%] PASSED tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11800[gw5] [ 99%] PASSED tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11801[gw9] [ 99%] PASSED tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11802[gw8] [ 99%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 11803tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 11804[gw8] [ 99%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 11805tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 11806[gw8] [ 99%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 11807tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 11808[gw8] [ 99%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 11809[gw4] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 11810tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11811[gw4] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11812tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11813[gw4] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11814tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11815[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11816tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11817[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11818tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11819[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11820tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11821[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11822tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11823[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11824tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 11825[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 11826tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 11827[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 11828tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 11829[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 11830tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 11831[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 11832tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 11833[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 11834tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 11835[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 11836tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 11837[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 11838tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 11839[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 11840tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 11841[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 11842tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 11843[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 11844tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 11845[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 11846tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 11847[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 11848tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 11849[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 11850tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 11851[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 11852tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 11853[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 11854tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 11855[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 11856tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 11857[gw4] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 11858[gw1] [ 99%] PASSED tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 11859tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11860[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11861tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11862[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11863tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11864[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11865tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11866[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11867tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11868[gw1] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11869tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 11870[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 11871tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 11872[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 11873tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 11874[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 11875tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 11876[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 11877tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 11878[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 11879tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 11880[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 11881tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 11882[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 11883tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 11884[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 11885tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 11886[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 11887tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 11888[gw1] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 11889tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 11890[gw1] [100%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 1189111892================= 5903 passed, 9 skipped, 1 xfailed in 42.42s ==================11893Finished executing pytestCheckPhase11894pytestCheckPhase completed in 46 seconds