python3.14-mcp-2.3.0
checks.aarch64-darwin.pkgs-mistral-vibe
· build #10002
· raw
1mac02: building i0pn4sdii9387hx2xn1phrbd2s1arylp-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 nothingbuildPhase
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 pypaBuildPhasepythonRuntimeDepsCheckHook
33Executing pythonRuntimeDepsCheck34Checking runtime dependencies for mcp-2.3.0-py3-none-any.whl35Finished executing pythonRuntimeDepsCheckinstallPhase
36Executing pypaInstallPhase37Successfully installed mcp-2.3.0-py3-none-any.whl38Finished executing pypaInstallPhasepythonOutputDistPhase
39Executing pythonOutputDistPhase40Finished executing pythonOutputDistPhasefixupPhase
41checking for references to /nix/var/nix/builds/nix-7797-1733290688/ in /nix/store/6h1xydvwrmsglrlp616g76b21r1dsim4-python3.14-mcp-2.3.0-dist...42patching script interpreter paths in /nix/store/6h1xydvwrmsglrlp616g76b21r1dsim4-python3.14-mcp-2.3.0-dist43checking for references to /nix/var/nix/builds/nix-7797-1733290688/ in /nix/store/w8xf196wdbkzqa8qsnksw2xznn41c4ix-python3.14-mcp-2.3.0...44patching script interpreter paths in /nix/store/w8xf196wdbkzqa8qsnksw2xznn41c4ix-python3.14-mcp-2.3.045stripping (with command strip and flags -S) in /nix/store/w8xf196wdbkzqa8qsnksw2xznn41c4ix-python3.14-mcp-2.3.0/lib /nix/store/w8xf196wdbkzqa8qsnksw2xznn41c4ix-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/w8xf196wdbkzqa8qsnksw2xznn41c4ix-python3.14-mcp-2.3.0/bin/mcp'...48Executing pythonRemoveTestsDir49Finished executing pythonRemoveTestsDirinstallCheckPhase
50no Makefile or custom installCheckPhase, doing nothingpythonImportsCheckPhase
51Executing pythonImportsCheckPhase52Check whether the following modules can be imported: mcppythonMetadataCheckPhase
53Executing pythonMetadataCheckPhasepytestCheckPhase
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-7797-1733290688/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/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 66tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 67tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 68tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 69tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 70tests/client/test_streamable_http.py::test_default_sse_limit_fails_one_large_tool_call_and_keeps_the_session_usable 71tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 72tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 73[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 74tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields 75[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields 76tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name 77[gw4] [ 0%] PASSED tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 78tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 79[gw3] [ 0%] PASSED tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name 80tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 81[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 82tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 83[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 84tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 85[gw6] [ 0%] PASSED tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 86tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 87[gw1] [ 0%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 88[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 89tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 90tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 91[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 92[gw7] [ 0%] PASSED tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 93[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 94tests/client/test_extension.py::test_result_claim_is_frozen 95[gw3] [ 0%] PASSED tests/client/test_extension.py::test_result_claim_is_frozen 96tests/client/test_extension.py::test_notification_binding_constructs 97[gw6] [ 0%] PASSED tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 98tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 99tests/docs_src/test_first_steps.py::test_call_the_tool 100[gw3] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_constructs 101tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 102tests/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] 103[gw3] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 104tests/client/test_extension.py::test_notification_binding_is_frozen 105[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] 106[gw3] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_is_frozen 107tests/client/test_extension.py::test_extension_defaults_advertise_nothing 108[gw3] [ 0%] PASSED tests/client/test_extension.py::test_extension_defaults_advertise_nothing 109[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 110tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 111tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 112[gw3] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 113tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 114[gw6] [ 0%] PASSED tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 115tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 116[gw3] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 117tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 118[gw3] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 119tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 120tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 121[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 122[gw3] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 123tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 124tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 125[gw3] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 126tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 127[gw9] [ 0%] PASSED tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 128[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 129[gw4] [ 0%] PASSED tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 130tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 131tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 132[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 133tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 134[gw3] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 135tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 136[gw4] [ 0%] PASSED tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 137[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 138tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 139tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 140[gw3] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 141tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 142[gw3] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 143tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 144tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 145[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 146tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 147[gw4] [ 0%] PASSED tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 148[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 149tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 150[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 151[gw3] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 152tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 153[gw3] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 154tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 155[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 156tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 157[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 158tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 159[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 160tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 161tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 162tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 163[gw3] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 164tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 165[gw3] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 166tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 167[gw3] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 168tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 169[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 170tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 171[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 172tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 173[gw4] [ 0%] PASSED tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 174tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 175[gw3] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 176[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 177tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 178tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 179[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 180tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 181[gw1] [ 0%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 182[gw3] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 183[gw4] [ 0%] PASSED tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 184[gw8] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 185tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 186tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 187tests/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] 188[gw3] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 189tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 190[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 191tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 192tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 193[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 194tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 195[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 196tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 197[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 198tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 199[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 200tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 201[gw1] [ 1%] 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] 202[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 203[gw3] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 204tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 205tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 206tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 207[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 208tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 209[gw3] [ 1%] PASSED tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 210tests/client/test_extension.py::test_advertise_serves_captured_settings 211[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 212[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 213[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 214tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 215tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 216[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 217[gw3] [ 1%] PASSED tests/client/test_extension.py::test_advertise_serves_captured_settings 218tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 219tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 220[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 221[gw3] [ 1%] PASSED tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 222tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 223[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 224[gw9] [ 1%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 225tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 226[gw3] [ 1%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 227tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 228tests/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] 229[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 230tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 231[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 232tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 233[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 234tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 235[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 236tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 237[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 238tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 239tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 240[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope="admin:write resource:read", error="insufficient_scope"-scope-admin:write resource:read] 241[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 242[gw3] [ 1%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 243tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 244[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 245tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 246tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 247[gw3] [ 1%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 248[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 249tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 250tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 251[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 252tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 253[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 254tests/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] 255[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 256tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 257[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", resource_metadata="https://api.example.com/.well-known/oauth-protected-resource", error="insufficient_scope"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 258tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 259tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 260[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 261tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 262tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 263[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 264tests/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] 265[gw4] [ 1%] PASSED tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 266tests/client/test_session.py::test_era_neutral_properties_after_discover 267[gw4] [ 1%] PASSED tests/client/test_session.py::test_era_neutral_properties_after_discover 268tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 269[gw3] [ 1%] PASSED tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 270[gw4] [ 1%] PASSED tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 271tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 272[gw5] [ 1%] PASSED tests/client/test_streamable_http.py::test_default_sse_limit_fails_one_large_tool_call_and_keeps_the_session_usable 273tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification 274[gw4] [ 1%] PASSED tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 275tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 276[gw4] [ 1%] PASSED tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 277tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 278[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="resource:read resource:write user_profile"-scope-resource:read resource:write user_profile] 279tests/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] 280[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata="https://api.example.com/auth/metadata?version=1"-resource_metadata-https://api.example.com/auth/metadata?version=1] 281tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 282[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 283tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 284[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 285tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] 286[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 287tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 288[gw9] [ 1%] PASSED tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 289tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 290[gw4] [ 1%] PASSED tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 291tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 292[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 293tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 294[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 295tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 296[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 297[gw4] [ 1%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 298tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 299tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 300[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 301tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 302[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 303tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 304tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 305[gw8] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 306tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 307[gw4] [ 1%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 308tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 309[gw9] [ 2%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 310tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 311[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 312tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 313[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 314tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 315[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 316tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 317tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 318[gw9] [ 2%] PASSED tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 319tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 320[gw3] [ 2%] PASSED tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 321[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 322tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 323tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 324[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 325tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 326[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 327tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 328[gw1] [ 2%] 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] 329[gw3] [ 2%] PASSED tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 330tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 331tests/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] 332[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 333tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 334[gw2] [ 2%] PASSED tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 335tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 336[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 337tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 338[gw3] [ 2%] PASSED tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 339tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 340[gw2] [ 2%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 341tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 342[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 343tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 344[gw3] [ 2%] PASSED tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 345tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 346[gw2] [ 2%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 347[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 348tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 349[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 350tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 351[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 352tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 353[gw3] [ 2%] PASSED tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 354tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 355[gw2] [ 2%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 356[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 357tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 358tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 359[gw2] [ 2%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 360tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 361[gw2] [ 2%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 362tests/client/test_client.py::test_client_is_initialized 363[gw2] [ 2%] PASSED tests/client/test_client.py::test_client_is_initialized 364tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 365tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 366[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 367tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 368[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 369tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 370[gw8] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 371[gw2] [ 2%] PASSED tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 372tests/client/test_client.py::test_client_with_simple_server 373[gw3] [ 2%] PASSED tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 374tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 375[gw3] [ 2%] PASSED tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 376tests/client/test_input_required.py::test_default_max_rounds_constant 377[gw3] [ 2%] PASSED tests/client/test_input_required.py::test_default_max_rounds_constant 378tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 379[gw1] [ 2%] 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] 380tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 381[gw1] [ 2%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 382tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 383[gw1] [ 2%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 384tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 385[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 386tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 387[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 388tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 389[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 390tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 391[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 392tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 393[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 394tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 395[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 396tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 397[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 398tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 399[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 400tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 401[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 402tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 403[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 404tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 405[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 406tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 407[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 408tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 409[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 410tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 411[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 412tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 413[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 414tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 415[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 416tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 417[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 418tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 419[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 420tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 421[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 422tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 423[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 424tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 425[gw4] [ 2%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 426tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 427tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 428tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 429[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 430tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 431[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 432tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 433[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 434tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 435[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 436tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 437[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 438tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 439[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 440tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 441[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 442tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 443[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 444tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 445[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 446tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 447[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 448tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 449[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 450tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 451[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 452tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 453[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 454tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 455[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 456tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 457[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 458tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 459[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 460tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 461[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 462tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 463[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 464tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 465[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 466tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 467[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 468tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 469[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 470tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 471[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 472tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 473[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 474tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 475[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 476tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 477[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 478tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 479[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 480tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 481[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 482tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 483[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 484tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 485[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 486tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 487[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 488tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 489[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 490tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 491[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 492tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 493[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 494tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 495[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 496tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 497[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 498tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 499[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 500tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 501[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 502tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 503[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 504[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 505tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 506tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 507[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 508tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 509[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 510tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 511[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 512tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 513[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 514[gw5] [ 3%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_accepts_a_large_get_notification 515tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages 516tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 517[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 518tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 519[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 520tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 521[gw0] [ 3%] PASSED tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 522tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 523[gw0] [ 3%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 524tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 525[gw0] [ 3%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 526tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 527[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 528tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 529[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 530[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 531tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 532[gw4] [ 3%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 533tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 534[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 535tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 536[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 537tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 538[gw8] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 539tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 540tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 541[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 542tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 543[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 544tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 545[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 546tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 547[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 548tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 549[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 550tests/cli/test_claude.py::test_generates_uv_run_command 551[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_generates_uv_run_command 552tests/cli/test_claude.py::test_file_spec_without_object_suffix 553[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 554tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 555[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 556tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 557[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 558tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 559[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 560tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 561[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 562tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 563[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 564tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 565[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 566tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 567[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 568tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 569[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 570tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 571[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 572tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 573[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 574tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 575[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 576tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 577[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 578tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 579[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 580tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 581[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 582tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 583[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 584tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 585[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 586tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 587[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 588tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 589[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_file_spec_without_object_suffix 590tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 591[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 592tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 593[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 594tests/cli/test_claude.py::test_with_editable_adds_flag 595[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_with_editable_adds_flag 596tests/cli/test_claude.py::test_env_vars_written 597[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_env_vars_written 598tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 599[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 600tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 601[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 602tests/cli/test_claude.py::test_other_servers_preserved 603[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_other_servers_preserved 604tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 605[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 606tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 607[gw0] [ 4%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 608tests/cli/test_claude.py::test_raises_when_config_dir_missing 609[gw3] [ 4%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 610[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 611tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 612[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 613tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 614[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 615tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 616[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 617tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 618[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 619tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 620[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 621tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 622[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 623tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 624[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 625tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 626[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 627tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 628[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 629tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 630[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 631tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 632[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 633tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 634[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 635tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 636[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 637tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 638[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 639tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 640[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 641tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 642[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 643tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 644[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 645tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 646[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 647tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 648[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 649tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 650[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 651tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 652[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 653tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 654[gw8] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 655tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 656[gw2] [ 4%] PASSED tests/client/test_client.py::test_client_with_simple_server 657tests/client/test_client.py::test_client_send_ping 658[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 659tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 660[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 661tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 662[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 663tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 664[gw1] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 665tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 666[gw1] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 667tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 668[gw1] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 669tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 670[gw1] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 671tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 672[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 673tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 674[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 675tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 676[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 677tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 678[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 679tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 680[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 681tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 682[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 683tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 684[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 685tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 686[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 687tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 688[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 689tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 690[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 691tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 692[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 693tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 694[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 695tests/client/test_auth.py::test_union_scopes[dedup] 696[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[dedup] 697tests/client/test_auth.py::test_union_scopes[no-previous] 698[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[no-previous] 699tests/client/test_auth.py::test_union_scopes[no-new] 700[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[no-new] 701tests/client/test_auth.py::test_union_scopes[both-empty] 702[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[both-empty] 703tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 704[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 705tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 706[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 707tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 708[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 709tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 710[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 711tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 712[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 713tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 714[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 715tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 716[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 717tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 718[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 719tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 720[gw6] [ 5%] PASSED tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 721tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 722[gw0] [ 5%] PASSED tests/cli/test_claude.py::test_raises_when_config_dir_missing 723tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 724[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 725tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 726[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 727tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 728[gw4] [ 5%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 729tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] 730[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_oversized_get_event_reconnects_and_delivers_later_messages 731tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 732[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 733tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 734[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 735tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 736tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 737[gw0] [ 5%] PASSED tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 738tests/cli/test_claude.py::test_get_uv_path[None-uv] 739[gw0] [ 5%] PASSED tests/cli/test_claude.py::test_get_uv_path[None-uv] 740tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 741[gw0] [ 5%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 742tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 743[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 744tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 745[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 746tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 747[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 748tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 749[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 750tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 751[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 752tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 753[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 754tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 755[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 756tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 757[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 758tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 759[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 760tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 761[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 762[gw0] [ 5%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 763tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 764tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 765[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 766tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 767[gw1] [ 5%] PASSED tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 768[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 769tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 770tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 771[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 772tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 773[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 774[gw8] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 775[gw1] [ 5%] PASSED tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 776tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 777[gw1] [ 5%] PASSED tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 778[gw5] [ 5%] PASSED tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 779tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add-add-False] 780[gw6] [ 6%] PASSED tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 781tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 782[gw0] [ 6%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 783tests/cli/test_utils.py::test_parse_file_path_missing 784[gw0] [ 6%] PASSED tests/cli/test_utils.py::test_parse_file_path_missing 785tests/cli/test_utils.py::test_parse_file_exit_on_dir 786[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add-add-False] 787[gw0] [ 6%] PASSED tests/cli/test_utils.py::test_parse_file_exit_on_dir 788tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 789[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 790tests/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/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 792[gw2] [ 6%] PASSED tests/client/test_client.py::test_client_send_ping 793tests/client/test_client.py::test_client_list_tools 794tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 795[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] 796tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[ add-=?base64?IGFkZA==?=-True] 797[gw0] [ 6%] PASSED tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 798tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 799tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 800[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 801tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 802[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 803tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 804[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 805tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 806[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 807tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 808[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 809tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial005.py] 810[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial005.py] 811tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial001.py] 812[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial001.py] 813tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] 814[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] 815tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] 816[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] 817tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] 818[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] 819tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] 820[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] 821tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial003.py] 822[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial003.py] 823tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial001.py] 824[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial001.py] 825tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial002.py] 826[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial002.py] 827tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial003.py] 828[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial003.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[ add-=?base64?IGFkZA==?=-True] 830tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add -=?base64?YWRkIA==?=-True] 831[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] 832tests/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] 833[gw1] [ 6%] PASSED tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 834tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 835[gw0] [ 6%] PASSED tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 836tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 837[gw0] [ 6%] PASSED tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 838tests/cli/test_utils.py::test_get_npx_unix_like 839[gw0] [ 6%] PASSED tests/cli/test_utils.py::test_get_npx_unix_like 840tests/cli/test_utils.py::test_get_npx_windows 841[gw0] [ 6%] PASSED tests/cli/test_utils.py::test_get_npx_windows 842tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 843[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] 844tests/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] 845[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] 846tests/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] 847[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] 848tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial004.py] 849[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial004.py] 850tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial001.py] 851[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial001.py] 852tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial002.py] 853[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial002.py] 854tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial003.py] 855[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial003.py] 856tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 857[gw1] [ 6%] PASSED tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 858tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 859[gw0] [ 6%] PASSED tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 860tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 861tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial004.py] 862[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial004.py] 863tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial001.py] 864[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial001.py] 865tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial002.py] 866[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial002.py] 867tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial003.py] 868[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial003.py] 869tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial004.py] 870[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial004.py] 871tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial001.py] 872[gw2] [ 6%] PASSED tests/client/test_client.py::test_client_list_tools 873tests/client/test_client.py::test_client_call_tool 874[gw8] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial001.py] 875tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 876[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 877tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 878[gw3] [ 6%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 879tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 880[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 881tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 882[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 883tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 884[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 885tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 886[gw3] [ 6%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 887[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 888tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 889tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 890[gw5] [ 6%] PASSED tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 891[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 892tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 893[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 894tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 895tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 896tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial002.py] 897[gw3] [ 6%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 898[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 899tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 900tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 901[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 902tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 903[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 904tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 905[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial002.py] 906[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 907tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003.py] 908[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003.py] 909tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 910tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003_client.py] 911[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 912[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003_client.py] 913tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004.py] 914[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004.py] 915tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004_client.py] 916[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004_client.py] 917tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial005.py] 918[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial005.py] 919tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006.py] 920tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 921[gw3] [ 7%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 922tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 923[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 924tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 925[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 926tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 927[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 928tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 929[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 930[gw3] [ 7%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 931[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 932tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 933tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 934tests/client/test_list_roots_callback.py::test_list_roots_callback 935[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 936tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 937[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 938tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 939[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 940tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 941[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 942tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 943[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 944[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 945[gw4] [ 7%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] 946tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 947tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 948[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 949tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 950tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 951[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 952tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 953[gw4] [ 7%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 954[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 955tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits 956tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 957[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 958tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] 959[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006.py] 960[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 961[gw3] [ 7%] PASSED tests/client/test_list_roots_callback.py::test_list_roots_callback 962tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 963[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] 964tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] 965tests/client/test_logging_callback.py::test_logging_callback 966[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 967tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 968[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] 969tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 970[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 971tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 972tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006_client.py] 973[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 974tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 975[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006_client.py] 976tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007.py] 977[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007.py] 978tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007_client.py] 979[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007_client.py] 980tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001.py] 981[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 982[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001.py] 983tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 984tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001_client.py] 985[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001_client.py] 986tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial001.py] 987[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial001.py] 988tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial002.py] 989[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 990[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial002.py] 991tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 992tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial003.py] 993[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial003.py] 994tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial004.py] 995[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial004.py] 996tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial001.py] 997[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial001.py] 998tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial002.py] 999[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial002.py] 1000tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial003.py] 1001[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/header_parameters/tutorial003.py] 1002tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial001.py] 1003[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial001.py] 1004tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial002.py] 1005[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/identity_assertion/tutorial002.py] 1006[gw5] [ 7%] PASSED tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 1007tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/index/tutorial001.py] 1008tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 1009[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/index/tutorial001.py] 1010tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001.py] 1011[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001.py] 1012tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001_client.py] 1013[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial001_client.py] 1014tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial002.py] 1015[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial002.py] 1016tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial003.py] 1017[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/legacy_clients/tutorial003.py] 1018tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial001.py] 1019[gw8] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial001.py] 1020tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial002.py] 1021[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lifespan/tutorial002.py] 1022tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/logging/tutorial001.py] 1023[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/logging/tutorial001.py] 1024tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial001.py] 1025[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial001.py] 1026tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial002.py] 1027[gw1] [ 8%] PASSED tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 1028tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 1029[gw1] [ 8%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 1030[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial002.py] 1031tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial003.py] 1032tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 1033[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial003.py] 1034tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial004.py] 1035[gw1] [ 8%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 1036tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1037[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial004.py] 1038tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial005.py] 1039[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial005.py] 1040tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial006.py] 1041[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial006.py] 1042tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial007.py] 1043[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/lowlevel/tutorial007.py] 1044tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial001.py] 1045[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial001.py] 1046tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial002.py] 1047[gw5] [ 8%] PASSED tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 1048tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 1049[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial002.py] 1050tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial003.py] 1051[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial003.py] 1052tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial004.py] 1053[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial004.py] 1054tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial005.py] 1055[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1056[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/media/tutorial005.py] 1057tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial001.py] 1058[gw5] [ 8%] PASSED tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 1059tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1060tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 1061[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial001.py] 1062tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial002.py] 1063[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/middleware/tutorial002.py] 1064tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial001.py] 1065[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial001.py] 1066tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial002.py] 1067[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial002.py] 1068tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial003.py] 1069[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial003.py] 1070tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial004.py] 1071[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial004.py] 1072tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial005.py] 1073[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/mrtr/tutorial005.py] 1074tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial001.py] 1075[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial001.py] 1076tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial002.py] 1077[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/oauth_clients/tutorial002.py] 1078[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 1079tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/opentelemetry/tutorial001.py] 1080[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/opentelemetry/tutorial001.py] 1081tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial001.py] 1082[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial001.py] 1083tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial002.py] 1084[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/pagination/tutorial002.py] 1085tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial001.py] 1086[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial001.py] 1087tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1088tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial002.py] 1089[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/progress/tutorial002.py] 1090tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial001.py] 1091[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial001.py] 1092tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial002.py] 1093[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial002.py] 1094tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial003.py] 1095[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial003.py] 1096tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial004.py] 1097[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial004.py] 1098tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial005.py] 1099[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial005.py] 1100tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial006.py] 1101[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/prompts/tutorial006.py] 1102tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial001.py] 1103[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial001.py] 1104tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial002.py] 1105[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial002.py] 1106tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial003.py] 1107[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial003.py] 1108tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial004.py] 1109[gw9] [ 8%] PASSED tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 1110tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 1111[gw9] [ 8%] PASSED tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 1112tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 1113[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1114tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1115[gw9] [ 8%] PASSED tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 1116tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text 1117[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1118tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1119[gw9] [ 8%] PASSED tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text 1120tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources 1121[gw9] [ 8%] PASSED tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources 1122tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 1123[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/protocol_versions/tutorial004.py] 1124tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/real_host/tutorial001.py] 1125[gw9] [ 8%] PASSED tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 1126tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 1127[gw9] [ 8%] PASSED tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 1128[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/real_host/tutorial001.py] 1129tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial001.py] 1130[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial001.py] 1131tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial002.py] 1132[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial002.py] 1133tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial003.py] 1134[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/resources/tutorial003.py] 1135tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial001.py] 1136[gw8] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial001.py] 1137tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial002.py] 1138[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial002.py] 1139tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial003.py] 1140[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/run/tutorial003.py] 1141tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial001.py] 1142[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial001.py] 1143tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial002.py] 1144[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/sampling_and_roots/tutorial002.py] 1145tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial001.py] 1146tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 1147[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial001.py] 1148tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial002.py] 1149[gw5] [ 9%] PASSED tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 1150[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial002.py] 1151tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial003.py] 1152tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1153[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial003.py] 1154tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial004.py] 1155[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/session_groups/tutorial004.py] 1156tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial001.py] 1157[gw5] [ 9%] PASSED tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 1158[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial001.py] 1159tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial002.py] 1160[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial002.py] 1161tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial003.py] 1162tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1163[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial003.py] 1164tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial004.py] 1165[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial004.py] 1166tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial005.py] 1167[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial005.py] 1168tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial006.py] 1169[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial006.py] 1170tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial007.py] 1171[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial007.py] 1172tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial008.py] 1173[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial008.py] 1174tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial009.py] 1175[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/structured_output/tutorial009.py] 1176tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial001.py] 1177[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial001.py] 1178tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial002.py] 1179[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/subscriptions/tutorial002.py] 1180tests/docs_src/test_whats_new.py::test_the_advertised_schema_is_the_literal_dict 1181[gw5] [ 9%] PASSED tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 1182tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1183[gw8] [ 9%] PASSED tests/docs_src/test_whats_new.py::test_the_advertised_schema_is_the_literal_dict 1184tests/docs_src/test_whats_new.py::test_a_valid_call_answers 1185[gw1] [ 9%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1186tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1187[gw0] [ 9%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1188tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1189[gw8] [ 9%] PASSED tests/docs_src/test_whats_new.py::test_a_valid_call_answers 1190tests/docs_src/test_whats_new.py::test_arguments_are_not_validated_and_a_handler_exception_is_sanitized 1191[gw1] [ 9%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1192[gw9] [ 9%] PASSED tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 1193tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1194[gw5] [ 9%] PASSED tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 1195tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 1196tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1197[gw1] [ 9%] PASSED tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1198tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1199[gw1] [ 9%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1200tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1201[gw5] [ 9%] PASSED tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 1202tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1203[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] 1204[gw9] [ 9%] PASSED tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 1205tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1206tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 1207[gw1] [ 9%] PASSED tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1208tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1209[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1210[gw9] [ 9%] PASSED tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 1211tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1212tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 1213[gw1] [ 9%] PASSED tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1214tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1215[gw0] [ 9%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1216[gw1] [ 9%] PASSED tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1217tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 1218tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1219[gw9] [ 9%] PASSED tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 1220[gw1] [ 9%] PASSED tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1221tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 1222tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1223[gw1] [ 9%] PASSED tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1224tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1225[gw1] [ 9%] PASSED tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1226tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1227[gw1] [ 9%] PASSED tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1228tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1229[gw9] [ 9%] PASSED tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 1230tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 1231[gw1] [ 9%] PASSED tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1232tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1233[gw1] [ 9%] PASSED tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1234tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1235[gw1] [ 9%] PASSED tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1236tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1237[gw9] [ 9%] PASSED tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 1238tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 1239[gw9] [ 9%] PASSED tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 1240tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 1241[gw9] [ 9%] PASSED tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 1242[gw0] [ 9%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 1243tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 1244tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 1245[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1246tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1247[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1248tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1249[gw1] [ 9%] PASSED tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1250tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1251[gw9] [ 9%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 1252tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 1253[gw1] [ 9%] PASSED tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1254tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1255[gw9] [ 9%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 1256tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 1257[gw0] [ 10%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 1258[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1259[gw9] [ 10%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 1260tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1261tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 1262tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 1263[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1264tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1265[gw1] [ 10%] PASSED tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1266[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 1267tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1268tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 1269[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1270[gw9] [ 10%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 1271tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1272tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 1273[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 1274[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1275tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1276tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1277[gw9] [ 10%] PASSED tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 1278[gw1] [ 10%] PASSED tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1279tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 1280tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1281[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1282tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1283[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1284tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1285[gw9] [ 10%] PASSED tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 1286[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1287tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 1288[gw1] [ 10%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1289tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1290tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1291[gw9] [ 10%] PASSED tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 1292[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1293tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 1294[gw1] [ 10%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1295tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1296tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1297[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1298tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1299[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1300tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1301[gw9] [ 10%] PASSED tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 1302tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 1303[gw1] [ 10%] PASSED tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1304tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1305[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1306tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1307[gw1] [ 10%] PASSED tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1308tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1309[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1310[gw9] [ 10%] PASSED tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 1311tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1312tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 1313[gw1] [ 10%] PASSED tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1314tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1315[gw9] [ 10%] PASSED tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 1316tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 1317[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1318[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1319tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1320tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1321[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1322[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1323tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1324tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1325[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1326tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1327[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1328tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1329[gw1] [ 10%] PASSED tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1330tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1331[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1332tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1333[gw1] [ 10%] PASSED tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1334tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1335[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1336tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1337[gw1] [ 10%] PASSED tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1338tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1339[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1340tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1341[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1342tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1343[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1344tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1345[gw1] [ 10%] PASSED tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1346tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1347[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1348tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1349[gw0] [ 10%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1350[gw5] [ 10%] PASSED tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 1351tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1352[gw1] [ 10%] PASSED tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1353tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1354[gw1] [ 10%] PASSED tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1355tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1356tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1357[gw9] [ 10%] PASSED tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 1358tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 1359[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1360[gw0] [ 10%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1361tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1362tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1363[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1364tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1365[gw0] [ 10%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1366[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1367tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1368[gw9] [ 10%] PASSED tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 1369tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 1370tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1371[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1372tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1373[gw9] [ 10%] PASSED tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 1374[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1375tests/docs_src/test_shape.py::test_private_mcp_import_detector 1376[gw1] [ 11%] PASSED tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1377tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1378[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_private_mcp_import_detector 1379tests/docs_src/test_shape.py::test_retired_name_detector 1380[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_retired_name_detector 1381tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 1382[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 1383tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1384[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1385tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1386[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1387tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1388[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1389tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1390[gw8] [ 11%] PASSED tests/docs_src/test_whats_new.py::test_arguments_are_not_validated_and_a_handler_exception_is_sanitized 1391tests/docs_src/test_whats_new.py::test_an_unknown_tool_is_a_deliberate_wire_error 1392tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 1393[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1394[gw8] [ 11%] PASSED tests/docs_src/test_whats_new.py::test_an_unknown_tool_is_a_deliberate_wire_error 1395tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1396[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 1397tests/examples/test_stories.py::test_story[tools-server-in-memory-modern] 1398tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 1399[gw5] [ 11%] PASSED tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 1400tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1401[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 1402tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1403[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1404[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1405tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1406tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1407[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1408[gw5] [ 11%] PASSED tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 1409tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1410tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1411[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1412tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1413[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1414tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1415[gw7] [ 11%] PASSED tests/docs_src/test_first_steps.py::test_call_the_tool 1416[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1417tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 1418tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1419[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1420tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1421[gw7] [ 11%] PASSED tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 1422[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1423tests/docs_src/test_first_steps.py::test_read_the_resource_template 1424tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1425[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1426tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1427[gw7] [ 11%] PASSED tests/docs_src/test_first_steps.py::test_read_the_resource_template 1428[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1429tests/docs_src/test_first_steps.py::test_get_the_prompt 1430tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1431[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1432[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1433tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1434tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1435[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1436[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1437tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1438tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1439[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1440[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1441tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 1442tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1443[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 1444tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 1445[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 1446tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 1447[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 1448tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1449[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1450tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1451[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1452tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1453[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1454tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1455[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1456tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1457[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1458tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1459[gw0] [ 11%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1460[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1461tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1462tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1463[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1464tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1465[gw0] [ 11%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1466tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1467[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1468tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1469[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1470[gw0] [ 11%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1471tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1472[gw7] [ 11%] PASSED tests/docs_src/test_first_steps.py::test_get_the_prompt 1473[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1474tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 1475tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1476[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1477tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1478[gw7] [ 11%] PASSED tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 1479tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 1480[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1481tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1482tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] 1483[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1484tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1485[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] 1486tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] 1487[gw7] [ 11%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 1488[gw0] [ 11%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1489tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 1490[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] 1491tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1492tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 1493[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1494[gw0] [ 12%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 1495tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1496[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 1497tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 1498[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1499[gw0] [ 12%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 1500tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1501tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1502tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 1503[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1504tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1505[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1506[gw4] [ 12%] PASSED tests/client/test_session.py::test_call_tool_accepts_a_null_structured_content_the_output_schema_permits 1507tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1508tests/client/test_session.py::test_call_tool_rejects_a_null_structured_content_the_output_schema_forbids 1509[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1510[gw4] [ 12%] PASSED tests/client/test_session.py::test_call_tool_rejects_a_null_structured_content_the_output_schema_forbids 1511tests/client/test_session.py::test_call_tool_reports_an_absent_structured_content_as_missing_even_when_null_is_permitted 1512[gw4] [ 12%] PASSED tests/client/test_session.py::test_call_tool_reports_an_absent_structured_content_as_missing_even_when_null_is_permitted 1513tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1514tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 1515[gw1] [ 12%] PASSED tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1516[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1517tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1518tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1519[gw4] [ 12%] PASSED tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 1520tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 1521[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1522tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1523[gw6] [ 12%] PASSED tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 1524[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 1525tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 1526tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1527[gw7] [ 12%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 1528tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 1529[gw6] [ 12%] PASSED tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 1530tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 1531[gw0] [ 12%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 1532[gw6] [ 12%] PASSED tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 1533tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 1534[gw6] [ 12%] PASSED tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 1535tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 1536tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 1537[gw6] [ 12%] PASSED tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 1538[gw7] [ 12%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 1539[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1540tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 1541tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1542tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 1543[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1544tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1545[gw6] [ 12%] PASSED tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 1546tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 1547[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1548tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1549[gw7] [ 12%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 1550[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1551tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1552tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 1553[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1554tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1555[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1556tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1557[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1558tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1559[gw6] [ 12%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 1560[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1561tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 1562[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1563[gw7] [ 12%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 1564[gw4] [ 12%] PASSED tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 1565tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1566tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 1567tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 1568[gw4] [ 12%] PASSED tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 1569tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 1570[gw0] [ 12%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 1571tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 1572[gw7] [ 12%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 1573[gw0] [ 12%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 1574tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 1575[gw6] [ 12%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 1576[gw0] [ 12%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 1577tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 1578tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 1579[gw4] [ 12%] PASSED tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 1580tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 1581tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 1582tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1583[gw4] [ 12%] PASSED tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 1584tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 1585[gw6] [ 12%] PASSED tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 1586[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1587tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 1588tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 1589[gw4] [ 12%] PASSED tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 1590tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 1591[gw4] [ 12%] PASSED tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 1592tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 1593[gw4] [ 12%] PASSED tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 1594tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 1595[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 1596[gw0] [ 12%] PASSED tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 1597[gw5] [ 12%] PASSED tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 1598tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1599tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 1600tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 1601[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1602[gw0] [ 12%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 1603tests/client/test_auth.py::test_validate_resource_custom_callback 1604[gw1] [ 12%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1605tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1606[gw0] [ 12%] PASSED tests/client/test_auth.py::test_validate_resource_custom_callback 1607tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 1608tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1609[gw0] [ 12%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 1610tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 1611[gw0] [ 13%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 1612[gw5] [ 13%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 1613tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 1614tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 1615[gw0] [ 13%] PASSED tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 1616tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 1617[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1618[gw0] [ 13%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 1619tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1620tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1621[gw5] [ 13%] PASSED tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 1622[gw0] [ 13%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1623tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds 1624tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 1625[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1626tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1627[gw0] [ 13%] PASSED tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 1628tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 1629[gw0] [ 13%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 1630[gw5] [ 13%] PASSED tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds 1631tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 1632tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce 1633[gw0] [ 13%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 1634tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 1635[gw4] [ 13%] PASSED tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 1636tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 1637[gw7] [ 13%] PASSED tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 1638tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 1639[gw0] [ 13%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 1640tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 1641[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1642tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1643[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1644tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1645[gw4] [ 13%] PASSED tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 1646[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1647tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1648[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1649tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1650[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1651tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1652tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 1653[gw0] [ 13%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 1654tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 1655[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1656tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1657[gw0] [ 13%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 1658[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 1659tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 1660[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1661tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1662[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1663[gw7] [ 13%] PASSED tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 1664tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1665tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 1666[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 1667tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 1668tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 1669[gw0] [ 13%] PASSED tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 1670tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 1671[gw0] [ 13%] PASSED tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 1672[gw1] [ 13%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1673tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1674[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1675tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1676[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1677tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1678[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 1679tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 1680[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1681tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1682[gw6] [ 13%] PASSED tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 1683tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 1684[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1685[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 1686tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 1687[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 1688tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1689tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 1690[gw6] [ 13%] PASSED tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 1691tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 1692[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1693[gw2] [ 13%] PASSED tests/client/test_client.py::test_client_call_tool 1694tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1695[gw6] [ 13%] PASSED tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 1696tests/client/test_client.py::test_read_resource 1697tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 1698[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1699tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1700[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1701tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1702[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1703[gw6] [ 13%] PASSED tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 1704tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 1705tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 1706[gw0] [ 13%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 1707[gw7] [ 13%] PASSED tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 1708tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 1709[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 1710tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 1711[gw6] [ 13%] PASSED tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 1712tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1713tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1714tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 1715[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1716[gw6] [ 13%] PASSED tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 1717[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1718tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 1719tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1720[gw7] [ 13%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 1721tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 1722[gw4] [ 13%] PASSED tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1723tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1724[gw6] [ 13%] PASSED tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 1725tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 1726tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1727[gw0] [ 13%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 1728tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 1729[gw0] [ 14%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 1730tests/client/test_auth.py::test_registration_request_sends_application_type 1731[gw0] [ 14%] PASSED tests/client/test_auth.py::test_registration_request_sends_application_type 1732tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 1733[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1734tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1735[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1736tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1737[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1738[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1739tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1740tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1741[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1742tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1743[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce 1744[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1745tests/client/test_subscriptions.py::test_graceful_server_close_ends_the_loop_cleanly 1746tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 1747[gw3] [ 14%] PASSED tests/client/test_logging_callback.py::test_logging_callback 1748tests/client/test_notification_response.py::test_non_compliant_notification_response 1749[gw2] [ 14%] PASSED tests/client/test_client.py::test_read_resource 1750tests/client/test_client.py::test_read_resource_error_propagates 1751[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_graceful_server_close_ends_the_loop_cleanly 1752tests/client/test_subscriptions.py::test_abrupt_stream_end_raises_subscription_lost 1753[gw3] [ 14%] PASSED tests/client/test_notification_response.py::test_non_compliant_notification_response 1754tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1755[gw2] [ 14%] PASSED tests/client/test_client.py::test_read_resource_error_propagates 1756tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 1757[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_abrupt_stream_end_raises_subscription_lost 1758tests/client/test_subscriptions.py::test_listen_on_a_legacy_connection_raises_the_typed_steer 1759[gw2] [ 14%] PASSED tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 1760tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 1761[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_listen_on_a_legacy_connection_raises_the_typed_steer 1762tests/client/test_subscriptions.py::test_server_rejection_raises_from_enter_not_from_iteration 1763[gw0] [ 14%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 1764tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 1765[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_server_rejection_raises_from_enter_not_from_iteration 1766tests/client/test_subscriptions.py::test_immediate_result_without_ack_opens_already_closed 1767[gw2] [ 14%] PASSED tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 1768tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 1769[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1770[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_immediate_result_without_ack_opens_already_closed 1771[gw0] [ 14%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 1772tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1773tests/client/test_subscriptions.py::test_server_sent_cancelled_for_the_listen_id_raises_subscription_lost 1774tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 1775[gw2] [ 14%] PASSED tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 1776tests/client/test_client.py::test_get_prompt 1777[gw0] [ 14%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 1778[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_server_sent_cancelled_for_the_listen_id_raises_subscription_lost 1779tests/client/test_subscriptions.py::test_exiting_the_context_frees_the_server_slot 1780tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 1781[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1782tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1783[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_exiting_the_context_frees_the_server_slot 1784[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1785tests/client/test_subscriptions.py::test_concurrent_subscriptions_demux_independently 1786[gw0] [ 14%] PASSED tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 1787tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1788tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 1789[gw7] [ 14%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 1790[gw2] [ 14%] PASSED tests/client/test_client.py::test_get_prompt 1791tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial001] 1792[gw0] [ 14%] PASSED tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 1793tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 1794tests/client/test_client.py::test_client_session_property_before_enter 1795[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_concurrent_subscriptions_demux_independently 1796tests/client/test_subscriptions.py::test_change_notifications_still_reach_message_handler 1797[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1798tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1799[gw0] [ 14%] PASSED tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 1800tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 1801[gw5] [ 14%] PASSED tests/client/test_subscriptions.py::test_change_notifications_still_reach_message_handler 1802tests/client/test_subscriptions.py::test_enter_times_out_when_the_ack_never_arrives 1803[gw0] [ 14%] PASSED tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 1804[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1805tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 1806tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1807[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1808[gw0] [ 14%] PASSED tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 1809tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1810tests/client/test_auth.py::test_build_metadata[simple-url] 1811[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1812tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1813[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1814tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1815[gw7] [ 14%] PASSED tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial001] 1816[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1817tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial002] 1818tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 1819[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 1820tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] 1821[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 1822tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 1823[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 1824tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 1825[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] 1826[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 1827tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 1828tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] 1829[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1830[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 1831tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 1832tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1833[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] 1834[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 1835tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 1836tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] 1837[gw7] [ 14%] PASSED tests/docs_src/test_header_parameters.py::test_a_2026_http_client_sends_the_marked_argument_as_a_header_as_well[tutorial002] 1838tests/docs_src/test_header_parameters.py::test_a_call_whose_header_and_body_disagree_is_rejected 1839[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 1840tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 1841[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] 1842[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 1843tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1844tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] 1845[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] 1846tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] 1847[gw4] [ 15%] PASSED tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1848tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client 1849[gw7] [ 15%] PASSED tests/docs_src/test_header_parameters.py::test_a_call_whose_header_and_body_disagree_is_rejected 1850[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] 1851tests/docs_src/test_header_parameters.py::test_a_client_that_has_not_listed_the_tool_is_rejected_then_lists_and_resends_once 1852tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] 1853[gw4] [ 15%] PASSED tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client 1854[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] 1855[gw6] [ 15%] PASSED tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 1856tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] 1857tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 1858[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] 1859tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] 1860[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] 1861[gw6] [ 15%] PASSED tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 1862tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 1863[gw6] [ 15%] PASSED tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 1864tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 1865tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 1866[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 1867[gw6] [ 15%] PASSED tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 1868tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial001.py] 1869tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 1870[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial001.py] 1871tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial002.py] 1872[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial002.py] 1873tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial003.py] 1874[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial003.py] 1875tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 1876[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 1877tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 1878[gw5] [ 15%] PASSED tests/client/test_subscriptions.py::test_enter_times_out_when_the_ack_never_arrives 1879[gw3] [ 15%] PASSED tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1880tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1881tests/client/test_subscriptions.py::test_an_open_stream_outlives_the_session_read_timeout 1882[gw6] [ 15%] PASSED tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 1883tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 1884[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_session_property_before_enter 1885[gw3] [ 15%] PASSED tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1886tests/client/test_client.py::test_client_reentry_raises_runtime_error 1887tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1888[gw6] [ 15%] PASSED tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 1889tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 1890[gw6] [ 15%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 1891tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 1892[gw6] [ 15%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 1893[gw3] [ 15%] PASSED tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1894tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 1895tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1896[gw1] [ 15%] PASSED tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1897[gw6] [ 15%] PASSED tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 1898tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1899tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] 1900[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_reentry_raises_runtime_error 1901tests/client/test_client.py::test_client_send_progress_notification 1902[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 1903tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 1904[gw3] [ 15%] PASSED tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1905tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1906[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_send_progress_notification 1907tests/client/test_client.py::test_client_subscribe_resource 1908[gw3] [ 15%] PASSED tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1909tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1910[gw3] [ 15%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1911tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1912[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_subscribe_resource 1913[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 1914tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 1915tests/client/test_client.py::test_client_unsubscribe_resource 1916[gw3] [ 15%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1917tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1918[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 1919tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 1920[gw3] [ 15%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1921tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1922[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_unsubscribe_resource 1923[gw7] [ 15%] PASSED tests/docs_src/test_header_parameters.py::test_a_client_that_has_not_listed_the_tool_is_rejected_then_lists_and_resends_once 1924[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 1925tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 1926tests/client/test_client.py::test_client_set_logging_level 1927tests/docs_src/test_header_parameters.py::test_a_legacy_http_connection_ignores_the_annotation 1928[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 1929tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 1930[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 1931tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 1932[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 1933tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 1934[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 1935tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 1936[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 1937[gw3] [ 15%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1938tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1939[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_set_logging_level 1940tests/client/test_client.py::test_client_list_resources_with_params 1941tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 1942[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 1943tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 1944[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 1945tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 1946[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 1947tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 1948[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 1949tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1950[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1951tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1952[gw9] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1953tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1954[gw3] [ 15%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1955tests/client/test_session_group.py::test_client_session_group_init 1956tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1957[gw4] [ 15%] PASSED tests/client/test_session_group.py::test_client_session_group_init 1958tests/client/test_session_group.py::test_client_session_group_component_properties 1959[gw3] [ 15%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1960[gw7] [ 15%] PASSED tests/docs_src/test_header_parameters.py::test_a_legacy_http_connection_ignores_the_annotation 1961[gw4] [ 15%] PASSED tests/client/test_session_group.py::test_client_session_group_component_properties 1962tests/client/test_session_group.py::test_client_session_group_call_tool 1963tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1964tests/docs_src/test_header_parameters.py::test_a_connection_that_is_not_http_ignores_the_annotation 1965[gw7] [ 15%] PASSED tests/docs_src/test_header_parameters.py::test_a_connection_that_is_not_http_ignores_the_annotation 1966tests/docs_src/test_header_parameters.py::test_int_and_bool_arguments_can_be_marked 1967[gw1] [ 16%] PASSED tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1968tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1969[gw4] [ 16%] PASSED tests/client/test_session_group.py::test_client_session_group_call_tool 1970[gw7] [ 16%] PASSED tests/docs_src/test_header_parameters.py::test_int_and_bool_arguments_can_be_marked 1971tests/client/test_session_group.py::test_client_session_group_call_tool_forwards_allow_input_required 1972tests/docs_src/test_header_parameters.py::test_any_other_type_is_refused_when_the_tool_is_registered 1973[gw3] [ 16%] PASSED tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1974tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1975[gw4] [ 16%] PASSED tests/client/test_session_group.py::test_client_session_group_call_tool_forwards_allow_input_required 1976tests/client/test_session_group.py::test_client_session_group_connect_to_server 1977[gw7] [ 16%] PASSED tests/docs_src/test_header_parameters.py::test_any_other_type_is_refused_when_the_tool_is_registered 1978tests/docs_src/test_header_parameters.py::test_a_plain_optional_argument_is_refused_and_the_spelled_out_schema_registers 1979[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1980tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1981[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1982tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1983[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1984tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1985[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1986[gw4] [ 16%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server 1987tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1988tests/client/test_session_group.py::test_client_session_group_connect_to_server_with_name_hook 1989[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1990tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1991[gw1] [ 16%] PASSED tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1992tests/client/test_caching.py::test_store_failures_warn_once_per_burst 1993[gw2] [ 16%] PASSED tests/client/test_client.py::test_client_list_resources_with_params 1994tests/client/test_client.py::test_client_list_resource_templates 1995[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1996tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 1997[gw6] [ 16%] PASSED tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[auto] 1998tests/docs_src/test_cancellation.py::test_abandoning_the_call_runs_the_shielded_cleanup_to_the_end[legacy] 1999[gw4] [ 16%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server_with_name_hook 2000[gw9] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] loading 6,894 hidden lines…
8895[gw2] [ 74%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[wrong-type] 8896tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[missing] 8897[gw2] [ 74%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[missing] 8898tests/server/test_transport_security.py::test_validate_request_ignores_content_type_on_get 8899[gw2] [ 74%] PASSED tests/server/test_transport_security.py::test_validate_request_ignores_content_type_on_get 8900[gw9] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 8901tests/server/test_transport_security.py::test_client_disconnect_while_streaming_request_body_is_replayed 8902tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 8903[gw2] [ 74%] PASSED tests/server/test_transport_security.py::test_client_disconnect_while_streaming_request_body_is_replayed 8904tests/server/test_transport_security.py::test_client_disconnect_before_request_body_is_replayed 8905[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 8906[gw8] [ 74%] PASSED tests/server/test_sse_security.py::test_sse_transport_rejects_a_non_positive_body_limit[-1] 8907[gw2] [ 74%] PASSED tests/server/test_transport_security.py::test_client_disconnect_before_request_body_is_replayed 8908tests/server/test_sse_security.py::test_sse_round_trip_delivers_posted_messages_and_streams_responses 8909tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 8910tests/server/test_transport_security.py::test_request_body_chunks_are_replayed_as_one_message 8911[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 8912tests/shared/test_path_security.py::test_is_absolute_path[-False] 8913[gw2] [ 74%] PASSED tests/server/test_transport_security.py::test_request_body_chunks_are_replayed_as_one_message 8914[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[-False] 8915tests/shared/test_path_security.py::test_is_absolute_path[.-False] 8916tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[GET] 8917[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[.-False] 8918tests/shared/test_path_security.py::test_is_absolute_path[..-False] 8919[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[..-False] 8920tests/shared/test_path_security.py::test_is_absolute_path[/-True] 8921[gw2] [ 74%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[GET] 8922tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[PUT] 8923[gw5] [ 74%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[in-memory-2026-07-28] 8924tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[streamable-http-2026-07-28] 8925[gw3] [ 74%] PASSED tests/issues/test_100_tool_listing.py::test_list_tools_returns_all_tools 8926[gw5] [ 74%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_prompt_argument[streamable-http-2026-07-28] 8927[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 8928tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[in-memory-2025-11-25] 8929tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 8930tests/issues/test_129_resource_templates.py::test_resource_templates 8931[gw5] [ 74%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[in-memory-2025-11-25] 8932[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/-True] 8933tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[sse-2025-11-25] 8934[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 8935tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 8936tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 8937[gw3] [ 74%] PASSED tests/issues/test_129_resource_templates.py::test_resource_templates 8938[gw4] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 8939tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 8940tests/issues/test_1338_icons_and_metadata.py::test_icons_and_website_url 8941[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 8942tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 8943[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 8944[gw9] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 8945tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 8946tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 8947[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 8948[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[sse-2025-11-25] 8949tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[streamable-http-2025-11-25] 8950tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 8951[gw7] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 8952[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 8953tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 8954tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 8955[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 8956[gw9] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 8957tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 8958tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 8959[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 8960[gw7] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 8961tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 8962[gw1] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 8963[gw9] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 8964tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 8965tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 8966[gw7] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 8967tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 8968[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[streamable-http-2025-11-25] 8969[gw9] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 8970tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[streamable-http-stateless-2025-11-25] 8971tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 8972[gw7] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 8973tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 8974[gw9] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 8975tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 8976[gw6] [ 75%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[unauthenticated-creator] 8977[gw7] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 8978tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 8979tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[same-client] 8980[gw9] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 8981[gw7] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 8982tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 8983tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 8984[gw9] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 8985[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[streamable-http-stateless-2025-11-25] 8986tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 8987tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[in-memory-2026-07-28] 8988tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 8989[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[in-memory-2026-07-28] 8990[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 8991[gw9] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 8992tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 8993tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 8994tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[streamable-http-2026-07-28] 8995[gw9] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 8996tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 8997[gw2] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[PUT] 8998tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[OPTIONS] 8999[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_resource_template_variable[streamable-http-2026-07-28] 9000[gw9] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9001tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[in-memory-2025-11-25] 9002tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9003[gw9] [ 75%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9004tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9005[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[in-memory-2025-11-25] 9006tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[sse-2025-11-25] 9007[gw9] [ 75%] PASSED tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9008tests/shared/test_otel.py::test_client_and_server_spans 9009[gw2] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[OPTIONS] 9010tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[HEAD] 9011[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[sse-2025-11-25] 9012tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[streamable-http-2025-11-25] 9013[gw2] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[HEAD] 9014tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[DELETE] 9015[gw2] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[DELETE] 9016tests/server/test_transport_security.py::test_request_body_limit_leaves_non_http_scopes_alone 9017[gw2] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_leaves_non_http_scopes_alone 9018tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_caps_none 9019[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[streamable-http-2025-11-25] 9020tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[streamable-http-stateless-2025-11-25] 9021[gw2] [ 75%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_caps_none 9022[gw8] [ 75%] PASSED tests/server/test_sse_security.py::test_sse_round_trip_delivers_posted_messages_and_streams_responses 9023tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_sampling_none 9024tests/server/test_stateless_mode.py::test_list_roots_raises_no_back_channel 9025[gw2] [ 75%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_sampling_none 9026[gw8] [ 75%] PASSED tests/server/test_stateless_mode.py::test_list_roots_raises_no_back_channel 9027tests/server/test_stateless_mode.py::test_send_ping_raises_no_back_channel 9028[gw8] [ 75%] PASSED tests/server/test_stateless_mode.py::test_send_ping_raises_no_back_channel 9029tests/server/test_stateless_mode.py::test_create_message_raises_no_back_channel_without_related_id 9030[gw4] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9031[gw8] [ 75%] PASSED tests/server/test_stateless_mode.py::test_create_message_raises_no_back_channel_without_related_id 9032[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[streamable-http-stateless-2025-11-25] 9033tests/server/test_stateless_mode.py::test_elicit_form_raises_no_back_channel_without_related_id 9034tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[in-memory-2026-07-28] 9035[gw8] [ 75%] PASSED tests/server/test_stateless_mode.py::test_elicit_form_raises_no_back_channel_without_related_id 9036tests/server/test_stateless_mode.py::test_elicit_url_raises_no_back_channel_without_related_id 9037[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[in-memory-2026-07-28] 9038tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[streamable-http-2026-07-28] 9039[gw8] [ 75%] PASSED tests/server/test_stateless_mode.py::test_elicit_url_raises_no_back_channel_without_related_id 9040tests/server/test_stateless_mode.py::test_elicit_deprecated_raises_no_back_channel_without_related_id 9041[gw8] [ 75%] PASSED tests/server/test_stateless_mode.py::test_elicit_deprecated_raises_no_back_channel_without_related_id 9042tests/server/test_stateless_mode.py::test_send_request_raises_no_back_channel_without_related_id 9043[gw8] [ 75%] PASSED tests/server/test_stateless_mode.py::test_send_request_raises_no_back_channel_without_related_id 9044tests/server/test_stateless_mode.py::test_elicit_form_with_related_id_rides_the_request_channel 9045tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9046[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_receives_context_arguments[streamable-http-2026-07-28] 9047tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[in-memory-2025-11-25] 9048[gw8] [ 75%] PASSED tests/server/test_stateless_mode.py::test_elicit_form_with_related_id_rides_the_request_channel 9049tests/server/test_stateless_mode.py::test_send_log_message_rides_the_request_channel_when_opted_in 9050[gw8] [ 75%] PASSED tests/server/test_stateless_mode.py::test_send_log_message_rides_the_request_channel_when_opted_in 9051tests/server/test_stateless_mode.py::test_unrelated_notification_is_dropped_silently 9052[gw8] [ 75%] PASSED tests/server/test_stateless_mode.py::test_unrelated_notification_is_dropped_silently 9053[gw0] [ 75%] PASSED tests/server/test_request_state_boundary.py::test_a_codec_that_raises_during_seal_yields_a_sanitized_internal_error 9054[gw5] [ 75%] PASSED tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[in-memory-2025-11-25] 9055tests/server/test_stateless_mode.py::test_loop_connection_outbound_does_not_raise_no_back_channel 9056tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[sse-2025-11-25] 9057[gw9] [ 75%] PASSED tests/shared/test_otel.py::test_client_and_server_spans 9058[gw8] [ 76%] PASSED tests/server/test_stateless_mode.py::test_loop_connection_outbound_does_not_raise_no_back_channel 9059tests/server/test_stateless_mode.py::test_from_envelope_connection_ping_raises_no_back_channel 9060tests/server/test_request_state_boundary.py::test_a_non_string_principal_fails_closed_when_sealing 9061[gw8] [ 76%] PASSED tests/server/test_stateless_mode.py::test_from_envelope_connection_ping_raises_no_back_channel 9062[gw3] [ 76%] PASSED tests/issues/test_1338_icons_and_metadata.py::test_icons_and_website_url 9063tests/server/test_stdio.py::test_stdio_server_round_trips_messages_over_injected_streams 9064[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9065tests/issues/test_1338_icons_and_metadata.py::test_multiple_icons 9066[gw5] [ 76%] PASSED tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[sse-2025-11-25] 9067tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[streamable-http-2025-11-25] 9068[gw3] [ 76%] PASSED tests/issues/test_1338_icons_and_metadata.py::test_multiple_icons 9069tests/issues/test_1338_icons_and_metadata.py::test_no_icons_or_website 9070tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9071[gw3] [ 76%] PASSED tests/issues/test_1338_icons_and_metadata.py::test_no_icons_or_website 9072tests/issues/test_1363_race_condition_streamable_http.py::test_race_condition_invalid_accept_headers 9073[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9074[gw5] [ 76%] PASSED tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[streamable-http-2025-11-25] 9075tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[streamable-http-stateless-2025-11-25] 9076tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9077[gw6] [ 76%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[same-client] 9078[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9079tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_tools_none 9080[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9081tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[same-client-and-subject] 9082tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9083[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9084[gw5] [ 76%] PASSED tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[streamable-http-stateless-2025-11-25] 9085tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9086[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9087tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9088tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[in-memory-2026-07-28] 9089[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9090tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9091[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9092tests/shared/test_path_security.py::test_safe_join_simple 9093tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9094[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9095tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9096[gw5] [ 76%] PASSED tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[in-memory-2026-07-28] 9097[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_simple 9098tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[streamable-http-2026-07-28] 9099[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9100tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9101tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9102[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9103tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9104[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9105[gw2] [ 76%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_tools_none 9106tests/server/test_validation.py::test_check_sampling_tools_capability_returns_true_when_tools_present 9107[gw2] [ 76%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_true_when_tools_present 9108tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_tools_none 9109[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9110tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9111tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9112[gw6] [ 76%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[same-client-and-subject] 9113tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[both-unauthenticated] 9114[gw2] [ 76%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_tools_none 9115tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tools_provided_but_no_capability 9116[gw2] [ 76%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tools_provided_but_no_capability 9117[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9118tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9119[gw4] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9120tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9121[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9122[gw1] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 9123tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9124tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 9125[gw7] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9126[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9127tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9128[gw6] [ 76%] PASSED tests/server/test_sse_security.py::test_sse_post_requires_the_credential_that_created_the_session[both-unauthenticated] 9129tests/server/test_sse_security.py::test_sse_connect_rejects_a_non_http_scope 9130tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tool_choice_provided_but_no_capability 9131[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9132tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9133[gw2] [ 76%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tool_choice_provided_but_no_capability 9134tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_capability_present 9135[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9136tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9137tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9138[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9139tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9140[gw2] [ 76%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_capability_present 9141[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9142tests/shared/test_streamable_http.py::test_content_type_validation 9143tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_empty_messages 9144[gw2] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_empty_messages 9145[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_content_type_validation 9146tests/shared/test_streamable_http.py::test_json_validation 9147tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_simple_text_messages 9148[gw2] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_simple_text_messages 9149[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_json_validation 9150tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_mixed_with_other_content 9151tests/shared/test_streamable_http.py::test_json_parsing 9152[gw2] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_mixed_with_other_content 9153[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_json_parsing 9154tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_without_previous_tool_use 9155[gw0] [ 76%] PASSED tests/server/test_request_state_boundary.py::test_a_non_string_principal_fails_closed_when_sealing 9156tests/shared/test_streamable_http.py::test_method_not_allowed 9157[gw2] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_without_previous_tool_use 9158tests/server/test_request_state_boundary.py::test_a_non_string_principal_fails_closed_when_verifying 9159tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_previous_message_has_no_tool_use 9160[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_method_not_allowed 9161tests/shared/test_streamable_http.py::test_session_validation 9162[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9163tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9164[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_session_validation 9165tests/shared/test_streamable_http.py::test_session_id_pattern 9166[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_session_id_pattern 9167tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9168[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9169[gw4] [ 76%] PASSED tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9170tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9171tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 9172tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9173[gw2] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_previous_message_has_no_tool_use 9174tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_ids_dont_match_tool_use 9175[gw2] [ 76%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_ids_dont_match_tool_use 9176tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9177[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9178[gw2] [ 76%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9179tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9180[gw2] [ 77%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9181tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9182[gw9] [ 77%] PASSED tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 9183tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9184tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9185[gw2] [ 77%] PASSED tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9186[gw9] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9187tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9188tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 9189[gw7] [ 77%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9190[gw9] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9191tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9192tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9193[gw9] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9194tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9195[gw9] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9196tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9197[gw7] [ 77%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9198tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9199[gw7] [ 77%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9200tests/shared/test_path_security.py::test_safe_join_base_equals_target 9201[gw7] [ 77%] PASSED tests/shared/test_path_security.py::test_safe_join_base_equals_target 9202[gw6] [ 77%] PASSED tests/server/test_sse_security.py::test_sse_connect_rejects_a_non_http_scope 9203[gw9] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9204tests/server/test_sse_security.py::test_sse_connect_rejects_a_disallowed_host 9205tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9206[gw7] [ 77%] PASSED tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9207tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9208tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9209[gw9] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9210tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9211[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9212tests/shared/test_streamable_http.py::test_session_termination 9213[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9214tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9215[gw0] [ 77%] PASSED tests/server/test_request_state_boundary.py::test_a_non_string_principal_fails_closed_when_verifying 9216[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9217tests/server/test_request_state_boundary.py::test_lone_surrogate_arguments_are_digested_not_crashed 9218tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9219[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_session_termination 9220[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9221tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9222tests/shared/test_streamable_http.py::test_response 9223[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9224[gw9] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9225tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9226tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9227[gw1] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 9228tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 9229[gw6] [ 77%] PASSED tests/server/test_sse_security.py::test_sse_connect_rejects_a_disallowed_host 9230tests/server/test_sse_security.py::test_sse_post_without_a_session_id_returns_400 9231[gw0] [ 77%] PASSED tests/server/test_request_state_boundary.py::test_lone_surrogate_arguments_are_digested_not_crashed 9232tests/server/test_request_state_boundary.py::test_lone_surrogate_handler_state_seals_and_restores 9233[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_completion.py::test_completion_against_an_unknown_ref_is_rejected_with_invalid_params[streamable-http-2026-07-28] 9234tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[in-memory-2025-11-25] 9235[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[in-memory-2025-11-25] 9236[gw0] [ 77%] PASSED tests/server/test_request_state_boundary.py::test_lone_surrogate_handler_state_seals_and_restores 9237tests/server/test_request_state_boundary.py::test_lone_surrogate_principal_binds_and_verifies 9238tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[sse-2025-11-25] 9239[gw0] [ 77%] PASSED tests/server/test_request_state_boundary.py::test_lone_surrogate_principal_binds_and_verifies 9240tests/server/test_request_state_boundary.py::test_a_fractional_mint_instant_keeps_the_full_ttl 9241[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[sse-2025-11-25] 9242tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[streamable-http-2025-11-25] 9243[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[streamable-http-2025-11-25] 9244tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[streamable-http-stateless-2025-11-25] 9245[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9246tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9247[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[streamable-http-stateless-2025-11-25] 9248tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[in-memory-2026-07-28] 9249[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9250[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[in-memory-2026-07-28] 9251tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[streamable-http-2026-07-28] 9252tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9253[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9254tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9255[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9256tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9257[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9258[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_completion.py::test_complete_without_handler_is_method_not_found[streamable-http-2026-07-28] 9259tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9260[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9261tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_accepted_content_returns_to_handler[in-memory-2025-11-25] 9262tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9263[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9264tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9265[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9266tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9267[gw7] [ 77%] PASSED tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9268tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9269[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_accepted_content_returns_to_handler[in-memory-2025-11-25] 9270tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_accepted_content_returns_to_handler[sse-2025-11-25] 9271[gw6] [ 77%] PASSED tests/server/test_sse_security.py::test_sse_post_without_a_session_id_returns_400 9272[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_accepted_content_returns_to_handler[sse-2025-11-25] 9273tests/server/test_sse_security.py::test_sse_post_with_a_malformed_session_id_returns_400 9274tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_accepted_content_returns_to_handler[streamable-http-2025-11-25] 9275[gw7] [ 77%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9276tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9277[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_accepted_content_returns_to_handler[streamable-http-2025-11-25] 9278tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_decline_returns_no_content[in-memory-2025-11-25] 9279[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_decline_returns_no_content[in-memory-2025-11-25] 9280tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_decline_returns_no_content[sse-2025-11-25] 9281[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_response 9282tests/shared/test_streamable_http.py::test_json_response 9283[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_decline_returns_no_content[sse-2025-11-25] 9284tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_decline_returns_no_content[streamable-http-2025-11-25] 9285[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_response 9286tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9287[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9288tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9289[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9290tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9291[gw5] [ 77%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_decline_returns_no_content[streamable-http-2025-11-25] 9292tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_cancel_returns_no_content[in-memory-2025-11-25] 9293[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9294tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9295[gw8] [ 77%] PASSED tests/server/test_stdio.py::test_stdio_server_round_trips_messages_over_injected_streams 9296tests/server/test_stdio.py::test_stdio_server_invalid_utf8 9297[gw4] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9298[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_cancel_returns_no_content[in-memory-2025-11-25] 9299tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_cancel_returns_no_content[sse-2025-11-25] 9300tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9301[gw8] [ 78%] PASSED tests/server/test_stdio.py::test_stdio_server_invalid_utf8 9302[gw4] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9303tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9304tests/server/test_stdio.py::test_stdio_server_takes_stdin_off_the_descriptor_table_while_serving 9305[gw1] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 9306tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 9307[gw4] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9308tests/shared/test_streamable_http.py::test_get_sse_stream 9309[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9310tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9311[gw1] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 9312tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 9313[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9314tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9315[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9316tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9317[gw1] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 9318[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9319tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 9320tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9321[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9322tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9323[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9324tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9325[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9326tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9327[gw9] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9328[gw1] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 9329[gw0] [ 78%] PASSED tests/server/test_request_state_boundary.py::test_a_fractional_mint_instant_keeps_the_full_ttl 9330tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 9331tests/server/test_request_state_boundary.py::test_default_principal_distinguishes_two_subjects_of_one_oauth_client 9332tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9333[gw1] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 9334tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 9335[gw9] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9336tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9337[gw7] [ 78%] PASSED tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9338[gw9] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9339tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9340[gw9] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9341tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9342[gw9] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9343tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9344tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9345[gw0] [ 78%] PASSED tests/server/test_request_state_boundary.py::test_default_principal_distinguishes_two_subjects_of_one_oauth_client 9346[gw9] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9347tests/server/test_request_state_boundary.py::test_a_shared_key_policy_without_a_real_name_must_set_an_audience[unnamed] 9348tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9349[gw1] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 9350[gw9] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9351[gw0] [ 78%] PASSED tests/server/test_request_state_boundary.py::test_a_shared_key_policy_without_a_real_name_must_set_an_audience[unnamed] 9352tests/server/test_request_state_boundary.py::test_a_shared_key_policy_without_a_real_name_must_set_an_audience[empty-string] 9353tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9354tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 9355[gw0] [ 78%] PASSED tests/server/test_request_state_boundary.py::test_a_shared_key_policy_without_a_real_name_must_set_an_audience[empty-string] 9356[gw9] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9357tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9358tests/server/test_runner.py::test_connected_runner_propagates_body_exception_unwrapped 9359[gw7] [ 78%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9360[gw4] [ 78%] PASSED tests/shared/test_streamable_http.py::test_get_sse_stream 9361[gw9] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9362tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9363tests/shared/test_sse.py::test_raw_sse_connection 9364[gw9] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9365tests/shared/test_streamable_http.py::test_get_validation 9366tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9367[gw9] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9368[gw0] [ 78%] PASSED tests/server/test_runner.py::test_connected_runner_propagates_body_exception_unwrapped 9369tests/server/test_runner.py::test_runner_handles_initialize_and_populates_connection 9370[gw3] [ 78%] PASSED tests/issues/test_1363_race_condition_streamable_http.py::test_race_condition_invalid_accept_headers 9371tests/shared/test_uri_template.py::test_parse_literal_only 9372[gw1] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 9373tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 9374[gw0] [ 78%] PASSED tests/server/test_runner.py::test_runner_handles_initialize_and_populates_connection 9375tests/server/test_runner.py::test_runner_initialize_opens_gate_but_event_fires_only_after_initialized_notification 9376tests/shared/test_dispatcher.py::test_ctx_progress_is_noop_when_caller_supplied_no_callback[jsonrpc] 9377[gw4] [ 78%] PASSED tests/shared/test_streamable_http.py::test_get_validation 9378[gw7] [ 78%] PASSED tests/shared/test_sse.py::test_raw_sse_connection 9379[gw6] [ 78%] PASSED tests/server/test_sse_security.py::test_sse_post_with_a_malformed_session_id_returns_400 9380tests/server/test_sse_security.py::test_sse_post_with_a_disallowed_host_is_rejected_before_session_lookup 9381[gw9] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_literal_only 9382tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9383[gw9] [ 78%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9384tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9385[gw9] [ 78%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9386[gw0] [ 78%] PASSED tests/server/test_runner.py::test_runner_initialize_opens_gate_but_event_fires_only_after_initialized_notification 9387tests/server/test_runner.py::test_runner_gates_requests_before_initialize 9388tests/shared/test_sse.py::test_sse_client_basic_connection 9389tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9390[gw1] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 9391tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 9392tests/shared/test_uri_template.py::test_is_template[-False] 9393[gw9] [ 78%] PASSED tests/shared/test_uri_template.py::test_is_template[-False] 9394tests/shared/test_uri_template.py::test_is_template[{a}-True] 9395[gw9] [ 78%] PASSED tests/shared/test_uri_template.py::test_is_template[{a}-True] 9396tests/shared/test_uri_template.py::test_is_template[{-False] 9397[gw9] [ 78%] PASSED tests/shared/test_uri_template.py::test_is_template[{-False] 9398tests/shared/test_uri_template.py::test_is_template[}-False] 9399[gw3] [ 78%] PASSED tests/shared/test_dispatcher.py::test_ctx_progress_is_noop_when_caller_supplied_no_callback[jsonrpc] 9400[gw5] [ 78%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_cancel_returns_no_content[sse-2025-11-25] 9401[gw1] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 9402tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_cancel_returns_no_content[streamable-http-2025-11-25] 9403tests/shared/test_dispatcher.py::test_raising_on_progress_callback_is_logged_and_request_still_succeeds[direct] 9404[gw0] [ 78%] PASSED tests/server/test_runner.py::test_runner_gates_requests_before_initialize 9405tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 9406tests/server/test_runner.py::test_runner_unknown_method_before_initialize_raises_method_not_found 9407[gw0] [ 78%] PASSED tests/server/test_runner.py::test_runner_unknown_method_before_initialize_raises_method_not_found 9408[gw1] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 9409tests/server/test_runner.py::test_runner_spec_method_without_handler_before_initialize_raises_method_not_found 9410tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 9411[gw9] [ 78%] PASSED tests/shared/test_uri_template.py::test_is_template[}-False] 9412tests/shared/test_uri_template.py::test_is_template[}{-False] 9413[gw7] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection 9414[gw0] [ 78%] PASSED tests/server/test_runner.py::test_runner_spec_method_without_handler_before_initialize_raises_method_not_found 9415tests/server/test_runner.py::test_runner_custom_method_with_handler_is_still_gated_before_initialize 9416tests/shared/test_sse.py::test_sse_client_on_session_created 9417[gw1] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 9418tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 9419[gw3] [ 79%] PASSED tests/shared/test_dispatcher.py::test_raising_on_progress_callback_is_logged_and_request_still_succeeds[direct] 9420tests/shared/test_dispatcher.py::test_raising_on_progress_callback_is_logged_and_request_still_succeeds[jsonrpc] 9421[gw0] [ 79%] PASSED tests/server/test_runner.py::test_runner_custom_method_with_handler_is_still_gated_before_initialize 9422tests/server/test_runner.py::test_runner_routes_to_handler_and_builds_context 9423[gw1] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 9424tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 9425[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9426tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9427[gw0] [ 79%] PASSED tests/server/test_runner.py::test_runner_routes_to_handler_and_builds_context 9428tests/server/test_runner.py::test_runner_builds_a_fresh_session_per_request 9429[gw5] [ 79%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_cancel_returns_no_content[streamable-http-2025-11-25] 9430[gw7] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created 9431tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_without_callback_is_error[in-memory-2025-11-25] 9432tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9433[gw7] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9434[gw0] [ 79%] PASSED tests/server/test_runner.py::test_runner_builds_a_fresh_session_per_request 9435tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9436tests/server/test_runner.py::test_runner_spec_method_with_no_handler_raises_method_not_found 9437[gw7] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9438[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[}{-False] 9439tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9440[gw0] [ 79%] PASSED tests/server/test_runner.py::test_runner_spec_method_with_no_handler_raises_method_not_found 9441[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9442tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9443[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9444[gw5] [ 79%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_without_callback_is_error[in-memory-2025-11-25] 9445tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_without_callback_is_error[sse-2025-11-25] 9446tests/server/test_runner.py::test_runner_non_spec_method_with_no_handler_raises_method_not_found 9447tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9448[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9449tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9450tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9451[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9452tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9453[gw0] [ 79%] PASSED tests/server/test_runner.py::test_runner_non_spec_method_with_no_handler_raises_method_not_found 9454tests/server/test_runner.py::test_runner_malformed_params_for_unregistered_spec_method_raises_invalid_params 9455[gw0] [ 79%] PASSED tests/server/test_runner.py::test_runner_malformed_params_for_unregistered_spec_method_raises_invalid_params 9456[gw4] [ 79%] PASSED tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9457tests/server/test_runner.py::test_runner_rejects_snake_case_initialize_params 9458tests/shared/test_streamable_http.py::test_client_crash_handled 9459[gw0] [ 79%] PASSED tests/server/test_runner.py::test_runner_rejects_snake_case_initialize_params 9460tests/server/test_runner.py::test_runner_initialize_with_absent_params_returns_invalid_params_and_stays_alive 9461[gw3] [ 79%] PASSED tests/shared/test_dispatcher.py::test_raising_on_progress_callback_is_logged_and_request_still_succeeds[jsonrpc] 9462tests/shared/test_dispatcher.py::test_ctx_message_metadata_is_none_when_transport_attaches_nothing[direct] 9463[gw0] [ 79%] PASSED tests/server/test_runner.py::test_runner_initialize_with_absent_params_returns_invalid_params_and_stays_alive 9464[gw5] [ 79%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_without_callback_is_error[sse-2025-11-25] 9465tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_without_callback_is_error[streamable-http-2025-11-25] 9466tests/server/test_runner.py::test_runner_rejects_snake_case_params_for_custom_handler 9467[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9468[gw3] [ 79%] PASSED tests/shared/test_dispatcher.py::test_ctx_message_metadata_is_none_when_transport_attaches_nothing[direct] 9469tests/shared/test_dispatcher.py::test_ctx_message_metadata_is_none_when_transport_attaches_nothing[jsonrpc] 9470tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9471[gw0] [ 79%] PASSED tests/server/test_runner.py::test_runner_rejects_snake_case_params_for_custom_handler 9472[gw3] [ 79%] PASSED tests/shared/test_dispatcher.py::test_ctx_message_metadata_is_none_when_transport_attaches_nothing[jsonrpc] 9473tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[direct] 9474tests/server/test_runner.py::test_runner_on_notify_drops_snake_case_params 9475[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9476tests/shared/test_uri_template.py::test_parse_simple_variable 9477[gw3] [ 79%] PASSED tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[direct] 9478tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[jsonrpc] 9479[gw3] [ 79%] PASSED tests/shared/test_dispatcher.py::test_ctx_request_id_exposes_inbound_id[jsonrpc] 9480[gw6] [ 79%] PASSED tests/server/test_sse_security.py::test_sse_post_with_a_disallowed_host_is_rejected_before_session_lookup 9481tests/server/test_sse_security.py::test_sse_post_body_over_the_limit_returns_413 9482tests/shared/test_dispatcher.py::test_direct_send_raw_request_wraps_non_mcperror_exception_as_internal_error_with_cause 9483[gw6] [ 79%] PASSED tests/server/test_sse_security.py::test_sse_post_body_over_the_limit_returns_413 9484tests/server/test_sse_security.py::test_sse_post_body_limit_defaults_to_four_mib 9485[gw3] [ 79%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_wraps_non_mcperror_exception_as_internal_error_with_cause 9486[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_simple_variable 9487tests/shared/test_dispatcher.py::test_direct_send_raw_request_issued_before_peer_run_blocks_until_peer_ready 9488[gw5] [ 79%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_without_callback_is_error[streamable-http-2025-11-25] 9489[gw6] [ 79%] PASSED tests/server/test_sse_security.py::test_sse_post_body_limit_defaults_to_four_mib 9490tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_delivers_url_and_returns_accept_without_content[in-memory-2025-11-25] 9491tests/server/test_sse_security.py::test_sse_post_streamed_body_over_the_limit_returns_413 9492[gw3] [ 79%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_issued_before_peer_run_blocks_until_peer_ready 9493tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9494tests/shared/test_dispatcher.py::test_direct_send_raw_request_before_run_raises_runtimeerror 9495[gw6] [ 79%] PASSED tests/server/test_sse_security.py::test_sse_post_streamed_body_over_the_limit_returns_413 9496tests/server/test_sse_security.py::test_sse_post_within_the_limit_reaches_session_lookup 9497[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9498tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9499[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9500tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9501[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9502[gw3] [ 79%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_before_run_raises_runtimeerror 9503tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9504[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9505tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9506tests/shared/test_dispatcher.py::test_direct_send_raw_request_to_never_run_peer_honors_timeout 9507[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9508tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9509[gw5] [ 79%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_delivers_url_and_returns_accept_without_content[in-memory-2025-11-25] 9510[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9511tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9512tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_delivers_url_and_returns_accept_without_content[sse-2025-11-25] 9513[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9514tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9515[gw3] [ 79%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_to_never_run_peer_honors_timeout 9516[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9517tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9518tests/shared/test_dispatcher.py::test_direct_request_parked_waiting_for_peer_run_is_woken_by_peer_close 9519[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9520tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9521[gw9] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9522tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9523[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9524tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9525[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9526tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9527[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9528tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9529[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9530tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9531[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9532tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9533[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9534[gw5] [ 80%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_delivers_url_and_returns_accept_without_content[sse-2025-11-25] 9535[gw8] [ 80%] PASSED tests/server/test_stdio.py::test_stdio_server_takes_stdin_off_the_descriptor_table_while_serving 9536tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_delivers_url_and_returns_accept_without_content[streamable-http-2025-11-25] 9537tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup] 9538[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9539tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9540[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9541tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9542[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9543tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9544tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9545[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9546tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9547[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9548[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9549tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9550tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9551[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9552tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9553[gw6] [ 80%] PASSED tests/server/test_sse_security.py::test_sse_post_within_the_limit_reaches_session_lookup 9554[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9555tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9556tests/server/test_sse_security.py::test_sse_message_endpoint_answers_405_to_non_post[GET] 9557[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9558tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9559[gw6] [ 80%] PASSED tests/server/test_sse_security.py::test_sse_message_endpoint_answers_405_to_non_post[GET] 9560[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9561tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9562[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9563tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9564[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9565tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9566tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[missing-padding] 9567[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9568tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9569[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9570tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9571[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9572[gw5] [ 80%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_delivers_url_and_returns_accept_without_content[streamable-http-2025-11-25] 9573tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9574[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9575tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9576[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9577tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9578tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_decline_returns_no_content[in-memory-2025-11-25] 9579[gw6] [ 80%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[missing-padding] 9580[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9581tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9582tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-alphabet-chars] 9583[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9584tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9585[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9586[gw6] [ 80%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-alphabet-chars] 9587tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9588tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-canonical-trailing-bits] 9589[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9590tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9591[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9592tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9593[gw6] [ 80%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-canonical-trailing-bits] 9594[gw1] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 9595[gw5] [ 80%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_decline_returns_no_content[in-memory-2025-11-25] 9596tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[invalid-utf8] 9597[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9598tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9599tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_decline_returns_no_content[sse-2025-11-25] 9600[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9601tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 9602[gw6] [ 80%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[invalid-utf8] 9603tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_missing_header_for_present_argument 9604[gw1] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 9605tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 9606[gw1] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 9607tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 9608[gw1] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 9609[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9610tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9611[gw5] [ 80%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_decline_returns_no_content[sse-2025-11-25] 9612tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_decline_returns_no_content[streamable-http-2025-11-25] 9613tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9614[gw1] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9615tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9616[gw1] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9617tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9618[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9619tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9620[gw1] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9621tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9622[gw5] [ 80%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_decline_returns_no_content[streamable-http-2025-11-25] 9623tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_cancel_returns_no_content[in-memory-2025-11-25] 9624[gw1] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9625tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9626tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9627[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9628[gw1] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9629tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9630[gw5] [ 80%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_cancel_returns_no_content[in-memory-2025-11-25] 9631tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9632tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_cancel_returns_no_content[sse-2025-11-25] 9633[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9634[gw6] [ 80%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_missing_header_for_present_argument 9635tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[absent] 9636tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9637[gw1] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9638[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9639tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9640tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 9641[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9642tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9643[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9644[gw3] [ 80%] PASSED tests/shared/test_dispatcher.py::test_direct_request_parked_waiting_for_peer_run_is_woken_by_peer_close 9645tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9646tests/shared/test_dispatcher.py::test_direct_send_raw_request_after_local_close_raises_and_notify_is_dropped 9647[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9648tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9649[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9650tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9651[gw9] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9652[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_after_local_close_raises_and_notify_is_dropped 9653[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9654tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9655tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9656tests/shared/test_dispatcher.py::test_direct_inbound_after_peer_close_refuses_requests_and_drops_notifications 9657[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9658tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9659[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9660[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9661tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9662[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_direct_inbound_after_peer_close_refuses_requests_and_drops_notifications 9663tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9664[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9665tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9666[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9667tests/shared/test_dispatcher.py::test_direct_inbound_to_closed_never_run_peer_fails_with_connection_closed 9668tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9669[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9670[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9671tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9672[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9673tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 9674[gw5] [ 81%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_cancel_returns_no_content[sse-2025-11-25] 9675[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_direct_inbound_to_closed_never_run_peer_fails_with_connection_closed 9676tests/shared/test_dispatcher.py::test_direct_send_raw_request_and_notify_raise_runtimeerror_when_no_peer_connected 9677tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_cancel_returns_no_content[streamable-http-2025-11-25] 9678[gw0] [ 81%] PASSED tests/server/test_runner.py::test_runner_on_notify_drops_snake_case_params 9679[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_and_notify_raise_runtimeerror_when_no_peer_connected 9680[gw8] [ 81%] PASSED tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup] 9681tests/shared/test_dispatcher.py::test_direct_close_makes_run_return 9682[gw4] [ 81%] PASSED tests/shared/test_streamable_http.py::test_client_crash_handled 9683tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2] 9684tests/server/test_runner.py::test_runner_on_notify_drops_a_spec_notification_absent_at_the_negotiated_version 9685[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_direct_close_makes_run_return 9686tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9687tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[direct] 9688[gw4] [ 81%] PASSED tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9689[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[direct] 9690tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[jsonrpc] 9691[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_honors_caller_supplied_request_id_verbatim_typed[jsonrpc] 9692[gw6] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[absent] 9693tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[direct] 9694tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[null] 9695[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[direct] 9696tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9697tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[jsonrpc] 9698[gw6] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[null] 9699[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 9700tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_value_mismatch 9701[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9702[gw6] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_value_mismatch 9703tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_absent_argument_with_no_header 9704tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9705[gw6] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_absent_argument_with_no_header 9706tests/shared/test_inbound.py::test_validate_mcp_param_headers_matches_header_names_case_insensitively 9707[gw6] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_matches_header_names_case_insensitively 9708[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9709[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[jsonrpc] 9710tests/shared/test_inbound.py::test_validate_mcp_param_headers_ignores_undeclared_mcp_param_headers 9711tests/shared/test_uri_template.py::test_parse_multiple_expressions 9712[gw6] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_ignores_undeclared_mcp_param_headers 9713tests/shared/test_inbound.py::test_validate_mcp_param_headers_validates_nothing_for_an_invalid_annotation_schema 9714tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[direct] 9715[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_expressions 9716tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9717[gw6] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_validates_nothing_for_an_invalid_annotation_schema 9718tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths 9719[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9720tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9721tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9722[gw6] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths 9723tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering 9724[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9725tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9726[gw6] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering 9727tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] 9728[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[direct] 9729[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9730tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9731[gw6] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] 9732tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] 9733tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[jsonrpc] 9734[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9735tests/shared/test_uri_template.py::test_parse_explode_modifier 9736[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_explode_modifier 9737tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9738tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9739[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[jsonrpc] 9740tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[direct] 9741[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9742[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9743tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 9744[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[direct] 9745tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9746[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 9747tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[jsonrpc] 9748tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9749[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9750[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9751tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9752[gw6] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] 9753[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9754tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9755tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] 9756[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[jsonrpc] 9757tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[direct] 9758[gw6] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] 9759tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9760[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[direct] 9761[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9762tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[jsonrpc] 9763tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] 9764[gw0] [ 81%] PASSED tests/server/test_runner.py::test_runner_on_notify_drops_a_spec_notification_absent_at_the_negotiated_version 9765[gw3] [ 81%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[jsonrpc] 9766[gw6] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] 9767tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9768tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[direct] 9769tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] 9770[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] 9771[gw0] [ 82%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9772tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] 9773tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9774[gw3] [ 82%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[direct] 9775[gw0] [ 82%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9776tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9777tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9778[gw0] [ 82%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9779tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9780tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[jsonrpc] 9781[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9782[gw0] [ 82%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9783tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9784[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9785tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9786[gw3] [ 82%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[jsonrpc] 9787[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9788tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9789tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[direct] 9790tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9791[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9792tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9793[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9794tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9795[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9796tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9797[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9798tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9799[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9800[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9801tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9802tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9803[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9804tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9805[gw0] [ 82%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9806[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9807tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9808tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9809[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9810tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9811[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] 9812[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9813tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9814[gw3] [ 82%] PASSED tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[direct] 9815[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9816tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9817tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[jsonrpc] 9818[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9819tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 9820tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] 9821[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 9822[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] 9823tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9824tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] 9825[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9826[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] 9827tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9828tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 9829[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9830tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9831[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 9832tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 9833[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9834[gw0] [ 82%] PASSED tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9835[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 9836tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9837tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 9838[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9839[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 9840tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 9841tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 9842[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 9843[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 9844tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9845tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 9846tests/shared/test_sse.py::test_sse_client_exception_handling 9847[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9848[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 9849tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9850tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 9851[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 9852[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9853tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 9854tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 9855[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 9856[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 9857tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 9858tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 9859[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9860[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 9861[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 9862tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 9863tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 9864[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 9865tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9866tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 9867[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 9868tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 9869[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9870[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 9871tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 9872[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 9873tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9874tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 9875[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 9876[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9877tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9878[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 9879tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9880tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 9881[gw6] [ 82%] PASSED tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9882[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9883tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9884[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 9885tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 9886[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9887tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9888[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 9889tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 9890[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9891tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9892[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 9893tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 9894[gw1] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 9895[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9896tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9897[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 9898tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 9899[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9900tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9901[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 9902tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 9903tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 9904[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9905tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9906[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 9907[gw0] [ 83%] PASSED tests/shared/test_sse.py::test_sse_client_exception_handling 9908[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9909tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9910[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9911tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9912[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9913tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9914tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9915[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9916tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9917[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9918[gw1] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 9919tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9920[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9921tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9922[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9923tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 9924tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9925[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9926tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 9927[gw8] [ 83%] PASSED tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2] 9928tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2_destroys_target] 9929[gw1] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 9930tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 9931[gw0] [ 83%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9932tests/shared/test_sse.py::test_request_context_propagation 9933[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9934tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 9935[gw1] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 9936tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9937tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 9938[gw0] [ 83%] PASSED tests/shared/test_sse.py::test_request_context_propagation 9939[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9940tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9941[gw2] [ 83%] PASSED tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 9942tests/shared/test_sse.py::test_request_context_isolation 9943[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9944tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 9945tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9946[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9947tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9948[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9949tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9950[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9951tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9952[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 9953[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 9954[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9955tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9956tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9957[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9958tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9959tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 9960[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9961tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9962[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9963[gw8] [ 83%] PASSED tests/server/test_stdio.py::test_stdio_server_reads_stdin_in_place_when_descriptor_isolation_fails[dup2_destroys_target] 9964tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 9965tests/server/test_stdio.py::test_stdio_server_exits_cleanly_when_the_stdin_restore_fails 9966[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 9967[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 9968[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9969tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 9970tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 9971[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 9972tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 9973tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9974[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 9975tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 9976[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 9977tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 9978[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 9979[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9980tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 9981[gw9] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 9982tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 9983tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9984[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 9985[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9986tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9987tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 9988[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 9989[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9990tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9991[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9992tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9993tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 9994[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9995tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9996[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9997tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9998[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9999[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 10000tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 10001tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10002[gw1] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 10003tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 10004[gw7] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10005tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10006[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 10007tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 10008tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 10009[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 10010tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 10011[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10012tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10013[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 10014tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 10015[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10016tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10017[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 10018tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 10019[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10020tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10021[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 10022tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 10023[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10024tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10025[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 10026tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 10027[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10028[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 10029tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10030tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 10031[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10032[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 10033tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10034[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 10035tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 10036[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10037tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10038[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 10039tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 10040[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10041tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10042[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10043[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 10044tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10045tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 10046[gw7] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10047[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 10048tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 10049[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 10050tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 10051[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 10052[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 10053tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 10054[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 10055tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 10056tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 10057[gw3] [ 84%] PASSED tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[jsonrpc] 10058[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 10059tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 10060[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 10061tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 10062tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_single_elicitation 10063[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 10064tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10065[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10066tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10067[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10068[gw3] [ 84%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_single_elicitation 10069tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10070tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations 10071[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10072tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10073[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 10074[gw3] [ 84%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations 10075tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 10076[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10077tests/shared/test_exceptions.py::test_url_elicitation_required_error_custom_message 10078tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10079[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 10080[gw3] [ 84%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_custom_message 10081tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 10082[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 10083tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 10084tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data 10085[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 10086[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 10087[gw3] [ 84%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data 10088[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10089tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data_wrong_code 10090tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 10091[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 10092tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 10093tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 10094[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 10095tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10096[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10097tests/shared/test_uri_template.py::test_match_escapes_template_literals 10098tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 10099[gw3] [ 84%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_from_error_data_wrong_code 10100tests/shared/test_exceptions.py::test_url_elicitation_required_error_serialization_roundtrip 10101[gw3] [ 84%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_serialization_roundtrip 10102[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 10103tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 10104[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_escapes_template_literals 10105tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10106tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations 10107[gw6] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 10108[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 10109tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 10110[gw3] [ 84%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_data_contains_elicitations 10111tests/shared/test_exceptions.py::test_url_elicitation_required_error_inherits_from_mcp_error 10112tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 10113[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10114tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10115[gw3] [ 84%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_inherits_from_mcp_error 10116[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 10117tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 10118tests/shared/test_exceptions.py::test_url_elicitation_required_error_exception_message 10119[gw9] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 10120[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10121tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 10122[gw3] [ 84%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_exception_message 10123tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10124[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 10125tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 10126[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 10127[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10128tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10129[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10130tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10131tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 10132[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 10133tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 10134[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 10135tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 10136tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10137[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 10138tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 10139[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10140tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10141[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 10142tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 10143tests/test_examples.py::test_docs_examples[README.md:90-103] 10144[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 10145tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 10146[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_url_cancel_returns_no_content[streamable-http-2025-11-25] 10147tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_notification_carries_the_elicited_id_back_to_the_client[in-memory-2025-11-25] 10148[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 10149tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 10150[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10151[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 10152tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10153tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 10154[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10155tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10156[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10157[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 10158tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 10159[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 10160[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 10161tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 10162tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 10163[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_notification_carries_the_elicited_id_back_to_the_client[in-memory-2025-11-25] 10164[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 10165tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 10166[gw4] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10167tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_notification_carries_the_elicited_id_back_to_the_client[sse-2025-11-25] 10168tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 10169[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 10170tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 10171tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10172[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 10173tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 10174[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 10175[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10176tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10177[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10178tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10179tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10180tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10181[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 10182[gw5] [ 85%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_notification_carries_the_elicited_id_back_to_the_client[sse-2025-11-25] 10183tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_notification_carries_the_elicited_id_back_to_the_client[streamable-http-2025-11-25] 10184tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 10185[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 10186[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 10187tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 10188tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 10189[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 10190[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10191tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 10192[gw8] [ 85%] PASSED tests/server/test_stdio.py::test_stdio_server_exits_cleanly_when_the_stdin_restore_fails 10193tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10194tests/server/test_stdio.py::test_stdio_server_takes_stdout_off_the_descriptor_table_while_serving 10195[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 10196tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 10197[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 10198[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 10199tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10200[gw6] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10201tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10202tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 10203[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10204[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 10205tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10206tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 10207[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[README.md:90-103] 10208[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10209tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10210tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10211[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10212tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10213[gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10214[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10215tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10216tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10217[gw9] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10218tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10219[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10220[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 10221tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 10222tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10223[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 10224[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10225[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10226tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10227[gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10228tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10229tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10230[gw9] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10231tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10232[gw6] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10233tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10234tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 10235[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 10236[gw7] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10237tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10238[gw1] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10239tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10240[gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10241tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 10242tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10243[gw9] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10244[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 10245tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10246tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 10247[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 10248tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 10249[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_request_context_isolation 10250tests/shared/test_sse.py::test_sse_message_id_coercion 10251[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_sse_message_id_coercion 10252tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 10253[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 10254tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 10255[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 10256[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 10257tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 10258[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 10259tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 10260tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 10261[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 10262[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10263[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 10264tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 10265tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10266[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 10267tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 10268[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 10269tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 10270[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 10271tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 10272[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10273[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10274tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10275[gw7] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10276tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10277tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10278[gw7] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10279tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10280[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicitation_complete_notification_carries_the_elicited_id_back_to_the_client[streamable-http-2025-11-25] 10281tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[in-memory-2025-11-25] 10282[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 10283tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 10284[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 10285tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 10286[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 10287[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[in-memory-2025-11-25] 10288[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10289tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[sse-2025-11-25] 10290tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10291[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10292tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10293[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10294tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10295[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10296tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10297tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 10298tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10299[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10300tests/shared/test_uri_template.py::test_match_no_match[static-different] 10301[gw7] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10302tests/shared/test_uri_template.py::test_match_never_raises 10303[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10304tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10305[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 10306[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_no_match[static-different] 10307[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10308[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10309tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10310[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10311tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10312tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10313tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 10314[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 10315tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 10316[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 10317tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 10318[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 10319[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[sse-2025-11-25] 10320tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 10321tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[streamable-http-2025-11-25] 10322[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10323[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10324tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10325[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10326tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10327tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10328tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 10329[gw3] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 10330tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10331[gw8] [ 86%] PASSED tests/server/test_stdio.py::test_stdio_server_takes_stdout_off_the_descriptor_table_while_serving 10332[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[streamable-http-2025-11-25] 10333tests/server/test_stdio.py::test_stdio_server_diverts_stdout_to_the_null_device_when_stderr_is_unusable 10334tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[streamable-http-stateless-2025-11-25] 10335[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 10336tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 10337[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10338[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 10339tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 10340tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10341[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 10342[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_url_elicitation_required_error_carries_pending_elicitations[streamable-http-stateless-2025-11-25] 10343tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 10344tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_schema_with_every_primitive_and_enum_type_reaches_the_callback_as_sent[in-memory-2025-11-25] 10345[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10346[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_schema_with_every_primitive_and_enum_type_reaches_the_callback_as_sent[in-memory-2025-11-25] 10347tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_schema_with_every_primitive_and_enum_type_reaches_the_callback_as_sent[sse-2025-11-25] 10348tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10349[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10350tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10351[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10352tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10353[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10354[gw5] [ 86%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_schema_with_every_primitive_and_enum_type_reaches_the_callback_as_sent[sse-2025-11-25] 10355tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10356tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_schema_with_every_primitive_and_enum_type_reaches_the_callback_as_sent[streamable-http-2025-11-25] 10357[gw6] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10358tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10359[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10360[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10361tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10362tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10363[gw5] [ 87%] PASSED tests/interaction/lowlevel/test_elicitation.py::test_elicit_form_schema_with_every_primitive_and_enum_type_reaches_the_callback_as_sent[streamable-http-2025-11-25] 10364tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 10365[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10366[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10367[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 10368tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 10369tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10370tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10371[gw7] [ 87%] PASSED tests/shared/test_uri_template.py::test_match_never_raises 10372[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10373[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10374[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10375tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10376tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10377tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10378[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10379tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10380tests/test_examples.py::test_simple_echo 10381[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10382tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10383[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10384tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10385[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10386tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10387[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10388[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10389tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10390tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10391[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10392tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10393[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10394[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10395tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10396tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10397[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10398tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10399[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10400tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10401[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10402[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10403tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10404tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10405[gw8] [ 87%] PASSED tests/server/test_stdio.py::test_stdio_server_diverts_stdout_to_the_null_device_when_stderr_is_unusable 10406tests/server/test_stdio.py::test_a_second_stdio_server_on_the_same_process_streams_is_refused 10407[gw0] [ 87%] PASSED tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 10408[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10409[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 10410tests/shared/test_streamable_http.py::test_accept_header_validation 10411tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10412[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10413[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10414tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 10415tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10416tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10417[gw0] [ 87%] PASSED tests/shared/test_streamable_http.py::test_accept_header_validation 10418tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 10419[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10420tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10421[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 10422tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 10423[gw0] [ 87%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 10424[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 10425tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 10426[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 10427tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 10428[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10429tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 10430tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10431[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 10432tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 10433[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 10434tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 10435[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 10436tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 10437[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 10438[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10439[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10440[gw0] [ 87%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 10441tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10442tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10443tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 10444tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 10445[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10446[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10447[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10448tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10449tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10450[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 10451tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10452[gw0] [ 87%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 10453tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 10454tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 10455[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10456[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 10457tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 10458[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10459[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 10460tests/shared/test_uri_template.py::test_equality_based_on_template_string 10461tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10462tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10463[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10464[gw0] [ 87%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 10465[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10466tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 10467tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10468[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10469tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10470tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10471[gw0] [ 87%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 10472tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10473[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_equality_based_on_template_string 10474tests/shared/test_uri_template.py::test_frozen 10475[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_frozen 10476tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 10477[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 10478[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10479[gw7] [ 88%] PASSED tests/test_examples.py::test_simple_echo 10480tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10481tests/test_examples.py::test_complex_inputs 10482[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10483[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10484tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10485tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10486[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10487tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 10488tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10489[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 10490tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 10491[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10492tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10493[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 10494tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 10495[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 10496tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 10497[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10498[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 10499tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 10500[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10501tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10502tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10503[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10504tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10505[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10506tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10507[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10508[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10509tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10510tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10511[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10512tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10513[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10514tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10515[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 10516tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 10517[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 10518tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 10519[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10520[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 10521tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10522tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 10523[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 10524tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 10525[gw5] [ 88%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 10526[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10527[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10528tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10529tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10530[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10531tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10532[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10533[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10534tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10535[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10536tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10537[gw8] [ 88%] PASSED tests/server/test_stdio.py::test_a_second_stdio_server_on_the_same_process_streams_is_refused 10538tests/server/test_stdio.py::test_a_refused_claim_releases_the_stream_it_already_took 10539tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10540tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10541[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10542tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10543[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10544tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10545[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10546tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10547[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10548[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10549[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10550tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10551tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10552tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10553[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10554tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10555[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10556[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10557[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10558tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10559[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10560tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10561tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10562tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10563[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10564tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10565[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10566tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10567[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10568[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10569tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10570tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10571[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10572[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10573tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10574tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10575[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10576[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10577tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10578tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10579[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10580[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10581tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10582tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10583[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10584[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10585tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10586tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10587[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10588[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10589[gw8] [ 88%] PASSED tests/server/test_stdio.py::test_a_refused_claim_releases_the_stream_it_already_took 10590tests/server/test_stdio.py::test_the_claim_engages_even_when_stderr_is_closed 10591tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10592[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10593[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10594tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10595tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10596[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10597[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10598tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10599tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10600tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10601[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10602[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10603[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10604tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10605tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10606tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10607[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10608[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10609tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10610tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10611[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10612tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10613[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10614tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10615[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10616tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10617[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10618tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10619[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10620tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10621[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10622tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10623[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10624[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10625[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10626tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10627[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10628tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10629tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10630tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10631[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10632tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10633[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10634[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10635tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10636tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10637[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10638tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10639[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10640tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10641[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10642[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10643[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10644tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10645[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10646tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10647tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10648tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10649[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10650tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10651[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10652tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10653[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10654tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10655[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10656tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10657[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10658tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10659[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10660tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10661[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10662[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10663[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10664[gw7] [ 89%] PASSED tests/test_examples.py::test_complex_inputs 10665tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10666tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10667tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10668tests/test_examples.py::test_direct_call_tool_result_return 10669[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10670tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10671[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10672tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10673[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10674[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10675tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10676tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10677[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10678[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10679tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10680tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10681[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10682tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10683[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10684tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10685[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10686tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10687[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10688[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10689[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10690tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10691tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10692tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10693[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10694[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10695tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10696tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10697[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10698tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10699[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10700tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10701[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10702[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10703tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10704tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10705[gw8] [ 89%] PASSED tests/server/test_stdio.py::test_the_claim_engages_even_when_stderr_is_closed 10706tests/server/test_stdio.py::test_stdio_server_serves_in_place_when_the_diversion_cannot_be_opened 10707[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10708tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10709[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10710tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10711[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10712[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10713tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10714[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10715[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10716tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10717tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10718[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10719tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10720[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10721tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10722tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10723[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10724tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10725[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10726tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10727[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10728tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10729[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10730[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10731tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10732[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10733tests/test_types.py::test_tool_choice 10734tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10735[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10736tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10737[gw1] [ 90%] PASSED tests/test_types.py::test_tool_choice 10738tests/test_types.py::test_sampling_message_with_user_role 10739[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10740[gw1] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_user_role 10741[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10742tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10743[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10744tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10745tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10746tests/test_types.py::test_sampling_message_with_assistant_role 10747[gw1] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_assistant_role 10748[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10749tests/test_types.py::test_sampling_message_backward_compatibility 10750tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10751[gw1] [ 90%] PASSED tests/test_types.py::test_sampling_message_backward_compatibility 10752tests/test_types.py::test_create_message_request_params_with_tools 10753[gw1] [ 90%] PASSED tests/test_types.py::test_create_message_request_params_with_tools 10754tests/test_types.py::test_create_message_result_with_tool_use 10755[gw1] [ 90%] PASSED tests/test_types.py::test_create_message_result_with_tool_use 10756[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10757[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10758tests/test_types.py::test_create_message_result_basic 10759tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10760[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10761tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10762[gw1] [ 90%] PASSED tests/test_types.py::test_create_message_result_basic 10763tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10764tests/test_types.py::test_client_capabilities_with_sampling_tools 10765[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10766[gw4] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10767[gw1] [ 90%] PASSED tests/test_types.py::test_client_capabilities_with_sampling_tools 10768tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10769tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10770tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10771[gw4] [ 90%] PASSED tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10772[gw1] [ 90%] PASSED tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10773tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10774tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10775[gw1] [ 90%] PASSED tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10776[gw4] [ 90%] PASSED tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10777tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10778[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10779tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10780[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10781tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10782[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10783tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10784[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10785tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10786tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10787[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10788[gw4] [ 90%] PASSED tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10789tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10790tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10791[gw4] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10792tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10793[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10794[gw4] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10795tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10796tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10797[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10798[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10799tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10800tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10801[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10802[gw9] [ 90%] PASSED tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10803tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10804tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 10805[gw9] [ 90%] PASSED tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10806tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10807[gw9] [ 90%] PASSED tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10808tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10809[gw8] [ 90%] PASSED tests/server/test_stdio.py::test_stdio_server_serves_in_place_when_the_diversion_cannot_be_opened 10810[gw9] [ 90%] PASSED tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10811tests/types/test_methods.py::test_built_in_maps_are_immutable 10812tests/server/test_stdio.py::test_a_degraded_session_does_not_close_the_sys_stream_it_served 10813[gw4] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10814tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 10815[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10816[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10817tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10818tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10819[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10820[gw7] [ 90%] PASSED tests/test_examples.py::test_direct_call_tool_result_return 10821tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10822tests/test_examples.py::test_desktop 10823[gw1] [ 90%] PASSED tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10824[gw9] [ 90%] PASSED tests/types/test_methods.py::test_built_in_maps_are_immutable 10825tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10826tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10827[gw9] [ 90%] PASSED tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10828tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10829[gw5] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10830[gw9] [ 90%] PASSED tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10831tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10832[gw1] [ 90%] PASSED tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10833[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10834tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10835tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10836[gw1] [ 91%] PASSED tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10837tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10838[gw1] [ 91%] PASSED tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10839tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10840[gw3] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10841tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10842[gw5] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10843tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10844tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10845[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10846[gw9] [ 91%] PASSED tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10847tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10848[gw3] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10849[gw5] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10850tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10851tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10852tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10853[gw9] [ 91%] PASSED tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10854tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10855[gw9] [ 91%] PASSED tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10856tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10857[gw9] [ 91%] PASSED tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10858tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10859[gw3] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10860tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10861[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10862tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10863[gw3] [ 91%] PASSED tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10864tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10865[gw9] [ 91%] PASSED tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10866tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10867[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10868tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10869[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10870[gw5] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10871[gw6] [ 91%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 10872tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10873[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10874tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 10875tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10876[gw3] [ 91%] PASSED tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10877tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10878tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10879[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10880[gw5] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10881tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10882[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10883[gw3] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10884tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10885tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10886[gw3] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10887tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10888tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10889[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10890tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10891[gw3] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10892tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10893[gw3] [ 91%] PASSED tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10894tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10895[gw3] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10896tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10897[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10898tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10899[gw3] [ 91%] PASSED tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10900tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10901[gw3] [ 91%] PASSED tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10902tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10903[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10904tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10905[gw5] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10906[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10907tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10908tests/test_types.py::test_jsonrpc_request 10909[gw5] [ 91%] PASSED tests/test_types.py::test_jsonrpc_request 10910tests/test_types.py::test_method_initialization 10911[gw5] [ 91%] PASSED tests/test_types.py::test_method_initialization 10912tests/test_types.py::test_tool_use_content 10913[gw5] [ 91%] PASSED tests/test_types.py::test_tool_use_content 10914tests/test_types.py::test_tool_result_content 10915[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10916tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 10917[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10918tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10919[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 10920tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10921[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10922tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10923[gw3] [ 91%] PASSED tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10924[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10925[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10926tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10927tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10928[gw3] [ 91%] PASSED tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10929tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10930tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10931[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10932tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10933[gw1] [ 91%] PASSED tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10934tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 10935[gw5] [ 91%] PASSED tests/test_types.py::test_tool_result_content 10936[gw3] [ 91%] PASSED tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10937[gw1] [ 91%] PASSED tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 10938tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10939[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10940[gw1] [ 91%] PASSED tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10941tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10942tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 10943tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10944[gw9] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10945tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10946[gw9] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10947tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10948[gw3] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 10949[gw1] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10950tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 10951tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 10952[gw9] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10953tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10954[gw0] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10955[gw9] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10956tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10957[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 10958[gw9] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10959tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10960tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 10961[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 10962tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10963tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 10964[gw9] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10965tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10966[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 10967[gw9] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10968tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10969tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 10970[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10971tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10972[gw7] [ 92%] PASSED tests/test_examples.py::test_desktop 10973tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10974tests/test_examples.py::test_docs_examples[README.md:47-63] 10975[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10976tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 10977[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 10978[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 10979[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10980tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 10981tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 10982[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 10983[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 10984tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 10985tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10986[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 10987tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 10988[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 10989tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10990[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10991tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 10992[gw0] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10993[gw9] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 10994tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 10995tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 10996[gw7] [ 92%] PASSED tests/test_examples.py::test_docs_examples[README.md:47-63] 10997tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10998[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10999tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 11000tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 11001[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 11002tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 11003[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 11004tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 11005[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 11006tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 11007[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 11008tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 11009[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 11010tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 11011[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 11012tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 11013[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 11014tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 11015[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 11016tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 11017[gw5] [ 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] 11018tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 11019[gw5] [ 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] 11020tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 11021[gw5] [ 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] 11022tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 11023[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 11024tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 11025[gw7] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 11026[gw9] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 11027tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 11028tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 11029[gw9] [ 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[gw9] [ 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[gw9] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 11034tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 11035[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 11036tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 11037[gw1] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 11038[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 11039tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 11040[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 11041[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 11042tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11043tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 11044[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11045tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11046[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11047tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11048[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11049tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11050[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11051tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11052tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 11053[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11054tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 11055[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 11056tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11057[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11058[gw1] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 11059tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11060tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 11061[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11062tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11063[gw1] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 11064tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 11065[gw5] [ 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] 11066[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11067[gw1] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 11068tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11069tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 11070[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 11071[gw3] [ 93%] PASSED tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11072tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11073tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 11074tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11075[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11076tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11077[gw0] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 11078[gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 11079tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 11080tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11081[gw5] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11082[gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11083tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11084tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11085[gw2] [ 93%] PASSED tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 11086[gw5] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11087tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11088tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11089[gw5] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11090tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11091[gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 11092[gw5] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11093tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11094tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 11095[gw0] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 11096[gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 11097tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 11098tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 11099[gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11100tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11101[gw7] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 11102[gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11103tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11104tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 11105[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11106tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11107[gw0] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 11108tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 11109[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11110tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11111[gw0] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 11112tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 11113[gw2] [ 93%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11114tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11115[gw2] [ 93%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11116[gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11117[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11118tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11119tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11120[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11121[gw0] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 11122tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11123[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11124tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11125[gw3] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11126tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11127[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11128tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 11129[gw7] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 11130tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11131tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11132tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 11133[gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11134[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11135tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11136tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11137[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11138[gw0] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 11139tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11140[gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11141[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11142tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 11143tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11144tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11145[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11146tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 11147[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 11148[gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11149tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11150[gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11151tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11152[gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11153tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11154[gw7] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 11155[gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11156tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11157[gw9] [ 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 11159tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 11160tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 11161[gw9] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11162tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 11163[gw9] [ 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 11164tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11165[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 11166tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 11167[gw0] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 11168[gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11169tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11170[gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11171tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11172[gw9] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11173[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 11174tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 11175[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 11176tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 11177tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11178[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 11179tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 11180[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 11181tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 11182[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 11183tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 11184[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 11185tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 11186[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11187[gw2] [ 93%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 11188tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11189[gw5] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11190[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11191tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11192tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11193[gw5] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11194[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11195tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11196tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 11197[gw7] [ 94%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 11198[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11199tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11200[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11201tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 11202tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11203tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 11204[gw2] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 11205tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 11206[gw1] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 11207tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 11208[gw5] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 11209tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11210[gw2] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 11211tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 11212[gw2] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 11213tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 11214[gw6] [ 94%] PASSED tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11215[gw2] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 11216[gw7] [ 94%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 11217tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 11218tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11219tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 11220[gw1] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 11221[gw2] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 11222tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 11223[gw5] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11224tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11225[gw2] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 11226tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 11227[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11228tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 11229[gw1] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11230[gw2] [ 94%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 11231tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11232[gw5] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 11233[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11234tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11235tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11236[gw5] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11237tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 11238[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11239tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 11240[gw1] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 11241tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11242tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11243[gw1] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11244[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11245tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11246[gw7] [ 94%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 11247tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11248tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11249tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 11250[gw5] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 11251[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11252tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11253tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11254[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11255[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11256tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11257tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11258[gw5] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11259tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11260[gw5] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11261[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11262[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11263tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11264tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11265[gw5] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11266[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11267tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11268tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11269[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11270tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11271[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11272tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11273[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11274tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11275[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11276[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11277tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11278[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11279tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11280[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11281tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11282[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11283tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11284[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11285tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11286[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11287tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11288[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11289[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11290tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11291tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11292[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11293tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11294tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11295[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11296tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11297[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11298tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11299[gw9] [ 94%] PASSED tests/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.ResourceContents--] 11301[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11302tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11303[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11304tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11305[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11306tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11307[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11308tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11309tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11310tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11311[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11312tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11313[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11314tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11315[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11316tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11317[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11318tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11319[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11320tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11321[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11322[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11323[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11324tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11325tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11326[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11327tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11328[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11329tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11330[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11331tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11332[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11333tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11334[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11335tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11336[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11337tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11338[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11339tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11340[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11341tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11342[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11343tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11344[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11345tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11346[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11347[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11348[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11349tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11350tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11351[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11352tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11353[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11354tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11355tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11356[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11357tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11358[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11359tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11360[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11361tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11362[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11363[gw6] [ 95%] PASSED tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11364tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11365[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11366tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11367[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11368[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11369[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11370[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11371tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11372tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11373[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11374[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11375tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11376[gw6] [ 95%] SKIPPED tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11377tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11378[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11379[gw6] [ 95%] SKIPPED tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11380tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11381tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11382tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11383[gw6] [ 95%] SKIPPED tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11384[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11385tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 11386tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11387[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11388tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11389[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11390[gw6] [ 95%] SKIPPED tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 11391tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11392[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11393tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 11394[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11395tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11396tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11397tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11398[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11399tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11400[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11401tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11402tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11403[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11404tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11405[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11406tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11407[gw7] [ 95%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 11408[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11409[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11410tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11411tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 11412tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11413tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11414[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11415tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11416[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11417tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11418[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11419[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11420[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11421tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11422tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11423tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11424[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11425[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11426tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11427tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11428tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11429[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11430[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11431tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11432[gw6] [ 96%] PASSED tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 11433[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11434tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 11435[gw6] [ 96%] PASSED tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 11436tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 11437[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11438tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11439[gw6] [ 96%] PASSED tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 11440tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 11441tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11442[gw6] [ 96%] PASSED tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 11443[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11444tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 11445[gw6] [ 96%] PASSED tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 11446[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11447tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11448[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11449tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11450[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11451tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11452[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11453tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11454[gw7] [ 96%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 11455tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11456[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11457[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11458tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11459[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11460tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11461tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 11462[gw6] [ 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--] 11464tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11465tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11466[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11467tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11468[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11469tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11470[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11471tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11472[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11473[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11474tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11475tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11476[gw7] [ 96%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 11477[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11478tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11479[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11480tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 11481[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11482[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11483tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11484tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11485[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11486tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11487tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11488[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11489[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11490tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11491tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11492[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11493[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11494[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11495tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11496tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11497[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11498[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11499tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11500[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11501tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11502[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11503[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11504tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11505[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11506tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11507tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11508[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11509tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11510[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11511tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11512[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11513tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11514[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11515tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11516tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11517tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11518tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11519[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11520[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11521tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11522[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11523tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11524[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11525tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11526[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11527tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11528[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11529tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11530[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11531tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11532[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11533[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11534[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11535tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11536[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11537tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11538[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11539[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11540tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11541tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11542[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11543tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11544[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11545tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11546[gw8] [ 97%] PASSED tests/server/test_stdio.py::test_a_degraded_session_does_not_close_the_sys_stream_it_served 11547tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 11548[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11549tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11550tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11551[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11552[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11553tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11554[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11555tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11556tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11557[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11558tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11559[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11560[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11561[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11562tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11563[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11564tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11565tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11566[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11567tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11568[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11569[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11570[gw8] [ 97%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 11571[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11572tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 11573tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11574[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11575tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11576[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11577tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11578[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11579[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11580tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11581tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11582[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11583tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11584tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11585[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11586[gw8] [ 97%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 11587[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11588tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11589tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11590tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 11591[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11592tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11593[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11594tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11595[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11596[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11597[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11598tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11599tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11600tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11601tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11602tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11603[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11604tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11605[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11606tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11607[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11608[gw8] [ 97%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 11609[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11610tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11611tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 11612[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11613tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11614tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11615[gw8] [ 97%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 11616tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 11617[gw7] [ 97%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 11618[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11619tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11620[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11621tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 11622[gw8] [ 97%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 11623tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 11624[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11625tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11626[gw8] [ 97%] PASSED tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 11627[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11628tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered 11629tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11630[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11631tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11632[gw8] [ 97%] PASSED tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered 11633[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11634tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing 11635[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11636tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11637[gw8] [ 97%] PASSED tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing 11638tests/server/test_subscriptions.py::test_publish_after_close_is_dropped 11639tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11640[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11641tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11642[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11643[gw8] [ 97%] PASSED tests/server/test_subscriptions.py::test_publish_after_close_is_dropped 11644tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11645[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11646tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack 11647[gw7] [ 97%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 11648tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 11649[gw8] [ 97%] PASSED tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack 11650[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11651[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11652tests/server/test_subscriptions.py::test_listen_requires_a_request_id 11653tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11654[gw8] [ 97%] PASSED tests/server/test_subscriptions.py::test_listen_requires_a_request_id 11655[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11656tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11657tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11658tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 11659[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11660[gw8] [ 98%] PASSED tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 11661tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 11662tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11663tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11664[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11665[gw6] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11666[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11667tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11668tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11669tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11670[gw6] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11671[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11672tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11673[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11674[gw2] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11675[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11676tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11677[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11678[gw7] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 11679tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11680tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 11681[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11682tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11683[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11684tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11685tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11686tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11687[gw2] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11688[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11689[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11690tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11691tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11692tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11693[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11694tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11695[gw2] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11696[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11697tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11698[gw6] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11699tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11700tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11701tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11702[gw6] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11703[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11704tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11705tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11706[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11707tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11708tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11709[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11710tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11711[gw6] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11712[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11713tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11714tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11715[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11716[gw6] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11717[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11718tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11719tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11720[gw7] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 11721tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 11722[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11723[gw6] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11724tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11725[gw5] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11726tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11727[gw3] [ 98%] PASSED tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11728tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11729tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11730tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11731[gw6] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11732[gw5] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11733tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11734[gw3] [ 98%] PASSED tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11735[gw5] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11736tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11737tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11738[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11739tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11740[gw6] [ 98%] PASSED tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11741[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11742tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11743tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11744[gw3] [ 98%] PASSED tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11745[gw2] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11746[gw6] [ 98%] PASSED tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11747tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11748[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11749tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11750tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11751[gw1] [ 98%] PASSED tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11752[gw7] [ 98%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 11753tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11754[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11755tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 11756[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11757tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11758[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11759tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11760[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11761[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11762tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11763tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11764[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11765[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11766tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11767tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11768[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11769tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11770tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11771[gw2] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11772[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11773tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11774tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11775[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11776tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11777[gw5] [ 99%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11778[gw2] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11779[gw1] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11780tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11781[gw0] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11782tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11783[gw9] [ 99%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11784tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11785tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11786[gw2] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11787tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11788[gw9] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11789[gw2] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11790tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11791tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11792tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11793tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11794[gw1] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11795[gw2] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11796[gw9] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11797tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11798tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11799[gw0] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11800[gw9] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11801tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11802[gw2] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11803tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11804tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11805[gw2] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11806tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11807tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11808[gw1] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11809[gw9] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11810[gw2] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11811tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11812[gw9] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11813tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11814tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11815[gw0] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11816tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11817[gw2] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11818tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11819[gw9] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11820[gw1] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11821tests/types/test_version.py::test_supported_versions_are_known 11822[gw2] [ 99%] PASSED tests/types/test_version.py::test_supported_versions_are_known 11823tests/types/test_version.py::test_known_versions_are_strictly_ordered 11824tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11825[gw0] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11826tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11827[gw9] [ 99%] PASSED tests/types/test_version.py::test_known_versions_are_strictly_ordered 11828[gw1] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11829tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11830[gw5] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11831tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11832tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11833[gw2] [ 99%] PASSED tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11834tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11835tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11836[gw0] [ 99%] PASSED tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11837tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11838[gw9] [ 99%] PASSED tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11839tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11840[gw2] [ 99%] PASSED tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11841[gw5] [ 99%] PASSED tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11842[gw1] [ 99%] PASSED tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11843[gw0] [ 99%] PASSED tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11844tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11845tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11846[gw3] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11847tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11848[gw6] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11849[gw3] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11850[gw7] [ 99%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 11851tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 11852tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11853[gw6] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11854[gw7] [ 99%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 11855[gw8] [ 99%] PASSED tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 11856tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup 11857[gw8] [ 99%] PASSED tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup 11858[gw4] [ 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[gw4] [ 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[gw4] [ 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[gw4] [ 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[gw4] [ 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[gw4] [ 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[initialize-2025-06-18] 11870[gw4] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 11871tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 11872[gw4] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 11873tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 11874[gw4] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 11875tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 11876[gw4] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 11877tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 11878[gw4] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 11879tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 11880[gw4] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 11881tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 11882[gw4] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 11883tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 11884[gw4] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 11885tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 11886[gw4] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 11887tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 11888[gw4] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 11889tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 11890[gw4] [100%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 1189111892================= 5903 passed, 9 skipped, 1 xfailed in 44.41s ==================11893Finished executing pytestCheckPhase11894pytestCheckPhase completed in 48 seconds