nixbot

builds

succeeded python3.14-mcp-2.2.0 checks.aarch64-linux.pkgs-mistral-vibe · build #9327 · raw

1elastic-arm-9a50e053: building 4vail0hqnwpcxfvllhjrqp7svb2pw98d-python3.14-mcp-2.2.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/k9f5d59ib383xj5q84zbwi6603q3cdld-source21source root is source22setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "source/uv.lock"
configurePhase
23no configure script, doing nothing
buildPhase
24Executing pypaBuildPhase25Setting UV_DYNAMIC_VERSIONING_BYPASS to 2.2.026Creating a wheel...27pypa build flags: --no-isolation --outdir dist/ --wheel28* Getting build dependencies for wheel...29* Building wheel...30Successfully built mcp-2.2.0-py3-none-any.whl31Finished creating a wheel...32Finished executing pypaBuildPhase
pythonRuntimeDepsCheckHook
33Executing pythonRuntimeDepsCheck34Checking runtime dependencies for mcp-2.2.0-py3-none-any.whl35Finished executing pythonRuntimeDepsCheck
installPhase
36Executing pypaInstallPhase37Successfully installed mcp-2.2.0-py3-none-any.whl38Finished executing pypaInstallPhase
pythonOutputDistPhase
39Executing pythonOutputDistPhase40Finished executing pythonOutputDistPhase
fixupPhase
41shrinking RPATHs of ELF executables and libraries in /nix/store/7kkagn4s1iby4g1f3sqd1vgjivkk1vw6-python3.14-mcp-2.2.0-dist42checking for references to /build/ in /nix/store/7kkagn4s1iby4g1f3sqd1vgjivkk1vw6-python3.14-mcp-2.2.0-dist...43patching script interpreter paths in /nix/store/7kkagn4s1iby4g1f3sqd1vgjivkk1vw6-python3.14-mcp-2.2.0-dist44shrinking RPATHs of ELF executables and libraries in /nix/store/z6j1dgpbcijcpgnljy9zfxv1wvkgss67-python3.14-mcp-2.2.045checking for references to /build/ in /nix/store/z6j1dgpbcijcpgnljy9zfxv1wvkgss67-python3.14-mcp-2.2.0...46patching script interpreter paths in /nix/store/z6j1dgpbcijcpgnljy9zfxv1wvkgss67-python3.14-mcp-2.2.047stripping (with command strip and flags -S -p) in /nix/store/z6j1dgpbcijcpgnljy9zfxv1wvkgss67-python3.14-mcp-2.2.0/lib /nix/store/z6j1dgpbcijcpgnljy9zfxv1wvkgss67-python3.14-mcp-2.2.0/bin48Rewriting #!/nix/store/lq2fsnmg0q3y0vlxn91w8s8wvj1m6fld-python3-3.14.8/bin/python3.14 to #!/nix/store/lq2fsnmg0q3y0vlxn91w8s8wvj1m6fld-python3-3.14.849wrapping `/nix/store/z6j1dgpbcijcpgnljy9zfxv1wvkgss67-python3.14-mcp-2.2.0/bin/mcp'...50Executing pythonRemoveTestsDir51Finished executing pythonRemoveTestsDir
installCheckPhase
52no Makefile or custom installCheckPhase, doing nothing
pythonImportsCheckPhase
53Executing pythonImportsCheckPhase54Check whether the following modules can be imported: mcp
pythonMetadataCheckPhase
55Executing pythonMetadataCheckPhase
pytestCheckPhase
56Executing pytestCheckPhase57pytest flags: -m pytest -k not\ \(test_client_with_stdio_parameters_launches_the_server_as_a_subprocess\)\ and\ not\ \(test_tool_call_and_notification_round_trip_over_a_stdio_subprocess\)\ and\ not\ \(test_a_tool_spawned_childs_stdout_writes_never_reach_the_wire\)\ and\ not\ \(test_notification_validation_error\)\ and\ not\ \(test_sse_security_\)\ and\ not\ \(test_streamable_http_\)\ and\ not\ \(test_streamablehttp_\)\ and\ not\ \(test_messages_are_executed_concurrently\) --numprocesses=1658============================= test session starts ==============================59platform linux -- Python 3.14.8, pytest-9.1.1, pluggy-1.6.060rootdir: /build/source61configfile: pyproject.toml62plugins: anyio-4.15.1, examples-0.0.18, inline-snapshot-0.34.2, logfire-4.41.0, asyncio-1.4.0, xdist-3.8.063asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function6416 workers [5792 items] 65scheduling tests via LoadScheduling6667tests/client/test_stdio.py::test_a_process_surviving_the_kill_escalation_is_logged_and_abandoned 68tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 69tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 70tests/client/test_client_caching.py::test_a_custom_store_with_a_url_server_constructs_and_is_used 71tests/docs_src/test_client.py::test_connected_properties_are_populated_inside_the_block 72tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 73tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 74tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 75tests/docs/test_build_config.py::test_lang_config_for_a_language_not_in_the_registry_exits_with_a_message 76tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 77tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 78tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 79[gw4] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 80tests/client/test_extension.py::test_notification_binding_is_frozen 81[gw3] [ 0%] PASSED tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 82[gw5] [ 0%] PASSED tests/client/test_client_caching.py::test_a_custom_store_with_a_url_server_constructs_and_is_used 83tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_modern_path 84[gw2] [ 0%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 85tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 86[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 87tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] 88tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 89[gw2] [ 0%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 90tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 91tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[cancel-None-cancelled: folder not deleted] 92tests/docs_src/test_mrtr.py::test_the_auto_loop_drives_the_call_to_completion 93[gw4] [ 0%] PASSED tests/client/test_extension.py::test_notification_binding_is_frozen 94tests/client/test_extension.py::test_extension_defaults_advertise_nothing 95[gw4] [ 0%] PASSED tests/client/test_extension.py::test_extension_defaults_advertise_nothing 96tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 97[gw14] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 98[gw8] [ 0%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 99[gw1] [ 0%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 100tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 101[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] 102tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] 103[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] 104tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] 105[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] 106[gw9] [ 0%] PASSED tests/docs/test_build_config.py::test_lang_config_for_a_language_not_in_the_registry_exits_with_a_message 107tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 108[gw4] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 109tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 110[gw4] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 111tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 112[gw4] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 113tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 114[gw4] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 115tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 116[gw4] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 117tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 118[gw4] [ 0%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 119tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 120[gw6] [ 0%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_modern_path 121tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_handshake_path 122[gw6] [ 0%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_handshake_path 123tests/client/test_send_request_mcp_name.py::test_name_value_passes_through_encode_header_value 124[gw6] [ 0%] PASSED tests/client/test_send_request_mcp_name.py::test_name_value_passes_through_encode_header_value 125tests/client/test_send_request_mcp_name.py::test_core_tools_call_header_comes_from_the_stamp_alone 126[gw4] [ 0%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 127tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 128tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] 129[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] 130tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] 131[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] 132tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial001.py] 133[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial001.py] 134tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] 135[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] 136tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] 137[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] 138tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] 139tests/docs/test_translations.py::test_sections_tile_the_page_and_blank_lines_belong_to_the_heading_after_them 140[gw9] [ 0%] PASSED tests/docs/test_translations.py::test_sections_tile_the_page_and_blank_lines_belong_to_the_heading_after_them 141tests/docs/test_translations.py::test_provenance_front_matter_round_trips_and_keeps_all_digit_hashes_as_strings 142[gw9] [ 0%] PASSED tests/docs/test_translations.py::test_provenance_front_matter_round_trips_and_keeps_all_digit_hashes_as_strings 143tests/docs/test_translations.py::test_heading_ids_are_the_ones_the_site_renderer_produces 144[gw13] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 145tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 146[gw13] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 147tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 148[gw13] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 149tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 150[gw13] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 151tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 152[gw13] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 153tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 154[gw13] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 155tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 156[gw13] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 157tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 158[gw13] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 159tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 160[gw15] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] 161tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 162[gw11] [ 0%] PASSED tests/docs_src/test_client.py::test_connected_properties_are_populated_inside_the_block 163tests/docs_src/test_client.py::test_a_client_is_not_reusable_after_the_block_ends 164[gw11] [ 0%] PASSED tests/docs_src/test_client.py::test_a_client_is_not_reusable_after_the_block_ends 165[gw12] [ 0%] PASSED tests/docs_src/test_mrtr.py::test_the_auto_loop_drives_the_call_to_completion 166tests/docs_src/test_mrtr.py::test_the_auto_loop_without_a_callback_raises_mcp_error 167[gw12] [ 0%] PASSED tests/docs_src/test_mrtr.py::test_the_auto_loop_without_a_callback_raises_mcp_error 168tests/docs_src/test_mrtr.py::test_retry_with_input_responses_and_request_state_completes_the_call 169[gw12] [ 0%] PASSED tests/docs_src/test_mrtr.py::test_retry_with_input_responses_and_request_state_completes_the_call 170tests/docs_src/test_mrtr.py::test_the_manual_loop_drives_the_call_to_completion 171[gw12] [ 0%] PASSED tests/docs_src/test_mrtr.py::test_the_manual_loop_drives_the_call_to_completion 172tests/docs_src/test_mrtr.py::test_the_in_memory_client_negotiates_2026_07_28 173[gw12] [ 0%] PASSED tests/docs_src/test_mrtr.py::test_the_in_memory_client_negotiates_2026_07_28 174tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 175[gw3] [ 0%] PASSED tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 176tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 177[gw3] [ 0%] PASSED tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 178tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 179[gw3] [ 0%] PASSED tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 180tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 181[gw3] [ 0%] PASSED tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 182tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 183[gw3] [ 0%] PASSED tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 184tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 185[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 186tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 187[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 188tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 189[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 190tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 191[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 192tests/cli/test_claude.py::test_generates_uv_run_command 193[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_generates_uv_run_command 194tests/cli/test_claude.py::test_file_spec_without_object_suffix 195[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_file_spec_without_object_suffix 196tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 197[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 198tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 199[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 200tests/cli/test_claude.py::test_with_editable_adds_flag 201[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_with_editable_adds_flag 202tests/cli/test_claude.py::test_env_vars_written 203[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_env_vars_written 204tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 205tests/docs_src/test_mrtr.py::test_a_pre_2026_session_has_nowhere_to_put_the_result 206[gw6] [ 1%] PASSED tests/client/test_send_request_mcp_name.py::test_core_tools_call_header_comes_from_the_stamp_alone 207[gw1] [ 1%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 208tests/docs_src/test_client.py::test_list_tools_returns_the_full_definition 209[gw8] [ 1%] PASSED tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 210tests/client/test_client_caching.py::test_a_custom_store_with_an_explicit_target_id_constructs_for_any_server 211[gw13] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 212[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 213[gw4] [ 1%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 214[gw14] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 215[gw2] [ 1%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 216[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 217[gw12] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_a_pre_2026_session_has_nowhere_to_put_the_result 218[gw11] [ 1%] PASSED tests/docs_src/test_client.py::test_list_tools_returns_the_full_definition 219[gw5] [ 1%] PASSED tests/client/test_client_caching.py::test_a_custom_store_with_an_explicit_target_id_constructs_for_any_server 220tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 221[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 222tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 223[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 224tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 225[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 226tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 227[gw8] [ 1%] PASSED tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 228tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 229[gw8] [ 1%] PASSED tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 230tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 231[gw8] [ 1%] PASSED tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 232tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 233[gw8] [ 1%] PASSED tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 234tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 235[gw8] [ 1%] PASSED tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 236tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 237[gw8] [ 1%] PASSED tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 238tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 239[gw8] [ 1%] PASSED tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 240tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 241[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 242tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 243[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 244tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 245tests/client/test_send_request_mcp_name.py::test_stamp_table_rows_win_over_name_param_by_ordering 246[gw6] [ 1%] PASSED tests/client/test_send_request_mcp_name.py::test_stamp_table_rows_win_over_name_param_by_ordering 247tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_preconnect_path 248[gw6] [ 1%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_preconnect_path 249tests/client/test_send_request_mcp_name.py::test_missing_name_value_fails_loud_naming_method_and_key 250[gw6] [ 1%] PASSED tests/client/test_send_request_mcp_name.py::test_missing_name_value_fails_loud_naming_method_and_key 251tests/client/test_send_request_mcp_name.py::test_non_string_name_value_fails_loud 252[gw6] [ 1%] PASSED tests/client/test_send_request_mcp_name.py::test_non_string_name_value_fails_loud 253tests/client/test_send_request_mcp_name.py::test_absent_params_fails_loud_not_attribute_error 254[gw6] [ 1%] PASSED tests/client/test_send_request_mcp_name.py::test_absent_params_fails_loud_not_attribute_error 255tests/client/test_send_request_mcp_name.py::test_request_without_name_param_sends_no_mcp_name 256[gw6] [ 1%] PASSED tests/client/test_send_request_mcp_name.py::test_request_without_name_param_sends_no_mcp_name 257tests/client/test_session.py::test_client_session_initialize 258[gw6] [ 1%] PASSED tests/client/test_session.py::test_client_session_initialize 259tests/client/test_session.py::test_client_session_custom_client_info 260[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 261tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 262[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 263tests/docs_src/test_client.py::test_get_display_name_prefers_the_title 264[gw11] [ 1%] PASSED tests/docs_src/test_client.py::test_get_display_name_prefers_the_title 265tests/docs_src/test_client.py::test_call_tool_result_has_three_things_to_read 266tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 267[gw3] [ 1%] PASSED tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 268tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 269[gw3] [ 1%] PASSED tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 270tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 271tests/docs_src/test_mrtr.py::test_fulfil_refuses_a_request_it_cannot_answer 272[gw12] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_fulfil_refuses_a_request_it_cannot_answer 273tests/docs_src/test_mrtr.py::test_a_prompt_returns_an_input_required_result_on_the_first_round 274[gw12] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_a_prompt_returns_an_input_required_result_on_the_first_round 275tests/docs_src/test_mrtr.py::test_the_prompt_auto_loop_returns_the_final_messages 276[gw12] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_the_prompt_auto_loop_returns_the_final_messages 277tests/docs_src/test_mrtr.py::test_a_custom_codec_round_trips_what_it_sealed 278[gw12] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_round_trips_what_it_sealed 279[gw6] [ 1%] PASSED tests/client/test_session.py::test_client_session_custom_client_info 280tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 281[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 282tests/cli/test_claude.py::test_other_servers_preserved 283[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_other_servers_preserved 284tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 285[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 286tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 287[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 288tests/cli/test_claude.py::test_raises_when_config_dir_missing 289[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_raises_when_config_dir_missing 290tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 291[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 292tests/cli/test_claude.py::test_get_uv_path[None-uv] 293[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_get_uv_path[None-uv] 294tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 295[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 296tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 297[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 298tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 299[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 300tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 301[gw15] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 302tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 303tests/client/test_client_caching.py::test_cache_none_disables_the_cache_and_the_handler_wrap 304[gw5] [ 2%] PASSED tests/client/test_client_caching.py::test_cache_none_disables_the_cache_and_the_handler_wrap 305tests/client/test_client_caching.py::test_the_default_cache_uses_a_per_client_in_memory_store 306[gw5] [ 2%] PASSED tests/client/test_client_caching.py::test_the_default_cache_uses_a_per_client_in_memory_store 307tests/client/test_client_caching.py::test_the_negotiated_version_supplier_tracks_the_session_lifecycle 308[gw5] [ 2%] PASSED tests/client/test_client_caching.py::test_the_negotiated_version_supplier_tracks_the_session_lifecycle 309tests/client/test_client_caching.py::test_a_list_changed_notification_evicts_without_a_user_handler 310tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 311[gw2] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 312tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 313[gw2] [ 2%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 314tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 315[gw2] [ 2%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 316tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 317[gw2] [ 2%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 318tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 319[gw2] [ 2%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 320tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 321[gw2] [ 2%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 322tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 323[gw2] [ 2%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 324tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 325[gw2] [ 2%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 326tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 327[gw2] [ 2%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 328tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 329[gw2] [ 2%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 330tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 331[gw2] [ 2%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 332tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 333[gw2] [ 2%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 334tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 335[gw2] [ 2%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 336tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 337[gw8] [ 2%] PASSED tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 338tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 339[gw8] [ 2%] PASSED tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 340tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 341[gw8] [ 2%] PASSED tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 342tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 343[gw8] [ 2%] PASSED tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 344tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 345[gw8] [ 2%] PASSED tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 346tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 347[gw8] [ 2%] PASSED tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 348tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 349[gw15] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 350tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 351tests/docs_src/test_mrtr.py::test_a_custom_codec_raises_invalid_request_state_for_any_bad_token 352[gw12] [ 2%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_raises_invalid_request_state_for_any_bad_token 353tests/docs_src/test_mrtr.py::test_a_custom_codec_rejects_every_alias_of_a_minted_token 354[gw12] [ 2%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_rejects_every_alias_of_a_minted_token 355tests/docs_src/test_oauth_clients.py::test_in_memory_storage_satisfies_the_token_storage_protocol 356[gw12] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_in_memory_storage_satisfies_the_token_storage_protocol 357tests/docs_src/test_oauth_clients.py::test_storage_round_trips_tokens_and_client_info 358[gw12] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_storage_round_trips_tokens_and_client_info 359tests/docs_src/test_oauth_clients.py::test_the_provider_is_an_httpx_auth 360[gw12] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_the_provider_is_an_httpx_auth 361tests/docs_src/test_oauth_clients.py::test_the_metadata_defaults_are_the_authorization_code_flow 362[gw12] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_the_metadata_defaults_are_the_authorization_code_flow 363tests/docs_src/test_oauth_clients.py::test_redirect_uris_is_required 364[gw12] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_redirect_uris_is_required 365tests/docs_src/test_oauth_clients.py::test_the_redirect_handler_receives_the_authorization_url 366[gw12] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_the_redirect_handler_receives_the_authorization_url 367tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 368[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 369tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 370[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 371tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 372[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 373tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 374[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 375tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 376[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 377tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 378[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 379tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 380[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 381tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 382[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 383tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 384[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 385tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 386[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 387tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 388[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 389tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 390[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 391tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 392[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 393tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 394[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 395tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 396[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 397tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 398[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 399tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 400[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 401tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 402[gw13] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 403tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 404tests/client/test_session.py::test_client_session_default_client_info 405[gw6] [ 2%] PASSED tests/client/test_session.py::test_client_session_default_client_info 406tests/client/test_session.py::test_client_session_version_negotiation_success 407[gw6] [ 2%] PASSED tests/client/test_session.py::test_client_session_version_negotiation_success 408tests/client/test_session.py::test_client_session_version_negotiation_failure 409[gw6] [ 2%] PASSED tests/client/test_session.py::test_client_session_version_negotiation_failure 410tests/client/test_session.py::test_client_capabilities_default 411[gw6] [ 2%] PASSED tests/client/test_session.py::test_client_capabilities_default 412tests/client/test_session.py::test_client_capabilities_with_custom_callbacks 413[gw6] [ 2%] PASSED tests/client/test_session.py::test_client_capabilities_with_custom_callbacks 414tests/client/test_session.py::test_client_capabilities_with_sampling_tools 415[gw6] [ 2%] PASSED tests/client/test_session.py::test_client_capabilities_with_sampling_tools 416tests/client/test_session.py::test_initialize_result 417tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 418[gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 419tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 420[gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 421tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 422[gw2] [ 2%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 423tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 424[gw2] [ 3%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 425tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 426[gw2] [ 3%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 427tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 428[gw2] [ 3%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 429tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 430[gw2] [ 3%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 431tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 432[gw2] [ 3%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 433tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 434[gw2] [ 3%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 435tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 436[gw2] [ 3%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 437tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 438[gw2] [ 3%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 439tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 440[gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 441tests/client/test_auth.py::test_union_scopes[dedup] 442[gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[dedup] 443tests/client/test_auth.py::test_union_scopes[no-previous] 444[gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[no-previous] 445tests/client/test_auth.py::test_union_scopes[no-new] 446[gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[no-new] 447tests/client/test_auth.py::test_union_scopes[both-empty] 448[gw2] [ 3%] PASSED tests/client/test_auth.py::test_union_scopes[both-empty] 449tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 450[gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 451tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 452[gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 453tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 454[gw2] [ 3%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 455tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 456[gw9] [ 3%] PASSED tests/docs/test_translations.py::test_heading_ids_are_the_ones_the_site_renderer_produces 457tests/docs/test_translations.py::test_heading_the_source_scan_cannot_pin_makes_the_page_an_error 458[gw6] [ 3%] PASSED tests/client/test_session.py::test_initialize_result 459[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 460tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 461[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 462tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 463[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 464tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 465[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 466tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 467[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 468tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 469[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 470tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 471[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 472tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 473[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 474tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 475[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 476tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 477[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 478tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 479[gw15] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 480tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 481tests/client/test_session.py::test_client_tool_call_with_meta[None] 482[gw6] [ 3%] PASSED tests/client/test_session.py::test_client_tool_call_with_meta[None] 483tests/client/test_session.py::test_client_tool_call_with_meta[meta1] 484[gw6] [ 3%] PASSED tests/client/test_session.py::test_client_tool_call_with_meta[meta1] 485tests/client/test_session.py::test_receive_loop_answers_malformed_inbound_request_with_invalid_params 486[gw11] [ 3%] PASSED tests/docs_src/test_client.py::test_call_tool_result_has_three_things_to_read 487tests/docs_src/test_client.py::test_a_raising_tool_is_a_result_not_an_exception 488[gw11] [ 3%] PASSED tests/docs_src/test_client.py::test_a_raising_tool_is_a_result_not_an_exception 489tests/docs_src/test_client.py::test_an_unknown_tool_name_is_a_result_not_an_exception 490[gw11] [ 3%] PASSED tests/docs_src/test_client.py::test_an_unknown_tool_name_is_a_result_not_an_exception 491tests/docs_src/test_client.py::test_resources_and_templates_are_two_separate_lists 492[gw5] [ 3%] PASSED tests/client/test_client_caching.py::test_a_list_changed_notification_evicts_without_a_user_handler 493tests/client/test_client_caching.py::test_a_user_handler_receives_the_notification_the_eviction_consumed 494[gw5] [ 3%] PASSED tests/client/test_client_caching.py::test_a_user_handler_receives_the_notification_the_eviction_consumed 495tests/client/test_client_caching.py::test_non_notification_items_pass_through_to_the_user_handler_untouched 496[gw5] [ 3%] PASSED tests/client/test_client_caching.py::test_non_notification_items_pass_through_to_the_user_handler_untouched 497tests/client/test_client_caching.py::test_a_raising_eviction_does_not_block_notification_delivery 498[gw5] [ 3%] PASSED tests/client/test_client_caching.py::test_a_raising_eviction_does_not_block_notification_delivery 499tests/client/test_client_caching.py::test_a_second_list_tools_within_the_ttl_is_served_from_the_cache 500[gw5] [ 3%] PASSED tests/client/test_client_caching.py::test_a_second_list_tools_within_the_ttl_is_served_from_the_cache 501tests/client/test_client_caching.py::test_an_expired_entry_is_refetched 502[gw5] [ 3%] PASSED tests/client/test_client_caching.py::test_an_expired_entry_is_refetched 503tests/client/test_client_caching.py::test_each_list_verb_caches_independently_under_its_own_method 504[gw5] [ 3%] PASSED tests/client/test_client_caching.py::test_each_list_verb_caches_independently_under_its_own_method 505tests/client/test_client_caching.py::test_read_resource_caches_per_uri 506[gw5] [ 3%] PASSED tests/client/test_client_caching.py::test_read_resource_caches_per_uri 507tests/client/test_client_caching.py::test_cursor_continuations_neither_read_nor_write_the_cache 508[gw5] [ 3%] PASSED tests/client/test_client_caching.py::test_cursor_continuations_neither_read_nor_write_the_cache 509tests/client/test_client_caching.py::test_an_expired_cursor_rejection_evicts_the_methods_entry 510[gw10] [ 3%] PASSED tests/docs_src/test_elicitation.py::test_the_tool_branches_on_every_elicitation_outcome[cancel-None-cancelled: folder not deleted] 511tests/docs_src/test_extensions.py::test_using_an_extension_advertises_its_capability 512[gw10] [ 3%] PASSED tests/docs_src/test_extensions.py::test_using_an_extension_advertises_its_capability 513tests/docs_src/test_extensions.py::test_a_prefixless_identifier_fails_at_class_definition 514[gw10] [ 3%] PASSED tests/docs_src/test_extensions.py::test_a_prefixless_identifier_fails_at_class_definition 515tests/docs_src/test_extensions.py::test_extension_settings_advertised_under_capabilities 516[gw10] [ 3%] PASSED tests/docs_src/test_extensions.py::test_extension_settings_advertised_under_capabilities 517tests/docs_src/test_extensions.py::test_contributed_tool_is_listed_and_callable 518[gw10] [ 3%] PASSED tests/docs_src/test_extensions.py::test_contributed_tool_is_listed_and_callable 519tests/docs_src/test_extensions.py::test_declaring_client_gets_the_vendor_method_result 520[gw10] [ 3%] PASSED tests/docs_src/test_extensions.py::test_declaring_client_gets_the_vendor_method_result 521tests/docs_src/test_extensions.py::test_vendor_method_rejects_a_non_declaring_client_with_32021 522[gw10] [ 3%] PASSED tests/docs_src/test_extensions.py::test_vendor_method_rejects_a_non_declaring_client_with_32021 523tests/docs_src/test_extensions.py::test_version_pinned_method_is_not_found_on_a_legacy_connection 524[gw10] [ 3%] PASSED tests/docs_src/test_extensions.py::test_version_pinned_method_is_not_found_on_a_legacy_connection 525tests/docs_src/test_extensions.py::test_interceptor_observes_the_call_and_passes_the_result_through 526[gw10] [ 3%] PASSED tests/docs_src/test_extensions.py::test_interceptor_observes_the_call_and_passes_the_result_through 527tests/docs_src/test_extensions.py::test_declaring_client_receives_the_redeemed_result_not_the_claimed_shape 528tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_has_no_human_in_the_loop 529[gw12] [ 3%] PASSED tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_has_no_human_in_the_loop 530tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_builds_its_own_metadata 531[gw12] [ 3%] PASSED tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_builds_its_own_metadata 532tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[ClientCredentialsOAuthProvider] 533[gw12] [ 3%] PASSED tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[ClientCredentialsOAuthProvider] 534tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[PrivateKeyJWTOAuthProvider] 535[gw12] [ 3%] PASSED tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[PrivateKeyJWTOAuthProvider] 536tests/docs_src/test_oauth_clients.py::test_the_two_remaining_keyword_arguments_have_defaults 537[gw12] [ 3%] PASSED tests/docs_src/test_oauth_clients.py::test_the_two_remaining_keyword_arguments_have_defaults 538tests/docs_src/test_oauth_clients.py::test_the_one_more_provider_is_private_key_jwt 539[gw12] [ 3%] PASSED tests/docs_src/test_oauth_clients.py::test_the_one_more_provider_is_private_key_jwt 540tests/docs_src/test_oauth_clients.py::test_every_oauth_error_is_an_oauth_flow_error 541[gw12] [ 4%] PASSED tests/docs_src/test_oauth_clients.py::test_every_oauth_error_is_an_oauth_flow_error 542tests/docs_src/test_oauth_clients.py::test_not_everything_is_a_flow_error 543[gw12] [ 4%] PASSED tests/docs_src/test_oauth_clients.py::test_not_everything_is_a_flow_error 544tests/docs_src/test_opentelemetry.py::test_a_plain_server_is_traced_with_no_extra_code 545[gw8] [ 4%] PASSED tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 546tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 547[gw8] [ 4%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 548tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 549[gw8] [ 4%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 550tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 551[gw8] [ 4%] PASSED tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 552tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 553[gw8] [ 4%] PASSED tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 554tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 555[gw8] [ 4%] PASSED tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 556tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 557[gw8] [ 4%] PASSED tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 558tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 559[gw8] [ 4%] PASSED tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 560tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 561[gw8] [ 4%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 562[gw11] [ 4%] PASSED tests/docs_src/test_client.py::test_resources_and_templates_are_two_separate_lists 563tests/docs_src/test_client.py::test_read_resource_fills_in_a_template 564[gw11] [ 4%] PASSED tests/docs_src/test_client.py::test_read_resource_fills_in_a_template 565tests/docs_src/test_client.py::test_resource_subscriptions_are_listen_based_on_the_modern_wire 566[gw3] [ 4%] PASSED tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 567tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 568[gw3] [ 4%] PASSED tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 569tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 570[gw3] [ 4%] PASSED tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 571tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 572[gw3] [ 4%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 573tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 574[gw3] [ 4%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 575tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 576[gw3] [ 4%] PASSED tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 577tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 578[gw3] [ 4%] PASSED tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 579tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 580[gw3] [ 4%] PASSED tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 581tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 582[gw3] [ 4%] PASSED tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 583[gw6] [ 4%] PASSED tests/client/test_session.py::test_receive_loop_answers_malformed_inbound_request_with_invalid_params 584tests/client/test_session.py::test_receive_loop_answers_unknown_request_method_with_method_not_found 585[gw6] [ 4%] PASSED tests/client/test_session.py::test_receive_loop_answers_unknown_request_method_with_method_not_found 586tests/client/test_session.py::test_receive_loop_drops_unknown_notification_method_without_response 587[gw6] [ 4%] PASSED tests/client/test_session.py::test_receive_loop_drops_unknown_notification_method_without_response 588tests/client/test_session.py::test_on_request_rejects_a_server_request_absent_at_the_negotiated_version 589[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 590tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 591[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 592tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 593[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 594tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 595[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 596tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 597[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 598tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 599[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 600tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 601[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 602tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 603[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 604tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 605[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 606tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 607[gw15] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 608tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 609[gw4] [ 4%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 610tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 611[gw4] [ 4%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 612tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 613[gw4] [ 4%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 614tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 615[gw4] [ 4%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 616tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 617[gw4] [ 4%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 618tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 619[gw4] [ 4%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 620tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 621[gw4] [ 4%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 622tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 623[gw4] [ 4%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 624tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 625[gw4] [ 4%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 626tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 627[gw4] [ 4%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 628tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 629[gw4] [ 4%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 630tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 631[gw4] [ 4%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 632tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 633[gw4] [ 4%] PASSED tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 634tests/client/test_extension.py::test_advertise_serves_captured_settings 635[gw4] [ 4%] PASSED tests/client/test_extension.py::test_advertise_serves_captured_settings 636tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 637[gw1] [ 4%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 638tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 639[gw1] [ 4%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 640tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 641[gw1] [ 4%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 642tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 643[gw1] [ 4%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 644tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 645[gw1] [ 4%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 646tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 647[gw1] [ 4%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 648tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 649[gw1] [ 4%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 650[gw10] [ 4%] PASSED tests/docs_src/test_extensions.py::test_declaring_client_receives_the_redeemed_result_not_the_claimed_shape 651tests/docs_src/test_extensions.py::test_a_client_without_the_extension_is_refused_by_the_gate 652[gw10] [ 4%] PASSED tests/docs_src/test_extensions.py::test_a_client_without_the_extension_is_refused_by_the_gate 653tests/docs_src/test_extensions.py::test_session_tier_allow_claimed_returns_the_raw_shape 654[gw10] [ 5%] PASSED tests/docs_src/test_extensions.py::test_session_tier_allow_claimed_returns_the_raw_shape 655tests/docs_src/test_extensions.py::test_name_param_request_round_trips_with_no_client_registration 656[gw10] [ 5%] PASSED tests/docs_src/test_extensions.py::test_name_param_request_round_trips_with_no_client_registration 657tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 658[gw10] [ 5%] PASSED tests/docs_src/test_first_steps.py::test_each_decorator_registers_one_primitive 659tests/docs_src/test_first_steps.py::test_call_the_tool 660[gw11] [ 5%] PASSED tests/docs_src/test_client.py::test_resource_subscriptions_are_listen_based_on_the_modern_wire 661tests/docs_src/test_client.py::test_list_prompts_describes_the_arguments 662[gw11] [ 5%] PASSED tests/docs_src/test_client.py::test_list_prompts_describes_the_arguments 663tests/docs_src/test_client.py::test_get_prompt_renders_the_messages 664[gw11] [ 5%] PASSED tests/docs_src/test_client.py::test_get_prompt_renders_the_messages 665tests/docs_src/test_client.py::test_complete_suggests_values_for_an_argument 666[gw11] [ 5%] PASSED tests/docs_src/test_client.py::test_complete_suggests_values_for_an_argument 667[gw9] [ 5%] PASSED tests/docs/test_translations.py::test_heading_the_source_scan_cannot_pin_makes_the_page_an_error 668tests/docs/test_translations.py::test_many_attribute_blocks_pin_the_last_id_only_when_they_end_the_heading 669[gw9] [ 5%] PASSED tests/docs/test_translations.py::test_many_attribute_blocks_pin_the_last_id_only_when_they_end_the_heading 670tests/docs/test_translations.py::test_reimpose_restores_fences_pins_ids_and_leaves_reordered_links_where_the_translation_put_them 671[gw9] [ 5%] PASSED tests/docs/test_translations.py::test_reimpose_restores_fences_pins_ids_and_leaves_reordered_links_where_the_translation_put_them 672tests/docs/test_translations.py::test_unwrap_ends_the_reply_with_exactly_the_trailing_newlines_of_the_english 673[gw9] [ 5%] PASSED tests/docs/test_translations.py::test_unwrap_ends_the_reply_with_exactly_the_trailing_newlines_of_the_english 674tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-dropped] 675[gw9] [ 5%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-dropped] 676tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-level] 677[gw9] [ 5%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[heading-level] 678tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-added] 679[gw9] [ 5%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-added] 680tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-moved-to-another-section] 681[gw9] [ 5%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-moved-to-another-section] 682tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-unclosed] 683[gw9] [ 5%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[fence-unclosed] 684tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[target-mangled] 685[gw9] [ 5%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[target-mangled] 686tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[link-moved-to-another-section] 687[gw9] [ 5%] PASSED tests/docs/test_translations.py::test_reimpose_names_each_structural_mismatch[link-moved-to-another-section] 688tests/docs/test_translations.py::test_validate_flags_code_spans_markers_banned_terms_and_abridgement 689[gw9] [ 5%] PASSED tests/docs/test_translations.py::test_validate_flags_code_spans_markers_banned_terms_and_abridgement 690tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 691[gw14] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 692tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 693[gw14] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 694tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 695[gw14] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 696tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 697[gw14] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 698tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 699[gw14] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 700tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 701[gw14] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 702tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 703tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 704[gw4] [ 5%] PASSED tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 705tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 706[gw4] [ 5%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 707tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 708[gw4] [ 5%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 709tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 710[gw4] [ 5%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 711tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 712[gw4] [ 5%] PASSED tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 713tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 714[gw4] [ 5%] PASSED tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 715tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 716[gw4] [ 5%] PASSED tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 717tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 718[gw4] [ 5%] PASSED tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 719tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 720[gw4] [ 5%] PASSED tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 721tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 722[gw4] [ 5%] PASSED tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 723tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 724[gw4] [ 5%] PASSED tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 725tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 726[gw4] [ 5%] PASSED tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 727tests/client/test_input_required.py::test_default_max_rounds_constant 728[gw4] [ 5%] PASSED tests/client/test_input_required.py::test_default_max_rounds_constant 729tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 730[gw4] [ 5%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 731tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 732[gw4] [ 5%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 733tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 734[gw4] [ 5%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 735tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 736[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 737tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 738[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 739tests/cli/test_utils.py::test_parse_file_path_missing 740[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_parse_file_path_missing 741tests/cli/test_utils.py::test_parse_file_exit_on_dir 742[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_parse_file_exit_on_dir 743tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 744[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 745tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 746[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 747tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 748[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 749tests/cli/test_utils.py::test_get_npx_unix_like 750[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_get_npx_unix_like 751tests/cli/test_utils.py::test_get_npx_windows 752[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_get_npx_windows 753tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 754[gw0] [ 5%] PASSED tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 755tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 756[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 757tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 758[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 759tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 760[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 761tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 762[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 763tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 764[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 765tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 766[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 767tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 768[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 769tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 770[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 771tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 772[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 773[gw5] [ 6%] PASSED tests/client/test_client_caching.py::test_an_expired_cursor_rejection_evicts_the_methods_entry 774tests/client/test_client_caching.py::test_an_expired_cursor_rejection_under_bypass_does_not_evict 775[gw5] [ 6%] PASSED tests/client/test_client_caching.py::test_an_expired_cursor_rejection_under_bypass_does_not_evict 776tests/client/test_client_caching.py::test_a_non_cursor_error_on_a_continuation_does_not_evict 777[gw5] [ 6%] PASSED tests/client/test_client_caching.py::test_a_non_cursor_error_on_a_continuation_does_not_evict 778tests/client/test_client_caching.py::test_bypass_neither_serves_nor_disturbs_a_warm_entry 779[gw5] [ 6%] PASSED tests/client/test_client_caching.py::test_bypass_neither_serves_nor_disturbs_a_warm_entry 780tests/client/test_client_caching.py::test_refresh_skips_the_read_and_stores_the_refetched_result 781[gw5] [ 6%] PASSED tests/client/test_client_caching.py::test_refresh_skips_the_read_and_stores_the_refetched_result 782tests/client/test_client_caching.py::test_refresh_storing_a_ttl_zero_result_purges_the_warm_entry 783[gw5] [ 6%] PASSED tests/client/test_client_caching.py::test_refresh_storing_a_ttl_zero_result_purges_the_warm_entry 784tests/client/test_client_caching.py::test_a_list_call_carrying_meta_is_fetched_and_replaces_the_warm_entry 785[gw5] [ 6%] PASSED tests/client/test_client_caching.py::test_a_list_call_carrying_meta_is_fetched_and_replaces_the_warm_entry 786tests/client/test_client_caching.py::test_a_read_resource_carrying_meta_is_fetched_and_replaces_the_warm_entry 787[gw5] [ 6%] PASSED tests/client/test_client_caching.py::test_a_read_resource_carrying_meta_is_fetched_and_replaces_the_warm_entry 788tests/client/test_client_caching.py::test_cache_mode_is_inert_when_caching_is_disabled 789[gw5] [ 6%] PASSED tests/client/test_client_caching.py::test_cache_mode_is_inert_when_caching_is_disabled 790tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[request_state] 791[gw5] [ 6%] PASSED tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[request_state] 792tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[input_responses] 793[gw5] [ 6%] PASSED tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[input_responses] 794tests/client/test_client_caching.py::test_a_terminal_read_reached_through_driver_rounds_is_never_cached 795tests/docs/test_translations.py::test_validate_counts_list_items_and_table_rows_whatever_the_language_of_a_placeholder 796[gw9] [ 6%] PASSED tests/docs/test_translations.py::test_validate_counts_list_items_and_table_rows_whatever_the_language_of_a_placeholder 797tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[key] 798[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 799tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 800[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 801tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 802[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 803tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 804[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 805tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 806[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 807tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 808[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 809tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 810[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 811tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 812[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 813tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 814[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 815tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 816[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 817tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 818[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 819tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 820[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 821tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 822[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 823tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 824[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 825tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 826[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 827tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 828[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 829tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 830[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 831tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 832[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 833tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 834[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 835tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 836[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 837tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 838[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 839tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 840[gw14] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 841tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 842tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 843[gw1] [ 6%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 844tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 845[gw1] [ 6%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 846tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 847[gw1] [ 6%] PASSED tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 848tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 849[gw1] [ 6%] PASSED tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 850tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 851[gw1] [ 6%] PASSED tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 852tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 853[gw1] [ 6%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 854tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 855[gw1] [ 6%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 856tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 857[gw1] [ 6%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 858tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 859[gw1] [ 6%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 860tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 861[gw1] [ 6%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 862tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 863[gw1] [ 6%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 864tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 865[gw1] [ 6%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 866tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 867[gw1] [ 6%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 868tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 869[gw1] [ 6%] PASSED tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 870tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 871[gw1] [ 6%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 872tests/client/test_auth.py::test_validate_resource_custom_callback 873[gw1] [ 6%] PASSED tests/client/test_auth.py::test_validate_resource_custom_callback 874tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 875[gw1] [ 6%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 876tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 877[gw1] [ 6%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 878tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 879[gw1] [ 6%] PASSED tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 880tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 881[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 882tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 883[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 884tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 885[gw15] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 886tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 887[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 888tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 889[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 890tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 891[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 892tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 893[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 894tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 895[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 896tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 897[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 898tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 899[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 900tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 901[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 902tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 903[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 904tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 905[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 906tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 907[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 908tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 909[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 910tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 911[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 912tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 913[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 914tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 915[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 916tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 917[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 918tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 919[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 920tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 921[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 922tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 923[gw15] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 924tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 925[gw6] [ 7%] PASSED tests/client/test_session.py::test_on_request_rejects_a_server_request_absent_at_the_negotiated_version 926tests/client/test_session.py::test_on_request_validates_the_callback_result_against_the_surface_schema 927[gw6] [ 7%] PASSED tests/client/test_session.py::test_on_request_validates_the_callback_result_against_the_surface_schema 928tests/client/test_session.py::test_on_request_callback_returning_a_surface_invalid_result_is_internal_error 929[gw6] [ 7%] PASSED tests/client/test_session.py::test_on_request_callback_returning_a_surface_invalid_result_is_internal_error 930tests/client/test_session.py::test_on_notify_drops_a_server_notification_absent_at_the_negotiated_version 931[gw6] [ 7%] PASSED tests/client/test_session.py::test_on_notify_drops_a_server_notification_absent_at_the_negotiated_version 932tests/client/test_session.py::test_on_request_elicitation_with_loose_property_schema_reaches_the_callback 933[gw6] [ 7%] PASSED tests/client/test_session.py::test_on_request_elicitation_with_loose_property_schema_reaches_the_callback 934tests/client/test_session.py::test_send_request_validates_the_server_result_against_the_surface_schema 935[gw6] [ 7%] PASSED tests/client/test_session.py::test_send_request_validates_the_server_result_against_the_surface_schema 936tests/client/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 937[gw6] [ 7%] PASSED tests/client/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 938tests/client/test_session.py::test_raising_sampling_callback_answers_with_code_zero 939[gw6] [ 7%] PASSED tests/client/test_session.py::test_raising_sampling_callback_answers_with_code_zero 940tests/client/test_session.py::test_receive_loop_logs_and_drops_malformed_notification 941[gw6] [ 7%] PASSED tests/client/test_session.py::test_receive_loop_logs_and_drops_malformed_notification 942tests/client/test_session.py::test_raising_message_handler_on_transport_exception_costs_the_delivery_not_the_connection 943[gw6] [ 7%] PASSED tests/client/test_session.py::test_raising_message_handler_on_transport_exception_costs_the_delivery_not_the_connection 944tests/client/test_session.py::test_message_handler_awaiting_session_traffic_on_transport_exception_completes 945[gw6] [ 7%] PASSED tests/client/test_session.py::test_message_handler_awaiting_session_traffic_on_transport_exception_completes 946tests/client/test_session.py::test_receive_loop_consumes_server_cancelled_without_reaching_message_handler 947[gw6] [ 7%] PASSED tests/client/test_session.py::test_receive_loop_consumes_server_cancelled_without_reaching_message_handler 948tests/client/test_session.py::test_request_timeout_zero_overrides_session_timeout 949[gw6] [ 7%] PASSED tests/client/test_session.py::test_request_timeout_zero_overrides_session_timeout 950tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 951tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 952[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 953tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 954[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 955tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 956[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 957tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 958[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 959tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 960[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 961tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 962[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 963tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 964[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 965tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 966[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 967tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 968tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 969[gw8] [ 7%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 970tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 971[gw8] [ 7%] PASSED tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 972tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 973[gw8] [ 7%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 974tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 975[gw8] [ 7%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 976tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 977[gw8] [ 7%] PASSED tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 978tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 979[gw8] [ 7%] PASSED tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 980tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 981[gw8] [ 7%] PASSED tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 982tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 983[gw8] [ 7%] PASSED tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 984tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 985[gw8] [ 7%] PASSED tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 986tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 987[gw8] [ 7%] PASSED tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 988tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 989[gw8] [ 7%] PASSED tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 990tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 991[gw3] [ 7%] PASSED tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 992tests/client/test_caching.py::test_store_failures_warn_once_per_burst 993[gw3] [ 7%] PASSED tests/client/test_caching.py::test_store_failures_warn_once_per_burst 994tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 995[gw3] [ 7%] PASSED tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 996tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 997[gw3] [ 7%] PASSED tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 998tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 999[gw3] [ 7%] PASSED tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 1000tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 1001[gw3] [ 7%] PASSED tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 1002tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 1003[gw3] [ 7%] PASSED tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 1004tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 1005[gw3] [ 8%] PASSED tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 1006tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 1007[gw3] [ 8%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 1008tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 1009[gw3] [ 8%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 1010tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 1011[gw3] [ 8%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 1012tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 1013[gw3] [ 8%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 1014tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 1015[gw3] [ 8%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 1016tests/client/test_client.py::test_client_is_initialized 1017[gw3] [ 8%] PASSED tests/client/test_client.py::test_client_is_initialized 1018tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 1019[gw3] [ 8%] PASSED tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 1020tests/client/test_client.py::test_client_with_simple_server 1021[gw3] [ 8%] PASSED tests/client/test_client.py::test_client_with_simple_server 1022tests/client/test_client.py::test_client_send_ping 1023[gw3] [ 8%] PASSED tests/client/test_client.py::test_client_send_ping 1024tests/client/test_client.py::test_client_list_tools 1025[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1026tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1027[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1028tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1029[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1030tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1031[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1032tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1033[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1034tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1035[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1036tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1037[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1038tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1039[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1040tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1041[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1042tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1043[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1044tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1045[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1046tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1047[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1048tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1049[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1050tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1051[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1052tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1053[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1054tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1055[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1056tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1057[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1058tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1059[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1060tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1061[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1062tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1063[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1064tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1065[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1066tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1067[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1068tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1069[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1070tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1071[gw13] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1072tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 1073[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 1074tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 1075[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 1076tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 1077[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 1078tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 1079[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 1080tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 1081[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 1082tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 1083[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 1084tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 1085[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 1086tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 1087[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 1088tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 1089[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 1090tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 1091[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 1092tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 1093[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 1094tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 1095[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 1096tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 1097tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 1098[gw4] [ 8%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 1099tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 1100[gw4] [ 8%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 1101tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 1102[gw4] [ 8%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 1103tests/client/test_list_roots_callback.py::test_list_roots_callback 1104[gw4] [ 8%] PASSED tests/client/test_list_roots_callback.py::test_list_roots_callback 1105tests/client/test_logging_callback.py::test_logging_callback 1106[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 1107tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 1108[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 1109tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 1110[gw15] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 1111tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 1112[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 1113tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 1114[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 1115tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 1116[gw0] [ 8%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 1117tests/client/test_session.py::test_progress_notification_reaches_request_callback_and_message_handler 1118[gw6] [ 8%] PASSED tests/client/test_session.py::test_progress_notification_reaches_request_callback_and_message_handler 1119tests/client/test_session.py::test_dispatcher_keyword_runs_over_direct_dispatch 1120[gw6] [ 8%] PASSED tests/client/test_session.py::test_dispatcher_keyword_runs_over_direct_dispatch 1121tests/client/test_session.py::test_direct_dispatch_roots_list_reaches_callback_with_synthesized_request_id 1122[gw6] [ 9%] PASSED tests/client/test_session.py::test_direct_dispatch_roots_list_reaches_callback_with_synthesized_request_id 1123tests/client/test_session.py::test_raising_notification_callbacks_over_direct_dispatch_cost_only_that_delivery 1124[gw6] [ 9%] PASSED tests/client/test_session.py::test_raising_notification_callbacks_over_direct_dispatch_cost_only_that_delivery 1125tests/client/test_session.py::test_dispatcher_keyword_send_request_before_enter_raises_runtimeerror 1126[gw6] [ 9%] PASSED tests/client/test_session.py::test_dispatcher_keyword_send_request_before_enter_raises_runtimeerror 1127tests/client/test_session.py::test_dispatcher_keyword_send_request_after_exit_raises_connection_closed 1128[gw6] [ 9%] PASSED tests/client/test_session.py::test_dispatcher_keyword_send_request_after_exit_raises_connection_closed 1129tests/client/test_session.py::test_dispatcher_keyword_request_timeout_bounds_wait_for_never_run_peer 1130[gw6] [ 9%] PASSED tests/client/test_session.py::test_dispatcher_keyword_request_timeout_bounds_wait_for_never_run_peer 1131tests/client/test_session.py::test_adopt_raises_when_no_mutual_modern_version_is_supported 1132[gw6] [ 9%] PASSED tests/client/test_session.py::test_adopt_raises_when_no_mutual_modern_version_is_supported 1133tests/client/test_session.py::test_initialize_opts_out_of_cancel_on_abandon_while_other_requests_leave_it_unset 1134[gw2] [ 9%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 1135tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 1136[gw2] [ 9%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 1137tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 1138[gw2] [ 9%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 1139tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 1140[gw2] [ 9%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 1141tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 1142[gw2] [ 9%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 1143tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 1144[gw2] [ 9%] PASSED tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 1145tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 1146[gw2] [ 9%] PASSED tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 1147tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 1148[gw2] [ 9%] PASSED tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 1149tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 1150[gw2] [ 9%] PASSED tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 1151tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 1152[gw2] [ 9%] PASSED tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 1153tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 1154[gw2] [ 9%] PASSED tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 1155tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 1156[gw2] [ 9%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 1157tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 1158[gw2] [ 9%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 1159tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1160[gw3] [ 9%] PASSED tests/client/test_client.py::test_client_list_tools 1161tests/client/test_client.py::test_client_call_tool 1162[gw7] [ 9%] PASSED tests/client/test_stdio.py::test_a_process_surviving_the_kill_escalation_is_logged_and_abandoned 1163tests/client/test_stdio.py::test_an_eperm_group_that_dies_during_the_grace_period_is_not_sigkilled 1164[gw7] [ 9%] PASSED tests/client/test_stdio.py::test_an_eperm_group_that_dies_during_the_grace_period_is_not_sigkilled 1165tests/client/test_stdio.py::test_an_eperm_group_that_outlives_the_grace_period_is_still_sigkilled 1166[gw7] [ 9%] PASSED tests/client/test_stdio.py::test_an_eperm_group_that_outlives_the_grace_period_is_still_sigkilled 1167tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[asyncio] 1168[gw8] [ 9%] PASSED tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1169tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client 1170[gw8] [ 9%] PASSED tests/client/test_session_concurrency.py::test_overlapping_sampling_requests_are_serviced_concurrently_by_the_client 1171tests/client/test_session_group.py::test_client_session_group_init 1172[gw6] [ 9%] PASSED tests/client/test_session.py::test_initialize_opts_out_of_cancel_on_abandon_while_other_requests_leave_it_unset 1173tests/client/test_session.py::test_modern_stamp_leaves_cancel_on_abandon_at_the_dispatcher_default 1174[gw6] [ 9%] PASSED tests/client/test_session.py::test_modern_stamp_leaves_cancel_on_abandon_at_the_dispatcher_default 1175tests/client/test_session.py::test_constructor_rejects_streams_and_dispatcher_together 1176[gw6] [ 9%] PASSED tests/client/test_session.py::test_constructor_rejects_streams_and_dispatcher_together 1177tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 1178[gw6] [ 9%] PASSED tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 1179tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 1180[gw2] [ 9%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1181tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1182[gw2] [ 9%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1183tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1184[gw2] [ 9%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1185tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1186[gw2] [ 9%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1187tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1188[gw2] [ 9%] PASSED tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1189tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1190[gw2] [ 9%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1191tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1192[gw2] [ 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] 1193tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1194[gw2] [ 9%] PASSED tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1195[gw5] [ 9%] PASSED tests/client/test_client_caching.py::test_a_terminal_read_reached_through_driver_rounds_is_never_cached 1196tests/client/test_client_caching.py::test_a_refresh_that_resolves_to_input_required_purges_the_warm_entry 1197[gw5] [ 9%] PASSED tests/client/test_client_caching.py::test_a_refresh_that_resolves_to_input_required_purges_the_warm_entry 1198tests/client/test_client_caching.py::test_a_listing_served_from_a_shared_store_rebuilds_output_schemas 1199[gw5] [ 9%] PASSED tests/client/test_client_caching.py::test_a_listing_served_from_a_shared_store_rebuilds_output_schemas 1200tests/client/test_client_caching.py::test_validation_from_a_served_listing_rejects_missing_structured_content 1201[gw5] [ 9%] PASSED tests/client/test_client_caching.py::test_validation_from_a_served_listing_rejects_missing_structured_content 1202tests/client/test_client_caching.py::test_a_cache_hit_listing_still_mirrors_x_mcp_headers_on_tools_call 1203[gw5] [ 9%] PASSED tests/client/test_client_caching.py::test_a_cache_hit_listing_still_mirrors_x_mcp_headers_on_tools_call 1204tests/client/test_client_caching.py::test_a_shared_store_hit_prunes_a_header_map_the_writers_filter_dropped 1205[gw5] [ 9%] PASSED tests/client/test_client_caching.py::test_a_shared_store_hit_prunes_a_header_map_the_writers_filter_dropped 1206tests/client/test_client_caching.py::test_a_tools_list_changed_notification_makes_the_next_list_refetch 1207[gw8] [ 9%] PASSED tests/client/test_session_group.py::test_client_session_group_init 1208tests/client/test_session_group.py::test_client_session_group_component_properties 1209[gw8] [ 9%] PASSED tests/client/test_session_group.py::test_client_session_group_component_properties 1210tests/client/test_session_group.py::test_client_session_group_call_tool 1211[gw8] [ 9%] PASSED tests/client/test_session_group.py::test_client_session_group_call_tool 1212tests/client/test_session_group.py::test_client_session_group_call_tool_forwards_allow_input_required 1213[gw4] [ 9%] PASSED tests/client/test_logging_callback.py::test_logging_callback 1214tests/client/test_notification_response.py::test_non_compliant_notification_response 1215[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 1216tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 1217[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 1218tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 1219[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 1220tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 1221[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 1222tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 1223[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 1224tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 1225[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 1226tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 1227[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 1228tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 1229[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 1230tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 1231[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 1232tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 1233[gw15] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 1234[gw9] [ 9%] PASSED tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[key] 1235tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[entry-string] 1236[gw12] [ 10%] PASSED tests/docs_src/test_opentelemetry.py::test_a_plain_server_is_traced_with_no_extra_code 1237tests/docs_src/test_opentelemetry.py::test_client_and_server_share_one_trace 1238[gw12] [ 10%] PASSED tests/docs_src/test_opentelemetry.py::test_client_and_server_share_one_trace 1239tests/docs_src/test_pagination.py::test_mcpserver_never_pages 1240[gw12] [ 10%] PASSED tests/docs_src/test_pagination.py::test_mcpserver_never_pages 1241tests/docs_src/test_pagination.py::test_first_page_has_ten_resources_and_a_cursor 1242[gw12] [ 10%] PASSED tests/docs_src/test_pagination.py::test_first_page_has_ten_resources_and_a_cursor 1243tests/docs_src/test_pagination.py::test_the_cursor_resumes_where_the_last_page_stopped 1244[gw12] [ 10%] PASSED tests/docs_src/test_pagination.py::test_the_cursor_resumes_where_the_last_page_stopped 1245tests/docs_src/test_pagination.py::test_the_last_page_carries_no_cursor 1246[gw12] [ 10%] PASSED tests/docs_src/test_pagination.py::test_the_last_page_carries_no_cursor 1247tests/docs_src/test_pagination.py::test_the_client_loop_collects_all_one_hundred_in_order 1248[gw12] [ 10%] PASSED tests/docs_src/test_pagination.py::test_the_client_loop_collects_all_one_hundred_in_order 1249tests/docs_src/test_pagination.py::test_the_client_loop_runs_once_against_a_server_that_does_not_page 1250[gw12] [ 10%] PASSED tests/docs_src/test_pagination.py::test_the_client_loop_runs_once_against_a_server_that_does_not_page 1251tests/docs_src/test_pagination.py::test_an_invented_cursor_is_an_error 1252[gw12] [ 10%] PASSED tests/docs_src/test_pagination.py::test_an_invented_cursor_is_an_error 1253tests/docs_src/test_progress.py::test_context_parameter_is_invisible_to_the_model 1254[gw12] [ 10%] PASSED tests/docs_src/test_progress.py::test_context_parameter_is_invisible_to_the_model 1255tests/docs_src/test_progress.py::test_each_report_becomes_one_callback_invocation_in_order 1256[gw12] [ 10%] PASSED tests/docs_src/test_progress.py::test_each_report_becomes_one_callback_invocation_in_order 1257tests/docs_src/test_progress.py::test_over_a_wire_dispatcher_callbacks_race_the_result 1258[gw12] [ 10%] PASSED tests/docs_src/test_progress.py::test_over_a_wire_dispatcher_callbacks_race_the_result 1259tests/docs_src/test_progress.py::test_without_a_callback_report_progress_is_a_no_op 1260[gw12] [ 10%] PASSED tests/docs_src/test_progress.py::test_without_a_callback_report_progress_is_a_no_op 1261tests/docs_src/test_progress.py::test_progress_callback_is_per_call_not_per_client 1262[gw12] [ 10%] PASSED tests/docs_src/test_progress.py::test_progress_callback_is_per_call_not_per_client 1263tests/docs_src/test_progress.py::test_omitting_total_reaches_the_callback_as_none 1264[gw12] [ 10%] PASSED tests/docs_src/test_progress.py::test_omitting_total_reaches_the_callback_as_none 1265tests/docs_src/test_prompts.py::test_function_becomes_the_prompt 1266[gw4] [ 10%] PASSED tests/client/test_notification_response.py::test_non_compliant_notification_response 1267tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1268[gw4] [ 10%] PASSED tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1269tests/docs_src/test_client.py::test_the_pagination_loop_collects_every_tool_from_a_single_page_server 1270[gw8] [ 10%] PASSED tests/client/test_session_group.py::test_client_session_group_call_tool_forwards_allow_input_required 1271tests/client/test_session_group.py::test_client_session_group_connect_to_server 1272[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 1273tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] 1274tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 1275[gw1] [ 10%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 1276tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1277[gw1] [ 10%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1278tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 1279[gw1] [ 10%] PASSED tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 1280tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 1281[gw1] [ 10%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 1282tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 1283[gw1] [ 10%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 1284tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 1285[gw1] [ 10%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 1286tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 1287[gw1] [ 10%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 1288tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 1289[gw1] [ 10%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 1290tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 1291[gw1] [ 10%] PASSED tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 1292tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 1293[gw1] [ 10%] PASSED tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 1294tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 1295[gw1] [ 10%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 1296tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 1297[gw1] [ 10%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 1298tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 1299[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] 1300tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] 1301[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] 1302tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] 1303[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] 1304tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] 1305[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] 1306tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] 1307[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] 1308tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] 1309[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] 1310tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] 1311[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] 1312tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] 1313[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] 1314[gw1] [ 10%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 1315tests/client/test_auth.py::test_registration_request_sends_application_type 1316[gw1] [ 10%] PASSED tests/client/test_auth.py::test_registration_request_sends_application_type 1317tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 1318[gw1] [ 10%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 1319tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 1320[gw1] [ 10%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 1321tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 1322[gw1] [ 10%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 1323tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 1324[gw1] [ 10%] PASSED tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 1325tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 1326[gw1] [ 10%] PASSED tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 1327tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 1328[gw1] [ 10%] PASSED tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 1329tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 1330tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 1331[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 1332tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 1333[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 1334tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 1335[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 1336tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 1337[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 1338tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 1339[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 1340tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 1341[gw13] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 1342tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 1343tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 1344[gw0] [ 10%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 1345tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 1346[gw0] [ 10%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 1347tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 1348[gw0] [ 10%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 1349tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 1350[gw0] [ 10%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 1351tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1352[gw0] [ 10%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 1353tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1354[gw0] [ 11%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 1355tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1356[gw0] [ 11%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 1357tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 1358[gw0] [ 11%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 1359tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 1360[gw0] [ 11%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 1361tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 1362[gw0] [ 11%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 1363tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 1364[gw0] [ 11%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 1365tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1366[gw0] [ 11%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1367tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1368[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 1369tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 1370[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 1371tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 1372[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 1373tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 1374[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 1375tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 1376[gw6] [ 11%] PASSED tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 1377tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 1378[gw6] [ 11%] PASSED tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 1379tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 1380[gw6] [ 11%] PASSED tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 1381tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 1382[gw6] [ 11%] PASSED tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 1383tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 1384[gw6] [ 11%] PASSED tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 1385tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 1386[gw6] [ 11%] PASSED tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 1387tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 1388[gw6] [ 11%] PASSED tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 1389tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 1390[gw6] [ 11%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 1391tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 1392[gw6] [ 11%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 1393tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 1394[gw6] [ 11%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 1395tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 1396[gw8] [ 11%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server 1397tests/client/test_session_group.py::test_client_session_group_connect_to_server_with_name_hook 1398[gw8] [ 11%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server_with_name_hook 1399tests/client/test_session_group.py::test_client_session_group_disconnect_from_server 1400[gw8] [ 11%] PASSED tests/client/test_session_group.py::test_client_session_group_disconnect_from_server 1401tests/client/test_session_group.py::test_client_session_group_connect_to_server_duplicate_tool_raises_error 1402[gw8] [ 11%] PASSED tests/client/test_session_group.py::test_client_session_group_connect_to_server_duplicate_tool_raises_error 1403tests/client/test_session_group.py::test_client_session_group_disconnect_non_existent_server 1404[gw8] [ 11%] PASSED tests/client/test_session_group.py::test_client_session_group_disconnect_non_existent_server 1405tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance0-stdio-mcp.client.session_group.mcp.stdio_client] 1406[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 1407tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 1408[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 1409tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 1410[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 1411tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 1412[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 1413tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 1414[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 1415tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1416[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1417tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1418[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1419tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1420[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1421tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1422[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1423tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1424[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1425tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1426[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1427tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1428[gw13] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1429tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1430[gw2] [ 11%] PASSED tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1431tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1432[gw2] [ 11%] PASSED tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1433tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1434[gw2] [ 11%] PASSED tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1435tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1436[gw2] [ 11%] PASSED tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1437tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1438[gw2] [ 11%] PASSED tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1439tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1440[gw2] [ 11%] PASSED tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1441tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1442[gw2] [ 11%] PASSED tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1443tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1444[gw2] [ 11%] PASSED tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1445tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1446[gw2] [ 11%] PASSED tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1447tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1448[gw2] [ 11%] PASSED tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1449tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1450[gw2] [ 11%] PASSED tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1451tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1452[gw2] [ 11%] PASSED tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1453tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1454[gw2] [ 11%] PASSED tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1455tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1456[gw2] [ 11%] PASSED tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1457tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1458[gw2] [ 11%] PASSED tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1459tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1460[gw2] [ 11%] PASSED tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1461tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1462[gw2] [ 11%] PASSED tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1463tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1464[gw2] [ 11%] PASSED tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1465tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1466[gw2] [ 11%] PASSED tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1467tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1468[gw2] [ 11%] PASSED tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1469tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1470[gw2] [ 12%] PASSED tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1471tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1472[gw12] [ 12%] PASSED tests/docs_src/test_prompts.py::test_function_becomes_the_prompt 1473[gw9] [ 12%] PASSED tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[entry-string] 1474tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[keep-string] 1475[gw5] [ 12%] PASSED tests/client/test_client_caching.py::test_a_tools_list_changed_notification_makes_the_next_list_refetch 1476tests/client/test_client_caching.py::test_a_resource_updated_notification_evicts_that_uris_read_entry 1477[gw5] [ 12%] PASSED tests/client/test_client_caching.py::test_a_resource_updated_notification_evicts_that_uris_read_entry 1478tests/client/test_client_caching.py::test_the_modern_in_process_path_drops_the_eviction_notification 1479[gw5] [ 12%] PASSED tests/client/test_client_caching.py::test_the_modern_in_process_path_drops_the_eviction_notification 1480tests/client/test_client_caching.py::test_a_discover_result_never_enters_the_response_cache 1481[gw5] [ 12%] PASSED tests/client/test_client_caching.py::test_a_discover_result_never_enters_the_response_cache 1482tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5] 1483[gw5] [ 12%] PASSED tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5] 1484tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5.0] 1485[gw5] [ 12%] PASSED tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5.0] 1486tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5] 1487[gw5] [ 12%] PASSED tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5] 1488tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5.0] 1489[gw5] [ 12%] PASSED tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5.0] 1490tests/client/test_client_caching.py::test_each_notification_evicts_exactly_its_entries_end_to_end 1491[gw5] [ 12%] PASSED tests/client/test_client_caching.py::test_each_notification_evicts_exactly_its_entries_end_to_end 1492tests/client/test_client_caching.py::test_private_entries_never_cross_partitions_between_clients_sharing_a_store 1493[gw5] [ 12%] PASSED tests/client/test_client_caching.py::test_private_entries_never_cross_partitions_between_clients_sharing_a_store 1494tests/client/test_client_caching.py::test_a_server_stamped_public_entry_does_not_cross_partitions_by_default 1495[gw5] [ 12%] PASSED tests/client/test_client_caching.py::test_a_server_stamped_public_entry_does_not_cross_partitions_by_default 1496tests/client/test_client_caching.py::test_share_public_serves_a_server_stamped_public_entry_across_partitions 1497tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1498[gw4] [ 12%] PASSED tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1499tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1500[gw4] [ 12%] PASSED tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1501tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1502[gw4] [ 12%] PASSED tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1503tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1504[gw4] [ 12%] PASSED tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1505tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1506[gw4] [ 12%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1507tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1508[gw4] [ 12%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1509tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1510[gw4] [ 12%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1511tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1512[gw4] [ 12%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1513tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1514tests/docs_src/test_prompts.py::test_returned_string_becomes_one_user_message 1515[gw12] [ 12%] PASSED tests/docs_src/test_prompts.py::test_returned_string_becomes_one_user_message 1516tests/docs_src/test_prompts.py::test_missing_required_argument_is_a_protocol_error 1517[gw12] [ 12%] PASSED tests/docs_src/test_prompts.py::test_missing_required_argument_is_a_protocol_error 1518tests/docs_src/test_prompts.py::test_message_list_becomes_a_multi_turn_template 1519[gw12] [ 12%] PASSED tests/docs_src/test_prompts.py::test_message_list_becomes_a_multi_turn_template 1520tests/docs_src/test_prompts.py::test_title_and_argument_descriptions 1521[gw12] [ 12%] PASSED tests/docs_src/test_prompts.py::test_title_and_argument_descriptions 1522tests/docs_src/test_prompts.py::test_default_value_makes_the_argument_optional 1523[gw12] [ 12%] PASSED tests/docs_src/test_prompts.py::test_default_value_makes_the_argument_optional 1524tests/docs_src/test_protocol_versions.py::test_auto_lands_on_the_modern_version 1525[gw12] [ 12%] PASSED tests/docs_src/test_protocol_versions.py::test_auto_lands_on_the_modern_version 1526tests/docs_src/test_protocol_versions.py::test_legacy_forces_the_initialize_handshake 1527[gw12] [ 12%] PASSED tests/docs_src/test_protocol_versions.py::test_legacy_forces_the_initialize_handshake 1528tests/docs_src/test_protocol_versions.py::test_version_pin_sends_nothing_and_knows_nothing 1529[gw12] [ 12%] PASSED tests/docs_src/test_protocol_versions.py::test_version_pin_sends_nothing_and_knows_nothing 1530tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 1531[gw12] [ 12%] PASSED tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 1532tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 1533[gw12] [ 12%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 1534tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 1535[gw12] [ 12%] PASSED tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 1536tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 1537[gw4] [ 12%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1538tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1539[gw1] [ 12%] PASSED tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 1540tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 1541[gw1] [ 12%] PASSED tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 1542tests/client/test_auth.py::test_build_metadata[simple-url] 1543[gw0] [ 12%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1544tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1545[gw0] [ 12%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1546tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1547[gw0] [ 12%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1548tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1549[gw0] [ 12%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1550tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1551[gw0] [ 12%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1552tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1553[gw0] [ 12%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1554tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1555[gw0] [ 12%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1556tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1557[gw0] [ 12%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1558tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1559[gw0] [ 12%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1560tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1561[gw13] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1562tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 1563[gw13] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 1564tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 1565[gw13] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 1566tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 1567[gw13] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 1568tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] 1569[gw13] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] 1570tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] 1571[gw13] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] 1572tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] 1573[gw13] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] 1574tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1575[gw0] [ 12%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1576tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1577[gw0] [ 12%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1578[gw11] [ 12%] PASSED tests/docs_src/test_client.py::test_the_pagination_loop_collects_every_tool_from_a_single_page_server 1579tests/docs_src/test_client.py::test_raise_exceptions_is_a_constructor_flag 1580[gw11] [ 12%] PASSED tests/docs_src/test_client.py::test_raise_exceptions_is_a_constructor_flag 1581tests/docs_src/test_client_callbacks.py::test_the_callback_answers_the_servers_question 1582[gw11] [ 12%] PASSED tests/docs_src/test_client_callbacks.py::test_the_callback_answers_the_servers_question 1583tests/docs_src/test_client_callbacks.py::test_the_callback_receives_the_servers_question_as_form_params 1584[gw11] [ 13%] PASSED tests/docs_src/test_client_callbacks.py::test_the_callback_receives_the_servers_question_as_form_params 1585tests/docs_src/test_client_callbacks.py::test_returning_error_data_refuses_the_request_and_fails_the_call 1586[gw11] [ 13%] PASSED tests/docs_src/test_client_callbacks.py::test_returning_error_data_refuses_the_request_and_fails_the_call 1587tests/docs_src/test_client_callbacks.py::test_without_the_callback_the_servers_request_is_refused 1588[gw11] [ 13%] PASSED tests/docs_src/test_client_callbacks.py::test_without_the_callback_the_servers_request_is_refused 1589tests/docs_src/test_client_callbacks.py::test_registering_the_callback_declares_the_capability 1590[gw11] [ 13%] PASSED tests/docs_src/test_client_callbacks.py::test_registering_the_callback_declares_the_capability 1591tests/docs_src/test_client_callbacks.py::test_no_callbacks_means_no_capabilities 1592[gw11] [ 13%] PASSED tests/docs_src/test_client_callbacks.py::test_no_callbacks_means_no_capabilities 1593tests/docs_src/test_client_callbacks.py::test_each_callback_declares_its_own_capability 1594[gw11] [ 13%] PASSED tests/docs_src/test_client_callbacks.py::test_each_callback_declares_its_own_capability 1595tests/docs_src/test_client_callbacks.py::test_the_modern_in_memory_path_has_no_back_channel 1596[gw11] [ 13%] PASSED tests/docs_src/test_client_callbacks.py::test_the_modern_in_memory_path_has_no_back_channel 1597tests/docs_src/test_client_callbacks.py::test_the_deprecated_callbacks_return_what_the_page_says 1598[gw11] [ 13%] PASSED tests/docs_src/test_client_callbacks.py::test_the_deprecated_callbacks_return_what_the_page_says 1599tests/docs_src/test_client_transports.py::test_the_in_memory_program_on_the_page_runs 1600[gw11] [ 13%] PASSED tests/docs_src/test_client_transports.py::test_the_in_memory_program_on_the_page_runs 1601tests/docs_src/test_client_transports.py::test_in_memory_client_talks_to_the_server_object 1602[gw11] [ 13%] PASSED tests/docs_src/test_client_transports.py::test_in_memory_client_talks_to_the_server_object 1603tests/docs_src/test_client_transports.py::test_constructing_a_client_does_not_connect_it 1604[gw11] [ 13%] PASSED tests/docs_src/test_client_transports.py::test_constructing_a_client_does_not_connect_it 1605tests/docs_src/test_client_transports.py::test_stdio_parameters_go_straight_to_client 1606[gw11] [ 13%] PASSED tests/docs_src/test_client_transports.py::test_stdio_parameters_go_straight_to_client 1607tests/docs_src/test_client_transports.py::test_the_child_environment_is_an_allowlist 1608[gw11] [ 13%] PASSED tests/docs_src/test_client_transports.py::test_the_child_environment_is_an_allowlist 1609tests/docs_src/test_completions.py::test_a_server_with_no_handler_has_no_completions_capability 1610[gw11] [ 13%] PASSED tests/docs_src/test_completions.py::test_a_server_with_no_handler_has_no_completions_capability 1611tests/docs_src/test_completions.py::test_completing_without_a_handler_is_method_not_found 1612[gw11] [ 13%] PASSED tests/docs_src/test_completions.py::test_completing_without_a_handler_is_method_not_found 1613tests/docs_src/test_completions.py::test_registering_the_handler_advertises_the_capability 1614[gw11] [ 13%] PASSED tests/docs_src/test_completions.py::test_registering_the_handler_advertises_the_capability 1615tests/docs_src/test_completions.py::test_prompt_argument_completion_filters_on_the_typed_prefix 1616[gw11] [ 13%] PASSED tests/docs_src/test_completions.py::test_prompt_argument_completion_filters_on_the_typed_prefix 1617tests/docs_src/test_completions.py::test_empty_value_returns_every_suggestion 1618[gw11] [ 13%] PASSED tests/docs_src/test_completions.py::test_empty_value_returns_every_suggestion 1619tests/docs_src/test_completions.py::test_returning_none_is_an_empty_list_not_an_error 1620[gw7] [ 13%] PASSED tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[asyncio] 1621tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[trio] 1622[gw12] [ 13%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 1623tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 1624[gw12] [ 13%] PASSED tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 1625tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 1626[gw12] [ 13%] PASSED tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 1627tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 1628[gw7] [ 13%] PASSED tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[trio] 1629tests/client/test_stdio.py::test_exiting_the_context_terminates_the_entire_process_tree 1630[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 1631tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 1632[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 1633tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 1634[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 1635tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 1636[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 1637tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 1638[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 1639tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 1640[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 1641tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1642[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1643tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1644[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1645tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1646[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1647tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1648[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1649tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1650[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1651tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1652[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1653tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1654[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1655tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1656[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1657tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1658[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1659tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1660[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1661tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1662[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1663tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1664[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1665tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 1666[gw14] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 1667tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 1668[gw8] [ 13%] PASSED tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance0-stdio-mcp.client.session_group.mcp.stdio_client] 1669tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance1-sse-mcp.client.session_group.sse_client] 1670[gw8] [ 13%] PASSED tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance1-sse-mcp.client.session_group.sse_client] 1671tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance2-streamablehttp-mcp.client.session_group.streamable_http_client] 1672[gw12] [ 13%] PASSED tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 1673tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 1674[gw5] [ 13%] PASSED tests/client/test_client_caching.py::test_share_public_serves_a_server_stamped_public_entry_across_partitions 1675tests/client/test_client_caching.py::test_same_partition_clients_share_read_entries_through_the_store 1676[gw2] [ 13%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1677tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1678[gw2] [ 13%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1679tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1680[gw2] [ 13%] PASSED tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1681tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1682[gw2] [ 13%] PASSED tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1683tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1684[gw2] [ 13%] PASSED tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1685tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1686[gw2] [ 13%] PASSED tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1687tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1688[gw2] [ 13%] PASSED tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1689tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1690[gw2] [ 13%] PASSED tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1691tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1692[gw2] [ 13%] PASSED tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1693tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1694[gw2] [ 13%] PASSED tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1695tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1696[gw2] [ 13%] PASSED tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1697tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1698[gw2] [ 13%] PASSED tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1699[gw9] [ 14%] PASSED tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[keep-string] 1700tests/docs/test_translations.py::test_glossary_of_the_wrong_shape_stops_translate_with_exit_2_but_never_breaks_stage[avoid-string] 1701tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1702[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1703tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1704[gw0] [ 14%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1705tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1706[gw0] [ 14%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1707tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1708[gw0] [ 14%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1709tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1710[gw0] [ 14%] PASSED tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1711tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1712[gw0] [ 14%] PASSED tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1713tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1714[gw0] [ 14%] PASSED tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1715tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1716[gw0] [ 14%] PASSED tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1717tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1718[gw0] [ 14%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1719tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1720[gw0] [ 14%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1721tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1722[gw5] [ 14%] PASSED tests/client/test_client_caching.py::test_same_partition_clients_share_read_entries_through_the_store 1723tests/client/test_client_caching.py::test_mutating_returned_results_never_corrupts_the_cached_entry 1724[gw5] [ 14%] PASSED tests/client/test_client_caching.py::test_mutating_returned_results_never_corrupts_the_cached_entry 1725tests/client/test_client_caching.py::test_a_cache_hit_still_yields_to_the_event_loop 1726[gw5] [ 14%] PASSED tests/client/test_client_caching.py::test_a_cache_hit_still_yields_to_the_event_loop 1727tests/client/test_client_caching.py::test_a_legacy_peer_injecting_cache_hints_caches_nothing 1728[gw5] [ 14%] PASSED tests/client/test_client_caching.py::test_a_legacy_peer_injecting_cache_hints_caches_nothing 1729tests/client/test_client_caching.py::test_a_verb_cancelled_mid_write_leaves_no_stale_arm_pair 1730[gw5] [ 14%] PASSED tests/client/test_client_caching.py::test_a_verb_cancelled_mid_write_leaves_no_stale_arm_pair 1731tests/client/test_client_caching.py::test_an_eviction_landing_mid_fetch_discards_that_fetchs_write 1732[gw5] [ 14%] PASSED tests/client/test_client_caching.py::test_an_eviction_landing_mid_fetch_discards_that_fetchs_write 1733tests/client/test_client_caching.py::test_read_resource_bypass_neither_serves_nor_disturbs_a_warm_entry 1734[gw5] [ 14%] PASSED tests/client/test_client_caching.py::test_read_resource_bypass_neither_serves_nor_disturbs_a_warm_entry 1735tests/client/test_client_caching.py::test_read_resource_refresh_refetches_and_restores 1736[gw5] [ 14%] PASSED tests/client/test_client_caching.py::test_read_resource_refresh_refetches_and_restores 1737tests/client/test_client_caching.py::test_a_closed_client_raises_on_every_cacheable_verb_instead_of_serving_the_cache 1738[gw5] [ 14%] PASSED tests/client/test_client_caching.py::test_a_closed_client_raises_on_every_cacheable_verb_instead_of_serving_the_cache 1739tests/client/test_client_extensions.py::test_mapping_extensions_get_the_migration_error 1740[gw5] [ 14%] PASSED tests/client/test_client_extensions.py::test_mapping_extensions_get_the_migration_error 1741[gw0] [ 14%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1742tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1743[gw0] [ 14%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1744[gw10] [ 14%] PASSED tests/docs_src/test_first_steps.py::test_call_the_tool 1745[gw14] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 1746tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 1747[gw14] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 1748tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 1749[gw14] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 1750tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 1751[gw14] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 1752tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 1753[gw14] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 1754tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 1755[gw14] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 1756tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 1757[gw14] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 1758tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 1759[gw11] [ 14%] PASSED tests/docs_src/test_completions.py::test_returning_none_is_an_empty_list_not_an_error 1760tests/docs_src/test_completions.py::test_context_arguments_resolve_a_dependent_parameter 1761[gw11] [ 14%] PASSED tests/docs_src/test_completions.py::test_context_arguments_resolve_a_dependent_parameter 1762tests/docs_src/test_completions.py::test_the_typed_prefix_still_filters_a_dependent_parameter 1763[gw11] [ 14%] PASSED tests/docs_src/test_completions.py::test_the_typed_prefix_still_filters_a_dependent_parameter 1764tests/docs_src/test_completions.py::test_context_arguments_is_optional 1765[gw11] [ 14%] PASSED tests/docs_src/test_completions.py::test_context_arguments_is_optional 1766tests/docs_src/test_completions.py::test_no_context_means_no_suggestions 1767[gw11] [ 14%] PASSED tests/docs_src/test_completions.py::test_no_context_means_no_suggestions 1768tests/docs_src/test_completions.py::test_the_prompt_branch_is_untouched_by_the_new_one 1769[gw11] [ 14%] PASSED tests/docs_src/test_completions.py::test_the_prompt_branch_is_untouched_by_the_new_one 1770tests/docs_src/test_context.py::test_the_context_parameter_is_not_in_the_input_schema 1771[gw11] [ 14%] PASSED tests/docs_src/test_context.py::test_the_context_parameter_is_not_in_the_input_schema 1772tests/docs_src/test_context.py::test_every_request_gets_its_own_context 1773[gw11] [ 14%] PASSED tests/docs_src/test_context.py::test_every_request_gets_its_own_context 1774tests/docs_src/test_context.py::test_a_tool_reads_the_servers_own_resource 1775[gw11] [ 14%] PASSED tests/docs_src/test_context.py::test_a_tool_reads_the_servers_own_resource 1776tests/docs_src/test_context.py::test_a_context_only_tool_takes_no_arguments 1777[gw11] [ 14%] PASSED tests/docs_src/test_context.py::test_a_context_only_tool_takes_no_arguments 1778tests/docs_src/test_context.py::test_register_a_tool_at_runtime_and_notify_the_client 1779[gw11] [ 14%] PASSED tests/docs_src/test_context.py::test_register_a_tool_at_runtime_and_notify_the_client 1780tests/docs_src/test_dependencies.py::test_the_resolver_fills_the_parameter_from_the_tools_own_argument 1781[gw11] [ 14%] PASSED tests/docs_src/test_dependencies.py::test_the_resolver_fills_the_parameter_from_the_tools_own_argument 1782tests/docs_src/test_dependencies.py::test_the_resolved_parameter_is_invisible_to_the_model 1783[gw11] [ 14%] PASSED tests/docs_src/test_dependencies.py::test_the_resolved_parameter_is_invisible_to_the_model 1784tests/docs_src/test_dependencies.py::test_a_client_supplied_value_for_a_resolved_parameter_is_ignored 1785[gw11] [ 14%] PASSED tests/docs_src/test_dependencies.py::test_a_client_supplied_value_for_a_resolved_parameter_is_ignored 1786tests/docs_src/test_dependencies.py::test_a_resolver_can_depend_on_another_resolver 1787[gw11] [ 14%] PASSED tests/docs_src/test_dependencies.py::test_a_resolver_can_depend_on_another_resolver 1788tests/docs_src/test_dependencies.py::test_a_shared_dependency_runs_once_per_call 1789[gw6] [ 14%] PASSED tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 1790tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 1791[gw6] [ 14%] PASSED tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 1792tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 1793[gw6] [ 14%] PASSED tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 1794tests/client/test_session.py::test_era_neutral_properties_after_discover 1795[gw6] [ 14%] PASSED tests/client/test_session.py::test_era_neutral_properties_after_discover 1796tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 1797[gw6] [ 14%] PASSED tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 1798tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 1799[gw6] [ 14%] PASSED tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 1800tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 1801[gw6] [ 14%] PASSED tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 1802tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 1803[gw6] [ 14%] PASSED tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 1804tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 1805[gw6] [ 14%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 1806tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 1807[gw6] [ 14%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 1808tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 1809[gw6] [ 14%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 1810[gw3] [ 14%] PASSED tests/client/test_client.py::test_client_call_tool 1811tests/client/test_client.py::test_read_resource 1812[gw3] [ 15%] PASSED tests/client/test_client.py::test_read_resource 1813tests/client/test_client.py::test_read_resource_error_propagates 1814[gw3] [ 15%] PASSED tests/client/test_client.py::test_read_resource_error_propagates 1815tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 1816[gw3] [ 15%] PASSED tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 1817tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 1818[gw3] [ 15%] PASSED tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 1819tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 1820[gw3] [ 15%] PASSED tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 1821tests/client/test_client.py::test_get_prompt 1822[gw3] [ 15%] PASSED tests/client/test_client.py::test_get_prompt 1823tests/client/test_client.py::test_client_session_property_before_enter 1824[gw3] [ 15%] PASSED tests/client/test_client.py::test_client_session_property_before_enter 1825tests/client/test_client.py::test_client_reentry_raises_runtime_error 1826[gw3] [ 15%] PASSED tests/client/test_client.py::test_client_reentry_raises_runtime_error 1827tests/client/test_client.py::test_client_send_progress_notification 1828[gw3] [ 15%] PASSED tests/client/test_client.py::test_client_send_progress_notification 1829tests/client/test_client.py::test_client_subscribe_resource 1830[gw3] [ 15%] PASSED tests/client/test_client.py::test_client_subscribe_resource 1831tests/client/test_client.py::test_client_unsubscribe_resource 1832[gw3] [ 15%] PASSED tests/client/test_client.py::test_client_unsubscribe_resource 1833tests/client/test_client.py::test_client_set_logging_level 1834[gw3] [ 15%] PASSED tests/client/test_client.py::test_client_set_logging_level 1835tests/client/test_client.py::test_client_list_resources_with_params 1836[gw3] [ 15%] PASSED tests/client/test_client.py::test_client_list_resources_with_params 1837tests/client/test_client.py::test_client_list_resource_templates 1838[gw3] [ 15%] PASSED tests/client/test_client.py::test_client_list_resource_templates 1839tests/client/test_client.py::test_list_prompts 1840[gw3] [ 15%] PASSED tests/client/test_client.py::test_list_prompts 1841tests/client/test_client.py::test_complete_with_prompt_reference 1842[gw3] [ 15%] PASSED tests/client/test_client.py::test_complete_with_prompt_reference 1843tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport 1844tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1845[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1846tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1847[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1848tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1849[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1850tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1851[gw0] [ 15%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1852[gw3] [ 15%] PASSED tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport 1853tests/client/test_client.py::test_client_uses_transport_directly 1854[gw8] [ 15%] PASSED tests/client/test_session_group.py::test_client_session_group_establish_session_parameterized[server_params_instance2-streamablehttp-mcp.client.session_group.streamable_http_client] 1855tests/client/test_session_notification_bindings.py::test_duplicate_binding_method_rejected 1856[gw8] [ 15%] PASSED tests/client/test_session_notification_bindings.py::test_duplicate_binding_method_rejected 1857tests/client/test_session_notification_bindings.py::test_bound_vendor_notifications_are_delivered_in_order 1858[gw8] [ 15%] PASSED tests/client/test_session_notification_bindings.py::test_bound_vendor_notifications_are_delivered_in_order 1859tests/client/test_session_notification_bindings.py::test_binding_handler_may_do_session_io_without_deadlock 1860[gw8] [ 15%] PASSED tests/client/test_session_notification_bindings.py::test_binding_handler_may_do_session_io_without_deadlock 1861tests/client/test_session_notification_bindings.py::test_overflow_drops_oldest_event_with_a_warning 1862tests/client/test_client_extensions.py::test_one_extension_claiming_a_tag_twice_reads_as_one_owner 1863[gw5] [ 15%] PASSED tests/client/test_client_extensions.py::test_one_extension_claiming_a_tag_twice_reads_as_one_owner 1864tests/client/test_client_extensions.py::test_bare_extension_instance_is_rejected_with_the_fix_named 1865[gw5] [ 15%] PASSED tests/client/test_client_extensions.py::test_bare_extension_instance_is_rejected_with_the_fix_named 1866tests/client/test_client_extensions.py::test_invalid_per_instance_identifier_raises_the_validators_error 1867[gw5] [ 15%] PASSED tests/client/test_client_extensions.py::test_invalid_per_instance_identifier_raises_the_validators_error 1868tests/client/test_client_extensions.py::test_duplicate_extension_identifiers_are_rejected_naming_the_identifier 1869[gw5] [ 15%] PASSED tests/client/test_client_extensions.py::test_duplicate_extension_identifiers_are_rejected_naming_the_identifier 1870tests/client/test_client_extensions.py::test_conflicting_claims_across_extensions_name_both_owners 1871[gw5] [ 15%] PASSED tests/client/test_client_extensions.py::test_conflicting_claims_across_extensions_name_both_owners 1872tests/client/test_client_extensions.py::test_conflicting_notification_bindings_name_both_owners 1873[gw12] [ 15%] PASSED tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 1874[gw4] [ 15%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1875[gw11] [ 15%] PASSED tests/docs_src/test_dependencies.py::test_a_shared_dependency_runs_once_per_call 1876[gw8] [ 15%] PASSED tests/client/test_session_notification_bindings.py::test_overflow_drops_oldest_event_with_a_warning 1877tests/client/test_session_notification_bindings.py::test_invalid_params_are_warned_and_dropped_without_reaching_handler 1878[gw14] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 1879tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 1880[gw14] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 1881tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 1882[gw14] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 1883tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 1884[gw14] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 1885tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 1886[gw14] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 1887tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 1888[gw14] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 1889tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] 1890[gw14] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] 1891tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] 1892[gw14] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] 1893tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial001.py] 1894[gw14] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial001.py] 1895tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial001.py] 1896[gw14] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial001.py] 1897tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 1898[gw10] [ 15%] PASSED tests/docs_src/test_first_steps.py::test_templated_resource_is_a_template_not_a_resource 1899tests/docs_src/test_first_steps.py::test_read_the_resource_template 1900[gw10] [ 15%] PASSED tests/docs_src/test_first_steps.py::test_read_the_resource_template 1901tests/docs_src/test_first_steps.py::test_get_the_prompt 1902[gw10] [ 15%] PASSED tests/docs_src/test_first_steps.py::test_get_the_prompt 1903tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 1904[gw10] [ 15%] PASSED tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 1905tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 1906[gw10] [ 15%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 1907tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 1908[gw10] [ 15%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 1909tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 1910[gw10] [ 15%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 1911tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 1912[gw10] [ 15%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 1913tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 1914[gw10] [ 15%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 1915tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 1916[gw10] [ 15%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 1917tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 1918[gw10] [ 15%] PASSED tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 1919tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 1920[gw10] [ 15%] PASSED tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 1921tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 1922[gw10] [ 15%] PASSED tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 1923tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 1924[gw10] [ 15%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 1925tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 1926[gw10] [ 16%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 1927tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 1928[gw10] [ 16%] PASSED tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 1929tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 1930[gw10] [ 16%] PASSED tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 1931tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 1932[gw10] [ 16%] PASSED tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 1933tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 1934[gw10] [ 16%] PASSED tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 1935tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 1936[gw10] [ 16%] PASSED tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 1937tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 1938[gw10] [ 16%] PASSED tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 1939[gw5] [ 16%] PASSED tests/client/test_client_extensions.py::test_conflicting_notification_bindings_name_both_owners 1940tests/client/test_client_extensions.py::test_declarations_are_read_exactly_once_at_construction 1941tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1942[gw4] [ 16%] PASSED tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1943tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1944[gw4] [ 16%] PASSED tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1945tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1946[gw4] [ 16%] PASSED tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1947tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 1948[gw4] [ 16%] PASSED tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 1949tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 1950[gw4] [ 16%] PASSED tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 1951tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 1952[gw4] [ 16%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 1953tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 1954[gw4] [ 16%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 1955tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 1956[gw4] [ 16%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 1957tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 1958[gw4] [ 16%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 1959tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 1960[gw4] [ 16%] PASSED tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 1961tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize 1962[gw4] [ 16%] PASSED tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize 1963tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises 1964[gw4] [ 16%] PASSED tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises 1965tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] 1966[gw4] [ 16%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] 1967tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] 1968[gw4] [ 16%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] 1969tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] 1970[gw4] [ 16%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] 1971tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop 1972[gw4] [ 16%] PASSED tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop 1973tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts 1974[gw4] [ 16%] PASSED tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts 1975tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] 1976[gw4] [ 16%] PASSED tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] 1977tests/docs_src/test_dependencies.py::test_an_in_stock_order_asks_no_question[legacy] 1978[gw11] [ 16%] PASSED tests/docs_src/test_dependencies.py::test_an_in_stock_order_asks_no_question[legacy] 1979tests/docs_src/test_dependencies.py::test_an_in_stock_order_asks_no_question[auto] 1980[gw11] [ 16%] PASSED tests/docs_src/test_dependencies.py::test_an_in_stock_order_asks_no_question[auto] 1981tests/docs_src/test_dependencies.py::test_an_out_of_stock_order_asks_and_honours_the_answer[True-Backordered 'Neuromancer'; it ships in 2-3 weeks.-legacy] 1982[gw11] [ 16%] PASSED tests/docs_src/test_dependencies.py::test_an_out_of_stock_order_asks_and_honours_the_answer[True-Backordered 'Neuromancer'; it ships in 2-3 weeks.-legacy] 1983tests/docs_src/test_dependencies.py::test_an_out_of_stock_order_asks_and_honours_the_answer[True-Backordered 'Neuromancer'; it ships in 2-3 weeks.-auto] 1984tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[no-data] 1985[gw4] [ 16%] PASSED tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[no-data] 1986tests/client/test_probe.py::test_handshake_unsupported_reprobes_at_most_once 1987[gw4] [ 16%] PASSED tests/client/test_probe.py::test_handshake_unsupported_reprobes_at_most_once 1988tests/client/test_probe.py::test_any_other_handshake_error_propagates_unchanged 1989[gw4] [ 16%] PASSED tests/client/test_probe.py::test_any_other_handshake_error_propagates_unchanged 1990tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[httpx2-connect-error] 1991[gw4] [ 16%] PASSED tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[httpx2-connect-error] 1992tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[anyio-closed-resource] 1993[gw4] [ 16%] PASSED tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[anyio-closed-resource] 1994tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data0-expected0] 1995[gw4] [ 16%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data0-expected0] 1996tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data1-expected1] 1997[gw4] [ 16%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data1-expected1] 1998[gw3] [ 16%] PASSED tests/client/test_client.py::test_client_uses_transport_directly 1999tests/client/test_client.py::test_context_propagation 2000[gw3] [ 16%] PASSED tests/client/test_client.py::test_context_propagation 8661[gw13] [ 74%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[direct] 8662tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[jsonrpc] 8663[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[null] 8664tests/shared/test_inbound.py::test_version_rung_rejects_unsupported_with_data_shape 8665[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_version_rung_rejects_unsupported_with_data_shape 8666tests/shared/test_inbound.py::test_version_rung_data_reflects_supplied_supported_list 8667[gw4] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example:8080/mcp-http://mcp.example:8080/v2/mcp] 8668[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_version_rung_data_reflects_supplied_supported_list 8669tests/shared/test_httpx_utils.py::test_sse_within_origin_sends_event_stream_headers_and_caller_headers 8670[gw1] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_sse_within_origin_sends_event_stream_headers_and_caller_headers 8671tests/shared/test_httpx_utils.py::test_auth_flow_requests_are_not_redirected 8672[gw1] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_auth_flow_requests_are_not_redirected 8673tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-params] 8674tests/shared/test_inbound.py::test_unsupported_protocol_version_rejection_is_the_version_rung_standalone 8675[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_unsupported_protocol_version_rejection_is_the_version_rung_standalone 8676tests/shared/test_inbound.py::test_header_rung_does_not_reject_when_headers_arg_is_none 8677[gw5] [ 74%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 8678[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-params] 8679tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://MCP.EXAMPLE:80/mcp/] 8680[gw4] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://MCP.EXAMPLE:80/mcp/] 8681tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-https://mcp.example:443/mcp] 8682[gw4] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-https://mcp.example:443/mcp] 8683tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://other.example/mcp] 8684[gw4] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://other.example/mcp] 8685tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://mcp.example:8080/mcp] 8686[gw13] [ 74%] PASSED tests/shared/test_dispatcher.py::test_send_raw_request_with_in_flight_request_id_raises_and_frees_id_on_completion[jsonrpc] 8687[gw4] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://mcp.example:8080/mcp] 8688tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://sub.mcp.example/mcp] 8689tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[direct] 8690[gw13] [ 74%] PASSED tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[direct] 8691tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[jsonrpc] 8692[gw13] [ 74%] PASSED tests/shared/test_dispatcher.py::test_minted_ids_skip_a_caller_supplied_id_still_in_flight[jsonrpc] 8693tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[direct] 8694[gw13] [ 74%] PASSED tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[direct] 8695tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[jsonrpc] 8696tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-meta] 8697[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[no-meta] 8698tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-version] 8699[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-version] 8700tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-client-caps] 8701[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-client-caps] 8702tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-both] 8703[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_missing_required_keys[meta-missing-both] 8704tests/shared/test_inbound.py::test_envelope_rung_accepts_pair_only_envelope_without_client_info 8705[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_accepts_pair_only_envelope_without_client_info 8706tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[params-none] 8707tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 8708[gw5] [ 74%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 8709tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 8710[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[params-none] 8711[gw13] [ 74%] PASSED tests/shared/test_dispatcher.py::test_supplied_numeric_string_id_collides_with_its_int_twin[jsonrpc] 8712tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[direct] 8713[gw13] [ 74%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[direct] 8714tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[jsonrpc] 8715[gw13] [ 74%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_sees_every_notification_and_consumes_on_true[jsonrpc] 8716tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[direct] 8717[gw13] [ 74%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[direct] 8718tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[jsonrpc] 8719[gw13] [ 74%] PASSED tests/shared/test_dispatcher.py::test_notify_intercept_completes_before_a_later_response_resolves[jsonrpc] 8720tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[direct] 8721[gw13] [ 74%] PASSED tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[direct] 8722tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[jsonrpc] 8723[gw13] [ 74%] PASSED tests/shared/test_dispatcher.py::test_a_raising_notify_intercept_is_contained_and_passes_the_frame_through[jsonrpc] 8724tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-none] 8725[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-none] 8726tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-non-mapping] 8727[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_mapping_shapes[meta-non-mapping] 8728tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[int] 8729[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[int] 8730tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[null] 8731[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[null] 8732tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[list] 8733[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_envelope_rung_rejects_non_string_protocol_version[list] 8734tests/shared/test_inbound.py::test_non_string_protocol_version_over_http_still_rejects_at_the_header_rung 8735[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_non_string_protocol_version_over_http_still_rejects_at_the_header_rung 8736[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_reject_when_headers_arg_is_none 8737tests/shared/test_inbound.py::test_header_rung_passes_when_header_matches_envelope 8738[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_passes_when_header_matches_envelope 8739tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[mismatch] 8740[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[mismatch] 8741tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] 8742[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_on_disagreement[header-absent] 8743tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] 8744[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-mismatch] 8745tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] 8746[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_method_header_disagreement[method-case-mismatch] 8747tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header 8748[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_method_header 8749tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[tools/call-name] 8750[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[tools/call-name] 8751tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[prompts/get-name] 8752[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[prompts/get-name] 8753tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[resources/read-uri] 8754[gw11] [ 74%] PASSED tests/shared/test_inbound.py::test_header_rung_rejects_missing_or_mismatched_name_header_for_name_bearing_methods[resources/read-uri] 8755tests/shared/test_inbound.py::test_header_rung_decodes_base64_sentinel_before_comparing_name 8756[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_decodes_base64_sentinel_before_comparing_name 8757tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_for_non_name_bearing_method 8758[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_for_non_name_bearing_method 8759tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_when_body_omits_the_named_param 8760[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_header_rung_does_not_require_name_header_when_body_omits_the_named_param 8761tests/shared/test_inbound.py::test_all_rungs_pass_yields_route 8762[gw4] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://sub.mcp.example/mcp] 8763tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[https://mcp.example:8443/mcp] 8764[gw4] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[https://mcp.example:8443/mcp] 8765tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[ftp://mcp.example/mcp] 8766[gw4] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[ftp://mcp.example/mcp] 8767tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[301] 8768[gw4] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[301] 8769tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[302] 8770[gw4] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[302] 8771tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[303] 8772[gw4] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[303] 8773tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[301] 8774[gw4] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[301] 8775tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[302] 8776tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_single_elicitation 8777[gw13] [ 75%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_single_elicitation 8778[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_all_rungs_pass_yields_route 8779tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[initialize] 8780[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[initialize] 8781tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[myorg/custom] 8782[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[myorg/custom] 8783tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[does/not/exist] 8784[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[does/not/exist] 8785tests/shared/test_inbound.py::test_ladder_first_failure_wins 8786[gw11] [ 75%] PASSED tests/shared/test_inbound.py::test_ladder_first_failure_wins 8787[gw5] [ 75%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 8788tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 8789[gw5] [ 75%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 8790tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 8791[gw5] [ 75%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 8792tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 8793[gw5] [ 75%] PASSED tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 8794tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered 8795[gw5] [ 75%] PASSED tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered 8796tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing 8797[gw5] [ 75%] PASSED tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing 8798tests/server/test_subscriptions.py::test_publish_after_close_is_dropped 8799[gw5] [ 75%] PASSED tests/server/test_subscriptions.py::test_publish_after_close_is_dropped 8800tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack 8801[gw5] [ 75%] PASSED tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack 8802tests/server/test_subscriptions.py::test_listen_requires_a_request_id 8803[gw5] [ 75%] PASSED tests/server/test_subscriptions.py::test_listen_requires_a_request_id 8804tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 8805[gw5] [ 75%] PASSED tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 8806tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 8807[gw5] [ 75%] PASSED tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 8808tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup 8809[gw5] [ 75%] PASSED tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup 8810tests/server/test_subscriptions.py::test_subscription_limit_rejects_further_streams_pre_ack 8811[gw5] [ 75%] PASSED tests/server/test_subscriptions.py::test_subscription_limit_rejects_further_streams_pre_ack 8812[gw4] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[302] 8813tests/server/test_session.py::test_send_request_forwards_timeout_and_progress_callback_as_call_options 8814tests/server/mcpserver/test_server.py::test_static_resource_with_context_param_errors 8815[gw7] [ 75%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_with_context_param_errors 8816[gw3] [ 75%] PASSED tests/server/test_session.py::test_send_request_forwards_timeout_and_progress_callback_as_call_options 8817tests/shared/test_inbound.py::test_error_code_http_status_table[-32600-400] 8818tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-annotation] 8819[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-annotation] 8820tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-string] 8821[gw3] [ 75%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32600-400] 8822[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-string] 8823tests/shared/test_inbound.py::test_error_code_http_status_table[-32602-400] 8824tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-integer] 8825[gw3] [ 75%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32602-400] 8826[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-integer] 8827tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-boolean] 8828tests/shared/test_inbound.py::test_error_code_http_status_table[-32020-400] 8829[gw3] [ 75%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32020-400] 8830[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-boolean] 8831tests/shared/test_inbound.py::test_error_code_http_status_table[-32021-400] 8832tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[two-distinct] 8833[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[two-distinct] 8834[gw3] [ 75%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32021-400] 8835tests/shared/test_inbound.py::test_error_code_http_status_table[-32022-400] 8836tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping-prop] 8837[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping-prop] 8838[gw3] [ 75%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32022-400] 8839tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[nested-on-properties-chain] 8840tests/shared/test_inbound.py::test_error_code_http_status_table[-32601-404] 8841[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[nested-on-properties-chain] 8842[gw3] [ 75%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32601-404] 8843tests/shared/test_inbound.py::test_error_code_http_status_covers_every_ladder_code 8844tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-default-is-data] 8845[gw3] [ 75%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_covers_every_ladder_code 8846[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-default-is-data] 8847tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-examples-is-data] 8848tests/shared/test_inbound.py::test_verdict_dataclasses_are_frozen 8849[gw3] [ 75%] PASSED tests/shared/test_inbound.py::test_verdict_dataclasses_are_frozen 8850[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-examples-is-data] 8851tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-const-is-data] 8852tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[plain] 8853[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-const-is-data] 8854[gw3] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[plain] 8855tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-enum-is-data] 8856tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[with internal space] 8857[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-enum-is-data] 8858[gw3] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[with internal space] 8859tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[ref-is-not-dereferenced] 8860tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] 8861[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[ref-is-not-dereferenced] 8862[gw3] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] 8863tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[malformed-or-empty-applicators-ignored] 8864tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] 8865[gw3] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] 8866tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[r\xe9sum\xe9] 8867[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[malformed-or-empty-applicators-ignored] 8868tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[empty] 8869[gw7] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[empty] 8870[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[r\xe9sum\xe9] 8871tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[space] 8872tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[a\r\nb] 8873[gw7] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[space] 8874[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[a\r\nb] 8875tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[colon] 8876tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[=?base64?Zm9v?=] 8877[gw7] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[colon] 8878tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-ascii] 8879[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[=?base64?Zm9v?=] 8880tests/shared/test_inbound.py::test_decode_header_value_passes_none_and_plain_through 8881[gw7] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-ascii] 8882[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_decode_header_value_passes_none_and_plain_through 8883tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[control-char] 8884tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?not base64!?=] 8885[gw7] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[control-char] 8886tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-string] 8887[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?not base64!?=] 8888tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?gA==?=] 8889[gw7] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[non-string] 8890tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-header] 8891[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?gA==?=] 8892tests/shared/test_inbound.py::test_name_bearing_methods_table_matches_spec 8893[gw7] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-header] 8894[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_name_bearing_methods_table_matches_spec 8895tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-object] 8896tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[none] 8897[gw7] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-object] 8898[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[none] 8899tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-array] 8900tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping] 8901[gw7] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-array] 8902[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping] 8903tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-properties] 8904[gw3] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-properties] 8905tests/server/test_sse_security.py::test_sse_connect_rejects_a_non_http_scope 8906[gw12] [ 76%] PASSED tests/server/test_sse_security.py::test_sse_connect_rejects_a_non_http_scope 8907tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-number] 8908tests/server/test_stdio.py::test_stdio_server_takes_stdin_off_the_descriptor_table_while_serving 8909[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-number] 8910tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[array-type] 8911[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[array-type] 8912tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[dict-type] 8913[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[dict-type] 8914[gw8] [ 76%] PASSED tests/server/test_stdio.py::test_stdio_server_takes_stdin_off_the_descriptor_table_while_serving 8915tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-type] 8916tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[items] 8917[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[oversized-int-type] 8918tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[missing-type] 8919[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[missing-type] 8920tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-same-case] 8921[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[items] 8922[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-same-case] 8923tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[not] 8924tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-diff-case] 8925[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[not] 8926tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[oneOf] 8927[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-diff-case] 8928tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[properties-chain-not-restored-below-an-applicator] 8929[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[oneOf] 8930tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[patternProperties] 8931[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[properties-chain-not-restored-below-an-applicator] 8932tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-root-schema] 8933[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[patternProperties] 8934tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[prefixItems] 8935[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-root-schema] 8936[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[prefixItems] 8937tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-across-nesting-levels] 8938tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[propertyNames] 8939[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[duplicate-across-nesting-levels] 8940tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-bad-token] 8941[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[propertyNames] 8942tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[then] 8943[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-bad-token] 8944tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-non-primitive] 8945[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[then] 8946tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedItems] 8947[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[nested-non-primitive] 8948tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_init_with_tools 8949tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[$defs] 8950[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedItems] 8951tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedProperties] 8952[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[$defs] 8953tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[additionalProperties] 8954[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedProperties] 8955tests/shared/test_inbound.py::test_schema_walk_applicator_keywords_match_the_pinned_reject_cases 8956[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_schema_walk_applicator_keywords_match_the_pinned_reject_cases 8957tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property 8958[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[additionalProperties] 8959tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[allOf] 8960[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[allOf] 8961[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property 8962tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path 8963[gw15] [ 76%] PASSED tests/server/mcpserver/test_tool_manager.py::TestAddTools::test_init_with_tools 8964tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path 8965[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path 8966tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] 8967[gw15] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path 8968tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken 8969[gw15] [ 76%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken 8970tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] 8971tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[anyOf] 8972[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[anyOf] 8973tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contains] 8974[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contains] 8975tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contentSchema] 8976[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[contentSchema] 8977tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[definitions] 8978[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[definitions] 8979tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[dependentSchemas] 8980[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[dependentSchemas] 8981tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[else] 8982[gw12] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[else] 8983[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] 8984tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] 8985[gw8] [ 76%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] 8986tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] 8987[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] 8988tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec 8989[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec 8990tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] 8991[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] 8992tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] 8993[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] 8994tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] 8995[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] 8996tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] 8997[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] 8998tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] 8999[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] 9000tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] 9001[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] 9002tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-suffix-is-literal] 9003[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-suffix-is-literal] 9004tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[missing-padding] 9005[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[missing-padding] 9006[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] 9007tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] 9008[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] 9009tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] 9010[gw8] [ 77%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] 9011tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-alphabet-chars] 9012[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-alphabet-chars] 9013tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-canonical-trailing-bits] 9014[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-canonical-trailing-bits] 9015tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[invalid-utf8] 9016[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[invalid-utf8] 9017tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_missing_header_for_present_argument 9018[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_missing_header_for_present_argument 9019tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[absent] 9020[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[absent] 9021tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[null] 9022[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[null] 9023tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_value_mismatch 9024[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_value_mismatch 9025tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_absent_argument_with_no_header 9026[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_absent_argument_with_no_header 9027tests/shared/test_inbound.py::test_validate_mcp_param_headers_matches_header_names_case_insensitively 9028[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_matches_header_names_case_insensitively 9029tests/shared/test_inbound.py::test_validate_mcp_param_headers_ignores_undeclared_mcp_param_headers 9030[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_ignores_undeclared_mcp_param_headers 9031tests/shared/test_inbound.py::test_validate_mcp_param_headers_validates_nothing_for_an_invalid_annotation_schema 9032tests/server/test_transport_security.py::test_request_body_limit_leaves_non_http_scopes_alone 9033[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_validates_nothing_for_an_invalid_annotation_schema 9034tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths 9035[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths 9036tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering 9037[gw15] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering 9038[gw9] [ 77%] PASSED tests/server/test_transport_security.py::test_request_body_limit_leaves_non_http_scopes_alone 9039tests/shared/test_auth.py::test_information_full_inherits_coercion 9040tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] 9041tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-absent] 9042[gw14] [ 77%] PASSED tests/shared/test_auth.py::test_information_full_inherits_coercion 9043[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] 9044[gw2] [ 77%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-absent] 9045tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 9046tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] 9047tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9048[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] 9049tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] 9050[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] 9051tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] 9052[gw2] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9053tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9054tests/server/test_subscriptions.py::test_backlog_overflow_ends_the_stream_and_frees_its_slot 9055[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] 9056tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] 9057[gw2] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9058[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] 9059[gw5] [ 77%] PASSED tests/server/test_subscriptions.py::test_backlog_overflow_ends_the_stream_and_frees_its_slot 9060tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9061tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] 9062[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] 9063tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] 9064tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params 9065[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] 9066tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 9067[gw2] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9068tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9069[gw5] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params 9070tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 9071[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 9072tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 9073[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 9074tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 9075[gw5] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 9076tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 9077[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 9078tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 9079[gw5] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 9080[gw2] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9081tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9082[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 9083tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 9084tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 9085[gw5] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 9086tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 9087[gw2] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9088tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9089[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 9090tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 9091[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 9092tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 9093[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 9094tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 9095[gw2] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9096tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 9097[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 9098tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 9099[gw5] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 9100tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 9101[gw5] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 9102tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9103[gw9] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 9104tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 9105[gw9] [ 78%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 9106tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 9107[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 9108tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9109[gw9] [ 78%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 9110tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9111[gw9] [ 78%] PASSED tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9112[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 9113tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9114tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9115[gw9] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9116[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 9117tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9118[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 9119tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9120[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 9121tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9122tests/shared/test_context_streams.py::test_sync_close_closes_the_underlying_streams 9123[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 9124tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9125tests/shared/test_dispatcher.py::test_direct_send_raw_request_wraps_non_mcperror_exception_as_internal_error_with_cause 9126[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 9127tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9128[gw10] [ 78%] PASSED tests/shared/test_context_streams.py::test_sync_close_closes_the_underlying_streams 9129[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 9130tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9131[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 9132[gw0] [ 78%] PASSED tests/shared/test_dispatcher.py::test_direct_send_raw_request_wraps_non_mcperror_exception_as_internal_error_with_cause 9133tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9134tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9135tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9136[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 9137tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9138[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 9139tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9140[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9141tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9142[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 9143tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9144[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9145tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9146[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 9147tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9148[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 9149tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9150[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9151tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9152[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 9153tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9154[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9155tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9156[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 9157[gw5] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 9158[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9159tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9160tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9161[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9162tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9163[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 9164[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9165tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9166tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9167[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9168tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9169[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 9170tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9171[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9172tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9173[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9174[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 9175tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9176tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9177[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9178tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9179[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 9180tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 9181tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/] 9182[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9183tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9184[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9185tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 9186[gw6] [ 78%] PASSED tests/shared/test_extension.py::test_malformed_extension_identifiers_are_rejected[foo/] 9187[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 9188tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9189[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 9190tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 9191tests/shared/test_path_security.py::test_is_absolute_path[-False] 9192[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 9193tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 9194[gw6] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[-False] 9195tests/shared/test_path_security.py::test_is_absolute_path[.-False] 9196[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 9197[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 9198tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 9199[gw6] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[.-False] 9200[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 9201tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9202[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 9203tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9204tests/shared/test_path_security.py::test_is_absolute_path[..-False] 9205[gw6] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[..-False] 9206tests/shared/test_path_security.py::test_is_absolute_path[/-True] 9207[gw6] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/-True] 9208tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 9209[gw6] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 9210tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 9211[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 9212tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 9213[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 9214tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 9215[gw6] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 9216tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 9217[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 9218tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 9219[gw10] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 9220tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9221[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 9222tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 9223[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 9224[gw10] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9225tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9226tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 9227[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 9228tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9229[gw10] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9230[gw14] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 9231tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9232[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9233tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9234tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 9235[gw10] [ 79%] PASSED tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9236tests/shared/test_otel.py::test_client_and_server_spans 9237[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9238tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9239[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9240tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9241[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9242tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations 9243tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9244tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[303] 9245[gw13] [ 79%] PASSED tests/shared/test_exceptions.py::test_url_elicitation_required_error_create_with_multiple_elicitations 9246[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9247tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9248tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9249[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9250tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9251[gw4] [ 79%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[303] 9252tests/shared/test_path_security.py::test_safe_join_simple 9253[gw13] [ 79%] 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[gw13] [ 79%] 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[gw4] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_simple 9258tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9259[gw4] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9260tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9261[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9262tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9263[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9264tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9265[gw6] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9266[gw13] [ 79%] PASSED tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9267tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9268[gw4] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9269tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9270[gw13] [ 79%] PASSED tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9271tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9272[gw4] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9273tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9274[gw13] [ 79%] PASSED tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9275tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9276[gw4] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9277[gw13] [ 79%] PASSED tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9278tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9279tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9280[gw10] [ 79%] PASSED tests/shared/test_otel.py::test_client_and_server_spans 9281[gw4] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9282tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9283[gw10] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9284tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9285[gw10] [ 79%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9286[gw2] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 9287tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 9288[gw13] [ 79%] PASSED tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9289tests/shared/test_sse.py::test_raw_sse_connection 9290tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[int] 9291[gw1] [ 79%] PASSED tests/shared/test_inbound.py::test_absent_version_header_rejects_before_the_string_guard[int] 9292tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9293tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9294[gw4] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9295tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9296[gw4] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9297tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9298[gw4] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9299tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9300[gw4] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9301tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9302[gw13] [ 79%] PASSED tests/shared/test_sse.py::test_raw_sse_connection 9303tests/shared/test_sse.py::test_sse_client_basic_connection 9304[gw2] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 9305tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 9306[gw2] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 9307tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 9308[gw2] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 9309tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 9310[gw2] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 9311[gw13] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection 9312[gw4] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9313tests/shared/test_path_security.py::test_safe_join_base_equals_target 9314[gw4] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_base_equals_target 9315tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9316[gw4] [ 79%] PASSED tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9317tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9318[gw4] [ 79%] PASSED tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9319tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9320[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9321tests/shared/test_sse.py::test_request_context_propagation 9322tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 9323[gw2] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 9324tests/shared/test_jsonrpc_dispatcher.py::test_spawned_notification_handlers_run_concurrently 9325tests/shared/test_sse.py::test_sse_client_on_session_created 9326[gw4] [ 79%] PASSED tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9327tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9328[gw2] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_spawned_notification_handlers_run_concurrently 9329[gw4] [ 79%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9330tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9331tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_request_metadata 9332[gw13] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created 9333tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9334[gw4] [ 79%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9335tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9336[gw13] [ 79%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9337tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9338[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_request_context_propagation 9339tests/shared/test_sse.py::test_request_context_isolation 9340[gw2] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_request_metadata 9341tests/shared/test_jsonrpc_dispatcher.py::test_transport_stamped_can_send_request_makes_the_request_channel_refuse 9342[gw2] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_stamped_can_send_request_makes_the_request_channel_refuse 9343tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata 9344[gw4] [ 80%] PASSED tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9345[gw13] [ 80%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9346tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9347[gw13] [ 80%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9348tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9349[gw2] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata 9350tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message 9351[gw13] [ 80%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9352tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9353[gw13] [ 80%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9354tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9355[gw2] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message 9356tests/shared/test_jsonrpc_dispatcher.py::test_ctx_after_handler_return_reports_closed_and_drops_backchannel_traffic 9357[gw13] [ 80%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9358tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9359[gw2] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_after_handler_return_reports_closed_and_drops_backchannel_traffic 9360tests/shared/test_jsonrpc_dispatcher.py::test_progress_callback_exception_is_swallowed_and_logged 9361[gw13] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9362tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9363tests/shared/test_inbound.py::test_error_code_http_status_table[-32700-400] 9364[gw11] [ 80%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32700-400] 9365[gw2] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_callback_exception_is_swallowed_and_logged 9366tests/shared/test_jsonrpc_dispatcher.py::test_inline_methods_are_handled_before_next_message_is_dequeued 9367tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9368[gw2] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_inline_methods_are_handled_before_next_message_is_dequeued 9369[gw11] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9370[gw13] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9371tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9372[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_request_context_isolation 9373[gw11] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9374tests/shared/test_sse.py::test_sse_message_id_coercion 9375tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9376[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_message_id_coercion 9377tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9378tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-null] 9379[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9380tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[properties-non-mapping] 9381tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9382[gw11] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9383[gw3] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[properties-non-mapping] 9384[gw7] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[on-null] 9385[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9386tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9387tests/shared/test_streamable_http.py::test_json_response 9388tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9389[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9390tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9391tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 9392[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9393tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9394[gw11] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9395[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9396tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9397[gw7] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response 9398[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9399tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9400tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9401[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9402tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9403tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9404[gw11] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9405tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9406[gw7] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9407[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9408tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9409tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9410[gw14] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 9411[gw11] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9412[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9413tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9414tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 9415tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9416[gw7] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9417tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9418[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9419tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9420[gw11] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9421tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9422[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9423[gw7] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9424tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9425tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9426[gw11] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9427tests/shared/test_streamable_http.py::test_content_type_validation 9428tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[if] 9429[gw11] [ 80%] PASSED tests/shared/test_streamable_http.py::test_content_type_validation 9430[gw7] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9431tests/shared/test_streamable_http.py::test_json_validation 9432tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9433[gw12] [ 80%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[if] 9434tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 9435[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9436[gw11] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_validation 9437tests/shared/test_streamable_http.py::test_json_parsing 9438[gw12] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 9439tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 9440tests/shared/test_streamable_http.py::test_accept_header_validation 9441[gw7] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9442[gw12] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 9443tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 9444tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments 9445[gw12] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 9446tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 9447[gw11] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_parsing 9448[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_validation 9449[gw12] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 9450tests/shared/test_streamable_http.py::test_method_not_allowed 9451tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 9452[gw12] [ 80%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 9453[gw8] [ 81%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments 9454tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9455[gw11] [ 81%] PASSED tests/shared/test_streamable_http.py::test_method_not_allowed 9456tests/shared/test_streamable_http.py::test_session_validation 9457tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9458[gw7] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9459tests/shared/test_streamable_http.py::test_get_sse_stream 9460tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9461[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9462tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9463[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9464[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9465tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9466[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9467tests/shared/test_uri_template.py::test_is_template[-False] 9468[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[-False] 9469[gw11] [ 81%] PASSED tests/shared/test_streamable_http.py::test_session_validation 9470tests/shared/test_streamable_http.py::test_session_id_pattern 9471[gw11] [ 81%] PASSED tests/shared/test_streamable_http.py::test_session_id_pattern 9472tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9473tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9474[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9475tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9476[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9477tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9478[gw7] [ 81%] PASSED tests/shared/test_streamable_http.py::test_get_sse_stream 9479tests/shared/test_streamable_http.py::test_get_validation 9480[gw11] [ 81%] PASSED tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9481tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9482[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9483tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9484tests/shared/test_uri_template.py::test_is_template[{a}-True] 9485[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[{a}-True] 9486tests/shared/test_uri_template.py::test_is_template[{-False] 9487[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[{-False] 9488tests/shared/test_uri_template.py::test_is_template[}-False] 9489[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[}-False] 9490tests/shared/test_uri_template.py::test_is_template[}{-False] 9491[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[}{-False] 9492tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9493[gw11] [ 81%] PASSED tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9494tests/shared/test_streamable_http.py::test_session_termination 9495[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9496tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9497[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9498tests/shared/test_uri_template.py::test_parse_simple_variable 9499[gw7] [ 81%] PASSED tests/shared/test_streamable_http.py::test_get_validation 9500tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9501[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_simple_variable 9502tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9503[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9504tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9505[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9506tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9507[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9508tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9509[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9510tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9511[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9512tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9513[gw12] [ 81%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9514[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9515tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9516[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9517tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9518[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9519tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9520[gw11] [ 81%] PASSED tests/shared/test_streamable_http.py::test_session_termination 9521[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9522tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9523[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9524tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9525[gw8] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9526tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] 9527[gw7] [ 81%] PASSED tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9528tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9529[gw15] [ 81%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] 9530tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9531[gw15] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9532tests/shared/test_uri_template.py::test_parse_multiple_expressions 9533[gw15] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_expressions 9534tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9535tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 9536[gw15] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9537tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9538[gw15] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9539[gw7] [ 81%] PASSED tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9540tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9541tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9542[gw15] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9543tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9544tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9545[gw9] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 9546tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9547[gw15] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9548tests/shared/test_uri_template.py::test_parse_explode_modifier 9549[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9550[gw15] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_explode_modifier 9551tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9552[gw5] [ 81%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 9553tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9554tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9555[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9556[gw15] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9557tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9558tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9559[gw7] [ 81%] PASSED tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9560[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9561tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9562[gw15] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9563tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9564tests/shared/test_streamable_http.py::test_client_crash_handled 9565[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9566tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9567[gw9] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9568tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9569[gw5] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9570tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9571[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9572tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9573[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9574tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9575[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9576tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9577[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9578tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9579[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9580tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9581[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9582tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9583[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9584tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9585[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9586tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9587[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9588tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9589[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9590tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9591[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9592tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9593[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9594tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9595[gw15] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9596[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9597tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9598[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9599tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9600[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9601tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9602[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9603tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9604[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9605tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9606[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9607tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9608[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9609tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9610[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9611tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9612[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9613tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9614[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9615tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9616[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9617tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9618[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9619tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9620[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9621tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9622[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9623tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9624[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9625[gw14] [ 82%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 9626[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9627tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9628[gw9] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9629tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 9630tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9631[gw5] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9632tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 9633tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9634[gw0] [ 82%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 9635tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9636[gw10] [ 82%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9637[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9638tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9639[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9640[gw7] [ 82%] PASSED tests/shared/test_streamable_http.py::test_client_crash_handled 9641tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9642tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9643[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9644[gw7] [ 82%] PASSED tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9645tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9646tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9647tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9648[gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9649tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9650[gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9651tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9652[gw7] [ 82%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9653tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9654[gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9655tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9656[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9657tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9658[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9659tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9660[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9661tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9662tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9663[gw6] [ 82%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9664tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9665[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9666tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9667[gw7] [ 82%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9668tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9669[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9670tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9671[gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9672tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9673[gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9674tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9675[gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9676tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9677[gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9678tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9679[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9680tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9681[gw6] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9682tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9683[gw7] [ 82%] PASSED tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9684[gw10] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9685tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9686[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9687tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9688[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9689tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9690[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9691tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9692[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9693tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9694[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9695tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9696[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9697tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9698[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9699tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9700[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9701tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9702[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9703tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9704[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9705tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9706[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9707tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9708[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9709tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9710[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9711tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9712[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9713tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9714[gw10] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9715[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9716[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9717tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9718[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9719tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9720[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9721tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9722[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9723tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9724[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9725tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9726[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9727tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9728[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9729tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9730[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9731tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9732[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9733tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9734[gw6] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9735tests/shared/test_sse.py::test_sse_client_exception_handling 9736tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9737tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_always_carries_meta_on_the_wire 9738[gw4] [ 83%] PASSED tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9739[gw2] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_always_carries_meta_on_the_wire 9740tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9741tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9742[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9743[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9744tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9745tests/shared/test_uri_template.py::test_equality_based_on_template_string 9746[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_equality_based_on_template_string 9747tests/shared/test_uri_template.py::test_frozen 9748[gw13] [ 83%] PASSED tests/shared/test_sse.py::test_sse_client_exception_handling 9749[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9750tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9751[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_frozen 9752tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9753tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9754[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9755tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9756[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9757[gw13] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9758tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9759tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9760[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9761tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9762[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9763[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9764tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9765tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9766[gw13] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9767tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9768[gw13] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9769[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9770[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9771tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9772tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9773tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9774[gw13] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9775[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9776tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9777[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9778tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9779[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9780tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9781[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9782tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9783tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9784[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9785tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9786[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9787tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9788[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9789tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9790[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9791tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9792[gw13] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9793tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9794[gw13] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9795tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9796[gw13] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9797tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9798[gw13] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9799tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9800[gw13] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9801tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9802[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9803tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9804tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9805[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9806tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9807[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9808tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9809[gw4] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9810[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9811tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9812[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9813tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9814[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9815tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9816[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9817tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9818[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9819tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9820[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9821tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9822[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9823[gw1] [ 84%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9824tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9825[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9826tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9827[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9828tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9829[gw13] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9830[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9831tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9832[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9833tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9834[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9835[gw14] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 9836tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 9837tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 9838[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 9839tests/shared/test_streamable_http.py::test_response 9840tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9841[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9842tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9843[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9844tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 9845[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 9846tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9847tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 9848[gw11] [ 84%] PASSED tests/shared/test_streamable_http.py::test_response 9849[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9850tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 9851[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 9852tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9853tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9854[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9855[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9856tests/shared/test_uri_template.py::test_parse_literal_only 9857tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9858tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9859[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9860[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_literal_only 9861[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9862tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9863tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9864tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 9865[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9866tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9867[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9868tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9869[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9870[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 9871tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 9872[gw1] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9873tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 9874[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 9875tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9876[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 9877tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 9878[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9879tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9880[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 9881tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9882tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 9883[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9884tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 9885[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9886[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 9887tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 9888tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9889[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9890[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 9891tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 9892tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9893[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 9894tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 9895[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 9896tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 9897[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 9898tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 9899[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 9900tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 9901[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 9902tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 9903[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 9904tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 9905[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 9906tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 9907[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 9908tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9909[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9910tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9911[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9912tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9913[gw11] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 9914[gw12] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9915tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 9916[gw8] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9917tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9918[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9919tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9920[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9921tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9922[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9923tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9924[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9925tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9926[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9927tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 9928[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 9929tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9930[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9931tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 9932[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 9933tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 9934[gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 9935tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9936[gw12] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9937[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 9938tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 9939[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 9940tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 9941[gw8] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 9942tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9943[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9944tests/shared/test_uri_template.py::test_match_no_match[static-different] 9945tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9946[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[static-different] 9947[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9948tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 9949tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 9950[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 9951[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 9952tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 9953tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 9954[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 9955tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 9956[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 9957tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 9958[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 9959tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9960[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 9961tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9962tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 9963[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9964[gw5] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9965tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9966[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 9967tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 9968[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9969tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 9970[gw5] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 9971tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 9972[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 9973tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 9974[gw5] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 9975[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 9976tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9977tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 9978[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9979tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9980[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9981tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 9982tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 9983[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 9984[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 9985[gw5] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 9986tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 9987tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9988[gw5] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 9989[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9990tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 9991[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 9992tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 9993tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 9994[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 9995tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 9996[gw5] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 9997tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 9998tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 9999[gw15] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 10000[gw5] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10001tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10002[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 10003tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10004[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10005tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 10006[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 10007tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 10008[gw5] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10009tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10010[gw9] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 10011[gw5] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10012tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10013[gw5] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10014tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10015[gw5] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10016tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10017tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 10018[gw5] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10019tests/shared/test_uri_template.py::test_match_escapes_template_literals 10020tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 10021[gw5] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_escapes_template_literals 10022[gw10] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 10023[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 10024tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10025tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10026[gw10] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10027[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10028tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10029tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10030[gw10] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10031[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10032tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10033tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10034[gw14] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 10035[gw0] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10036tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10037tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 10038[gw10] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10039tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10040[gw10] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10041tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10042[gw0] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10043tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 10044[gw10] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10045tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10046[gw0] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 10047tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 10048[gw10] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10049tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10050[gw0] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 10051tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 10052[gw10] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10053tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10054[gw10] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10055[gw0] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 10056tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 10057tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10058tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 10059[gw10] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10060[gw6] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 10061tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10062tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10063[gw0] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 10064tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 10065[gw10] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10066[gw6] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10067tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10068[gw0] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 10069tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10070tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 10071[gw10] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10072[gw6] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10073[gw0] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 10074tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10075tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10076tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10077[gw0] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10078tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10079[gw6] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10080tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10081[gw10] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10082[gw6] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10083tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10084[gw6] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10085tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10086[gw6] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10087tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10088[gw0] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10089[gw6] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10090tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10091[gw6] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10092tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10093[gw6] [ 86%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10094tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 10095tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 10096tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10097[gw6] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10098tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10099[gw4] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 10100[gw2] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 10101tests/test_examples.py::test_simple_echo 10102tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10103tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 10104[gw13] [ 86%] PASSED tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 10105tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10106tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 10107[gw4] [ 86%] PASSED tests/test_examples.py::test_simple_echo 10108tests/test_examples.py::test_complex_inputs 10109[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10110[gw1] [ 86%] PASSED tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 10111tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10112tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:297-301] 10113tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 10114tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 10115[gw11] [ 86%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 10116[gw13] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10117[gw6] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10118tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10119[gw12] [ 86%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 10120tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10121tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10122tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10123[gw4] [ 86%] PASSED tests/test_examples.py::test_complex_inputs 10124[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10125[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:297-301] 10126tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:326-328] 10127[gw8] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10128tests/test_examples.py::test_direct_call_tool_result_return 10129tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10130tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10131[gw13] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10132[gw12] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10133tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 10134tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10135[gw11] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10136[gw15] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 10137tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10138[gw4] [ 86%] PASSED tests/test_examples.py::test_direct_call_tool_result_return 10139tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10140tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10141[gw1] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:326-328] 10142tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:330-334] 10143[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10144tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 10145tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10146tests/test_examples.py::test_desktop 10147[gw9] [ 86%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 10148tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10149[gw8] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10150tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10151[gw13] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10152tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10153[gw12] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10154[gw15] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10155tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10156tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10157[gw11] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10158tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10159[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10160[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:330-334] 10161tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10162tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:342-344] 10163[gw4] [ 87%] PASSED tests/test_examples.py::test_desktop 10164tests/test_examples.py::test_docs_examples[README.md:54-70] 10165[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10166[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10167tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10168tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10169tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10170[gw5] [ 87%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10171[gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10172tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10173[gw12] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10174tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10175[gw11] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10176tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10177tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10178[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10179[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[README.md:54-70] 10180tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10181[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:342-344] 10182tests/test_examples.py::test_docs_examples[README.md:97-110] 10183[gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10184tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10185[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10186tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:352-354] 10187tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10188[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10189tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10190[gw11] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10191[gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10192tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10193tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10194[gw12] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10195[gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10196tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10197tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10198[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10199tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10200[gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10201tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:130-132] 10202[gw14] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 10203[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:352-354] 10204tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:371-375] 10205tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 10206[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10207[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[README.md:97-110] 10208tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10209[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10210tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10211tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10212[gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10213[gw14] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 10214tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 10215tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10216[gw12] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10217[gw14] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 10218[gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10219tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10220tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 10221tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10222[gw11] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10223[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10224[gw14] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 10225tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 10226[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10227tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10228[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:371-375] 10229tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:397-399] 10230[gw8] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10231tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10232[gw0] [ 87%] PASSED tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10233tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10234tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10235tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10236[gw10] [ 87%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10237tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10238tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10239[gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:130-132] 10240tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:158-160] 10241[gw12] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10242tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10243tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10244[gw14] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 10245tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 10246[gw14] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 10247[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10248tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10249[gw15] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10250tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10251[gw11] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10252[gw13] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:158-160] 10253tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 10254tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10255[gw1] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:397-399] 10256tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10257tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:164-167] 10258[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10259tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10260[gw5] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10261[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10262tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10263[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10264tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10265tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10266[gw10] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10267[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10268tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10269[gw14] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 10270tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 10271[gw12] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10272tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10273[gw14] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 10274tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10275tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 10276[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10277[gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10278tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10279tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10280[gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:164-167] 10281[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10282tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:181-183] 10283tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10284[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10285tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10286[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10287[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10288[gw14] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 10289[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10290tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10291tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 10292[gw14] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 10293tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 10294tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:78-80] 10295[gw12] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10296[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10297tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10298[gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10299tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10300[gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10301tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10302tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10303[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10304tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10305tests/shared/test_uri_template.py::test_match_never_raises 10306[gw14] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 10307tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 10308[gw14] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 10309[gw11] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10310tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10311[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:78-80] 10312[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10313[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10314[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10315tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10316tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10317[gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:181-183] 10318tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:223-225] 10319[gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10320tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 10321tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10322[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10323tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10324tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10325tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10326[gw11] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10327tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10328tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10329[gw12] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10330tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10331[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10332[gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10333tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10334[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10335[gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:223-225] 10336[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10337tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10338[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10339tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10340[gw11] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10341tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10342tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10343tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10344[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10345[gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10346[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10347tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10348tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:238-246] 10349tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10350[gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10351tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10352[gw12] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10353[gw1] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10354[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10355tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10356[gw13] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:238-246] 10357[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10358tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10359[gw11] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10360[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10361tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10362[gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10363tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10364[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10365[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10366[gw15] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10367tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10368[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10369tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10370[gw8] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10371[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10372[gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10373tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10374tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10375tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10376tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10377[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10378tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10379tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:79-107] 10380[gw5] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10381tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10382[gw6] [ 88%] PASSED tests/shared/test_uri_template.py::test_match_never_raises 10383tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:281-283] 10384tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10385tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10386tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10387[gw10] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10388tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10389[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10390[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10391tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10392[gw11] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10393tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10394[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10395[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:79-107] 10396tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:115-124] 10397[gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:281-283] 10398[gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10399tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10400tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10401[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10402tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10403tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10404[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10405tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10406tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10407[gw10] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10408tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10409[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10410[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10411tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10412tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10413[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:115-124] 10414[gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10415tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10416[gw11] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10417tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10418[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10419tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:130-132] 10420[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10421[gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10422tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10423tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10424[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10425tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10426[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10427[gw10] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10428tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10429tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10430[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10431tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10432[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:130-132] 10433[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10434tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10435[gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10436tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10437[gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10438[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10439tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10440tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10441[gw11] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10442[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10443tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10444tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10445tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10446[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10447[gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10448[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10449tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10450tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10451tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10452[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10453tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10454[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10455[gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10456[gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10457tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10458tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10459tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10460[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10461[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10462tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10463[gw11] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10464tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10465tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10466[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10467[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10468tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10469[gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10470tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10471tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10472tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10473[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10474[gw12] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10475tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10476[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10477[gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10478tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10479[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10480tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10481tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10482[gw11] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10483tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10484tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10485[gw1] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10486tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10487[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10488[gw8] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10489tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10490[gw15] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10491[gw5] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10492tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10493tests/test_types.py::test_tool_choice 10494[gw14] [ 89%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 10495tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10496[gw13] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10497[gw5] [ 89%] PASSED tests/test_types.py::test_tool_choice 10498[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10499tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10500tests/test_types.py::test_sampling_message_with_user_role 10501[gw4] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10502tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10503tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10504[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10505tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10506[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10507tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10508[gw12] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10509tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10510tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 10511[gw14] [ 90%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 10512tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 10513[gw14] [ 90%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 10514tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10515[gw5] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_user_role 10516[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10517[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10518tests/test_types.py::test_sampling_message_with_assistant_role 10519[gw5] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_assistant_role 10520tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 10521tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10522tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10523tests/test_types.py::test_sampling_message_backward_compatibility 10524[gw15] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10525[gw11] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10526tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10527[gw5] [ 90%] PASSED tests/test_types.py::test_sampling_message_backward_compatibility 10528[gw10] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10529[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10530tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10531tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10532[gw14] [ 90%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 10533tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10534[gw13] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10535tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10536[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10537[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10538tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10539[gw10] [ 90%] PASSED tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10540tests/test_types.py::test_create_message_request_params_with_tools 10541[gw5] [ 90%] PASSED tests/test_types.py::test_create_message_request_params_with_tools 10542tests/test_types.py::test_create_message_result_with_tool_use 10543[gw5] [ 90%] PASSED tests/test_types.py::test_create_message_result_with_tool_use 10544tests/test_types.py::test_create_message_result_basic 10545tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10546[gw12] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10547tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10548tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10549[gw10] [ 90%] PASSED tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10550tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10551[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10552tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10553tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10554[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10555tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10556[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10557tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10558tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10559[gw5] [ 90%] PASSED tests/test_types.py::test_create_message_result_basic 10560[gw11] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10561tests/test_examples.py::test_docs_examples[docs/client/transports.md:93-95] 10562[gw15] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10563tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10564[gw14] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10565[gw10] [ 90%] PASSED tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10566tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10567[gw10] [ 90%] PASSED tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10568tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10569[gw13] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10570[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10571tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10572tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10573[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10574[gw12] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10575tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10576[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10577tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10578[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10579tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10580[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10581[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10582tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10583[gw15] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10584tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10585[gw10] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10586tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10587[gw10] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10588[gw11] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:93-95] 10589tests/test_examples.py::test_docs_examples[docs/client/transports.md:113-115] 10590tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10591[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10592tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10593[gw1] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10594[gw14] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10595tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10596[gw13] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10597tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10598tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10599[gw10] [ 90%] PASSED tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10600[gw4] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10601tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10602[gw15] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10603[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10604tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10605[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10606[gw8] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10607tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10608[gw12] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10609tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10610tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10611[gw0] [ 90%] PASSED tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10612tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10613[gw0] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10614tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10615[gw0] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10616tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10617[gw0] [ 91%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10618tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 10619[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10620[gw1] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10621tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10622[gw14] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10623tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10624[gw11] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:113-115] 10625tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10626[gw2] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10627[gw15] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10628[gw4] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10629tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10630[gw11] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10631[gw14] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10632[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10633tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10634tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10635[gw15] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10636tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10637[gw14] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10638tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10639[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10640tests/test_types.py::test_jsonrpc_request 10641tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10642tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10643tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10644[gw14] [ 91%] PASSED tests/test_types.py::test_jsonrpc_request 10645tests/test_types.py::test_method_initialization 10646tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10647[gw14] [ 91%] PASSED tests/test_types.py::test_method_initialization 10648tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10649tests/test_types.py::test_tool_use_content 10650[gw12] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10651[gw14] [ 91%] PASSED tests/test_types.py::test_tool_use_content 10652tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 10653[gw13] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10654[gw1] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10655tests/test_types.py::test_client_capabilities_with_sampling_tools 10656tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10657[gw6] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10658tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 10659[gw5] [ 91%] PASSED tests/test_types.py::test_client_capabilities_with_sampling_tools 10660[gw13] [ 91%] SKIPPED tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 10661[gw8] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10662tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10663tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10664[gw1] [ 91%] PASSED tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10665tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10666tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 10667tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10668[gw5] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10669[gw2] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10670tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10671[gw13] [ 91%] PASSED tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 10672tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 10673[gw1] [ 91%] PASSED tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10674tests/types/test_methods.py::test_built_in_maps_are_immutable 10675[gw1] [ 91%] PASSED tests/types/test_methods.py::test_built_in_maps_are_immutable 10676tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 10677[gw13] [ 91%] PASSED tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 10678tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 10679[gw4] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10680tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 10681[gw2] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 10682tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 10683[gw5] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10684tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10685[gw5] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10686tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10687[gw5] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10688[gw13] [ 91%] PASSED tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 10689tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 10690[gw13] [ 91%] PASSED tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 10691tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 10692[gw13] [ 91%] PASSED tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 10693[gw4] [ 91%] PASSED tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 10694tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10695[gw1] [ 91%] PASSED tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10696tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10697[gw1] [ 91%] PASSED tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10698tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10699[gw1] [ 91%] PASSED tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10700tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10701[gw1] [ 91%] PASSED tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10702[gw6] [ 91%] PASSED tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10703tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10704[gw6] [ 91%] PASSED tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10705tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10706[gw6] [ 91%] PASSED tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10707tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10708[gw6] [ 91%] PASSED tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10709tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10710[gw6] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10711tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10712[gw6] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10713tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 10714[gw5] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 10715tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 10716[gw5] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 10717tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10718[gw8] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10719tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10720[gw8] [ 91%] PASSED tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10721tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10722[gw8] [ 91%] PASSED tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10723tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10724[gw8] [ 91%] PASSED tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10725tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10726[gw8] [ 91%] PASSED tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10727tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10728[gw8] [ 91%] PASSED tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10729tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10730[gw8] [ 92%] PASSED tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10731[gw11] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10732[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 10733tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10734[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10735tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10736[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10737tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10738[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10739tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10740[gw2] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10741tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10742[gw4] [ 92%] PASSED tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10743tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10744[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10745tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 10746[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 10747tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10748[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10749tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10750[gw4] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10751tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10752[gw6] [ 92%] PASSED tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10753tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10754[gw11] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10755tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10756[gw11] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10757tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10758[gw11] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10759tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10760[gw11] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10761tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10762[gw11] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10763tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10764[gw11] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10765tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10766[gw13] [ 92%] PASSED tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10767[gw12] [ 92%] PASSED tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 10768tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10769tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 10770tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10771[gw10] [ 92%] PASSED tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10772tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10773tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10774[gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10775tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 10776[gw15] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10777tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10778[gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 10779tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 10780[gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 10781tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 10782[gw15] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10783tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10784[gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 10785tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 10786[gw15] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10787tests/test_types.py::test_tool_result_content 10788tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10789[gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 10790tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 10791[gw15] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10792[gw14] [ 92%] PASSED tests/test_types.py::test_tool_result_content 10793tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10794[gw10] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 10795[gw9] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10796tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10797[gw15] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10798tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 10799tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10800[gw15] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 10801[gw14] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10802tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 10803tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10804[gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10805tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10806[gw15] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 10807[gw14] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10808tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 10809[gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10810tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10811[gw14] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 10812tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 10813[gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10814[gw14] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 10815tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10816tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 10817[gw14] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 10818[gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10819tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 10820tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10821[gw14] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 10822[gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10823tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10824tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10825[gw9] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10826tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10827[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10828tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10829[gw13] [ 92%] PASSED tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10830tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10831tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 10832[gw5] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10833tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10834[gw1] [ 92%] PASSED tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10835[gw13] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 10836[gw5] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10837tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10838tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 10839tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 10840[gw1] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 10841tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 10842[gw12] [ 92%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 10843tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 10844[gw13] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 10845tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 10846[gw13] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 10847tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 10848[gw5] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10849tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10850[gw5] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10851tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10852[gw5] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10853tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10854[gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 10855tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 10856[gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 10857tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 10858[gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 10859tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 10860[gw13] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 10861tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 10862[gw13] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 10863[gw5] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10864[gw1] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 10865tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10866[gw7] [ 93%] PASSED tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 10867tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 10868[gw6] [ 93%] PASSED tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10869tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 10870[gw7] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 10871tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 10872tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10873[gw6] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 10874tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 10875[gw7] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 10876tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 10877[gw6] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 10878tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 10879[gw7] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 10880tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 10881[gw6] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 10882tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 10883[gw7] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 10884[gw6] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 10885tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10886tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 10887tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 10888[gw7] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 10889tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 10890[gw6] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 10891[gw2] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10892[gw7] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 10893tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 10894tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 10895[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 10896[gw7] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 10897tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 10898tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 10899tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 10900[gw7] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 10901[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 10902tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 10903tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 10904[gw4] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 10905tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 10906[gw7] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 10907tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 10908[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 10909tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 10910[gw7] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 10911[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 10912tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 10913tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 10914[gw4] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 10915tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 10916[gw4] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 10917tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 10918[gw7] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 10919tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 10920[gw2] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 10921[gw4] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 10922tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 10923[gw7] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 10924tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 10925[gw7] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 10926[gw4] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 10927tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 10928[gw4] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 10929tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 10930[gw11] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 10931tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 10932[gw11] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 10933tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 10934[gw11] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 10935tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 10936tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 10937tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 10938[gw11] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 10939[gw10] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 10940tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 10941tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 10942[gw11] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 10943[gw15] [ 93%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 10944tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 10945tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 10946[gw10] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 10947tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 10948[gw10] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 10949tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 10950[gw10] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 10951[gw11] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 10952[gw15] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 10953tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 10954[gw15] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 10955tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 10956[gw15] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 10957tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 10958tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10959tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 10960[gw10] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 10961tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 10962[gw10] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 10963[gw14] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10964tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 10965[gw14] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 10966tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 10967tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 10968[gw9] [ 94%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 10969[gw14] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 10970tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 10971tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 10972[gw15] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 10973tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 10974[gw15] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 10975[gw14] [ 94%] PASSED tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 10976[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 10977tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 10978tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 10979[gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 10980[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 10981tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 10982[gw8] [ 94%] PASSED tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10983tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 10984[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 10985tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 10986tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 10987[gw14] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 10988[gw8] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 10989[gw9] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 10990tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 10991[gw8] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 10992tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 10993[gw8] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 10994tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 10995tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 10996tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10997[gw8] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 10998[gw5] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10999[gw13] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 11000tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11001tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11002tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11003[gw8] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11004tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11005[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11006tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11007[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] 11008[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11009[gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11010tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11011tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11012tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11013[gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11014[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11015tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11016[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11017tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11018tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11019[gw5] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11020[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11021tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11022[gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11023tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11024[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11025tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11026[gw13] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11027[gw1] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11028tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11029[gw6] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11030tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11031tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11032[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11033tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11034[gw2] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11035tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11036tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 11037[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11038tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11039tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11040[gw12] [ 94%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 11041[gw4] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11042[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11043tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11044[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11045tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11046[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11047tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11048[gw7] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 11049tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11050[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11051tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11052[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11053tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11054[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11055tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11056tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11057[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11058tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11059[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11060tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11061[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11062tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11063[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11064tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11065[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11066[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11067tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11068[gw2] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11069tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11070[gw11] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11071tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11072[gw11] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11073tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11074[gw11] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11075tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11076[gw11] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11077tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11078[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11079[gw11] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11080tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11081tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11082[gw10] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11083tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11084tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11085tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11086[gw15] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11087[gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11088tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11089[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11090tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11091tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11092tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11093[gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11094tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11095[gw8] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11096[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11097tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11098tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11099[gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11100tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11101[gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11102tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11103[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11104tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11105[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11106tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11107[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11108tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11109[gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11110tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11111[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11112tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11113[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11114tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11115[gw15] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11116[gw14] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11117[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11118tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11119[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11120[gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11121tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11122[gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11123tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11124[gw10] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11125[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11126tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11127[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11128tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11129tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11130tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11131[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11132tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11133[gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11134[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11135tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11136tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11137tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11138[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11139tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11140[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11141[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11142tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11143[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11144tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11145[gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11146tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11147tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11148[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11149tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11150[gw5] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11151[gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11152tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11153[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11154[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11155tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11156[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11157tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11158[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11159[gw13] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11160tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11161tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11162tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11163[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11164tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11165[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11166[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11167tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11168tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11169[gw11] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11170tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11171tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11172[gw12] [ 95%] PASSED tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11173tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11174[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11175tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11176[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11177tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11178[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11179tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11180[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11181tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11182[gw2] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11183[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11184tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11185[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11186tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11187[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11188[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11189[gw11] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11190tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11191[gw11] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11192tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11193[gw11] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11194tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11195tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11196[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11197tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11198[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11199tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11200tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11201[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11202tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11203[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11204[gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11205tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11206[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11207tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11208[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11209tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11210tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11211[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11212tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11213[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11214tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11215[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11216tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11217[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11218tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11219[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11220tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11221[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11222tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11223[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11224[gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11225tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11226[gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11227tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11228[gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11229[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11230tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11231[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11232tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11233[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11234tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11235tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11236tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11237[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11238tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11239tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11240[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11241[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11242[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11243tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11244[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11245tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11246tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11247[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11248tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11249[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11250[gw5] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11251[gw13] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11252tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11253[gw13] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11254tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11255[gw13] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11256tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11257[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11258tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11259[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11260tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11261[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11262tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11263tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11264tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11265tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11266[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11267[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11268tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11269[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11270tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11271[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11272tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11273tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11274[gw11] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11275tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11276[gw11] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11277tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11278[gw2] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11279[gw11] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11280tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11281[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11282tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11283[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11284[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11285[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11286tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11287[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11288tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11289[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11290tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11291tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11292tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11293tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11294[gw14] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11295tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11296[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11297tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11298[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11299[gw10] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11300tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11301[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11302tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11303tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11304[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11305tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11306[gw15] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11307[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11308tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11309[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11310[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11311[gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11312tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11313[gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11314[gw12] [ 97%] PASSED tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11315tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11316[gw12] [ 97%] SKIPPED tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11317tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11318[gw12] [ 97%] SKIPPED tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11319tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11320[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11321tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11322tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11323[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11324tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11325[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11326tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11327tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11328[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11329[gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11330[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11331tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11332tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11333[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11334tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11335[gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11336tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11337[gw11] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11338[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11339tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11340tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11341tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11342[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11343tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11344[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11345tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11346[gw11] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11347[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11348[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11349tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11350tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11351[gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11352tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11353[gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11354[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11355tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11356tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11357tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11358tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11359tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11360[gw12] [ 97%] SKIPPED tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11361[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11362tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11363tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11364[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11365tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11366tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11367[gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11368tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11369[gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11370tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11371[gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11372[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11373tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11374[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11375[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11376[gw12] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11377[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11378[gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11379tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11380tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11381tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11382[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11383[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11384tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11385tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11386tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11387[gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11388[gw11] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11389[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11390[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11391tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11392tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11393tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11394[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11395tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11396tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11397tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11398[gw10] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11399tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11400tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11401[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11402[gw14] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11403[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11404[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11405[gw15] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11406[gw12] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11407tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11408tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11409tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11410tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11411tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11412[gw11] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11413[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11414[gw5] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11415tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11416[gw13] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11417[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11418[gw2] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11419tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11420tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11421tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11422tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11423[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11424tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11425tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11426tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11427[gw15] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11428[gw12] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11429tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11430[gw6] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11431[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11432[gw14] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11433tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11434[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11435[gw10] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11436tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11437[gw11] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11438tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11439[gw5] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11440tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11441[gw7] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11442[gw8] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11443tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11444[gw13] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11445tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11446[gw2] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11447tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11448[gw15] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11449tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11450tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11451[gw12] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11452tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11453tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11454[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11455[gw4] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11456tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11457tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11458tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11459[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11460[gw14] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11461tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11462[gw6] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11463[gw11] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11464tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11465[gw5] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11466tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11467[gw10] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11468[gw8] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11469tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11470tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11471[gw13] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11472tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11473tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11474[gw7] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11475[gw2] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11476[gw15] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11477tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11478tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11479tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11480tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11481[gw12] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11482[gw4] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11483[gw9] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11484tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11485tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11486[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11487[gw14] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11488[gw6] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11489tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11490tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11491tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11492[gw11] [ 98%] PASSED tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11493tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11494tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11495[gw10] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11496tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11497tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11498tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11499[gw5] [ 98%] PASSED tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11500[gw8] [ 98%] PASSED tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11501[gw15] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11502[gw7] [ 98%] PASSED tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11503tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11504[gw13] [ 98%] PASSED tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11505tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11506tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11507[gw2] [ 98%] PASSED tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11508[gw12] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11509[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11510tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11511[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11512tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11513tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11514[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11515tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11516[gw14] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11517[gw6] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11518tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11519tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11520[gw11] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11521tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11522tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11523tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11524[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11525[gw13] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11526[gw10] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11527[gw5] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11528tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11529[gw9] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11530tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11531[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11532[gw8] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11533tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11534[gw2] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11535tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11536[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11537tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11538tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11539tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11540[gw12] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11541tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11542[gw15] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11543[gw14] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11544[gw6] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11545tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11546tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11547tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11548tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11549tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11550[gw7] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11551[gw13] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11552[gw11] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11553tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11554[gw10] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11555[gw5] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11556tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11557[gw8] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11558[gw4] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11559tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11560[gw2] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11561tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11562[gw1] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11563tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11564tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11565tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11566[gw9] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11567tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11568[gw12] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11569tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11570[gw15] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11571[gw14] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11572[gw6] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11573tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11574tests/types/test_version.py::test_supported_versions_are_known 11575tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11576[gw11] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11577tests/types/test_version.py::test_known_versions_are_strictly_ordered 11578[gw13] [ 99%] PASSED tests/types/test_version.py::test_supported_versions_are_known 11579[gw7] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11580[gw10] [ 99%] PASSED tests/types/test_version.py::test_known_versions_are_strictly_ordered 11581tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11582tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11583tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11584[gw4] [ 99%] PASSED tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11585tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11586[gw5] [ 99%] PASSED tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11587tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11588[gw2] [ 99%] PASSED tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11589[gw8] [ 99%] PASSED tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11590[gw9] [ 99%] PASSED tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11591tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11592[gw1] [ 99%] PASSED tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11593tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11594[gw12] [ 99%] PASSED tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11595[gw3] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 11596tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11597[gw3] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11598tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11599[gw3] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11600tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11601[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11602tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11603[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 11604tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11605[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 11606tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11607[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 11608tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11609[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 11610tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 11611[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 11612tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 11613[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 11614tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 11615[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 11616tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 11617[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 11618tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 11619[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 11620tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 11621[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 11622tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 11623[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 11624tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 11625[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 11626tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 11627[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 11628tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 11629[gw3] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 11630[gw0] [ 99%] PASSED tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 11631tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11632[gw0] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11633tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11634[gw0] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11635tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11636[gw0] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11637tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 11638[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 11639tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 11640[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 11641tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 11642[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 11643tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 11644[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 11645tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 11646[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 11647tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 11648[gw0] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 11649tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 11650[gw0] [100%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 1165111652═══════════════════════════════ inline-snapshot ════════════════════════════════11653INFO: inline-snapshot was disabled because you used xdist. This means that tests11654with snapshots will continue to run, but snapshot(x) will only return x and 11655inline-snapshot will not be able to fix snapshots or generate reports.11656116571165811659================= 5783 passed, 8 skipped, 1 xfailed in 23.51s ==================11660Finished executing pytestCheckPhase